c语言车辆管理系统课程设计Word格式.docx
《c语言车辆管理系统课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《c语言车辆管理系统课程设计Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
QueueNode*rear;
}Moni_Biandao;
voidInitStack(Moni_Cheku*);
/*初始化车库*/
intInitQueue(Moni_Biandao*);
/*初始化便道*/
intArrival(Moni_Cheku*,Moni_Biandao*);
/*车辆到达*/
voidLeave(Moni_Cheku*,Moni_Cheku*,Moni_Biandao*);
/*车辆离开*/
voidList(Moni_Cheku,Moni_Biandao);
/*显示车库与便道的存车信息*/
intmain()
Moni_ChekuEnter,Temp;
Moni_BiandaoWait;
intch;
InitStack(&
Enter);
/*初始化车站*/
Temp);
/*初始化让路的临时链表*/
InitQueue(&
Wait);
/*初始化便道*/
printf("
\n"
);
^_^欢迎进入停车场管理系统1!
^_^\n"
提示!
(1)、该车库的最大容量为:
%d;
MAX);
(2)、该车库的收费标准为:
%4、2f元/(辆*分钟)、\n"
price);
while
(1)
{
system("
CLS"
printf("
********************主菜单********************\n"
1、车辆到达"
2、车辆离开"
3、列表显示"
4、退出系统\n"
**********************************************\n"
请选择(1-4):
[]\b\b"
while
(1)
{
scanf("
%d"
&
ch);
if(ch>
=1&
&
ch<
=4)break;
elseprintf("
错误!
请重选(1-4):
}
switch(ch)
case1:
Arrival(&
Enter,&
break;
case2:
Leave(&
Temp,&
case3:
List(Enter,Wait);
/*打印列表信息*/
case4:
exit(0);
/*退出主程序*/
default:
}
return0;
}
voidInitStack(Moni_Cheku*s)/*初始化车库*/
inti;
s->
top=0;
for(i=0;
i<
=MAX;
i++)
s->
stack[s->
top]=NULL;
intInitQueue(Moni_Biandao*Q)/*初始化便道*/
Q->
head=(QueueNode*)malloc(sizeof(QueueNode));
if(Q->
head!
=NULL)
Q->
head->
next=NULL;
rear=Q->
head;
return
(1);
elsereturn(-1);
voidPRINT(CarNode*p,introom)/*输出出库车的信息*/
intA1,A2,B1,B2;
请输入离开的时间:
/**:
**/"
scanf("
%d:
&
(p->
leave、hour),&
leave、min));
离开车辆的车牌号为:
"
puts(p->
num);
其到达时间为:
%d:
%d\n"
p->
reach、hour,p->
reach、min);
离开时间为:
leave、hour,p->
leave、min);
A1=p->
reach、hour;
A2=p->
reach、min;
B1=p->
leave、hour;
B2=p->
leave、min;
应交费用为:
%4、2f元"
((B1-A1)*60+(B2-A2))*price);
free(p);
intArrival(Moni_Cheku*Enter,Moni_Biandao*W)/*车辆到达*/
CarNode*p;
QueueNode*t;
p=(CarNode*)malloc(sizeof(CarNode));
fflush(stdin);
请输入车牌号(例如:
中CUG888):
scanf("
%s"
num));
if(Enter->
top<
MAX)/*车库未满,车进车库*/
Enter->
top++;
该车在车库位置%d、\n"
Enter->
top);
请输入到达时间(**:
**):
reach、hour),&
reach、min));
stack[Enter->
top]=p;
else/*车库已满,车进便道*/
该车须在便道等待!
t=(QueueNode*)malloc(sizeof(QueueNode));
t->
data=p;
W->
rear->
next=t;
rear=t;
voidLeave(Moni_Cheku*Enter,Moni_Cheku*Temp,Moni_Biandao*W)/*车辆离开*/
inti,room;
CarNode*p,*t;
QueueNode*q;
/*判断车库内就是否有车*/
top>
0)/*有车*/
请输入车在车库的位置(1--%d):
/*输入车辆离开的信息*/
room);
if(room>
room<
=Enter->
top)break;
请重选:
while(Enter->
room)/*车辆离开*/
Temp->
stack[Temp->
top]=Enter->
top];
Enter->
top--;
p=Enter->
while(Temp->
=1)
top]=Temp->
PRINT(p,room);
/*判断通道上就是否有车及车库就是否已满*/
if((W->
=W->
rear)&
Enter->
MAX)/*便道的车辆进入车库*/
q=W->
next;
t=q->
data;
printf("
\n便道的%s号车进入车场第%d位置、"
t->
num,Enter->
\n请输入现在的时间(**:
(t->
W->
next=q->
if(q==W->
rear)W->
rear=W->
top]=t;
free(q);
elseprintf("
\n便道里没有车、\n"
elseprintf("
车库里没有车!
/*没车*/
voidList1(Moni_Cheku*S)/*列表显示车库信息*/
if(S->
0)/*判断车库内就是否有车*/
车库号到达时间\t车牌号\n"
for(i=1;
=S->
top;
%d"
i);
\t%d:
S->
stack[i]->
reach、hour,S->
\t\t%s\n"
S->
车库里没有车\n"
voidList2(Moni_Biandao*W)/*列表显示便道信息*/
QueueNode*p;
p=W->
if(W->
rear)/*判断便道上就是否有车*/
在便道里等待的车辆的号码为:
while(p!
puts(p->
data->
p=p->
便道里没有车、\n"
voidList(Moni_ChekuS,Moni_BiandaoW)
intflag,tag;
flag=1;
while(flag)
**********查瞧**********\n"
1、车库2、便道3、返回\n"
************************\n"
请选择(1-3):
tag);
if(tag>
tag<
=3)break;
请重选(1-3):
switch(tag)
List1(&
S);
break;
/*列表显示车库信息*/
List2(&
W);
/*列表显示便到信息*/
flag=0;