c语言车辆管理系统课程设计Word格式文档下载.docx
《c语言车辆管理系统课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言车辆管理系统课程设计Word格式文档下载.docx(12页珍藏版)》请在冰点文库上搜索。
ao*);
/*车辆离开*/
voidList
(Moni_Cheku,Moni_Biandao);
/*显示车库
与便道得存车信息*/
intmain()oMoni_ChekuEnter,Temp;
Moni_BiandaoWait;
iritch;
InitStack(&
Enter);
/*初始化车站*/
。
InitStack(&
Temp);
/*初始化让路得临时链表*/
InitQueue(&
Wait);
/沃初始化便道沃/
printfCAnO;
printf(nl八欢迎进入停车场管理系统1!
—\n“);
printf(”\n“);
printf(”提示!
(1)、该车库得最大容量为:
%d;
\n“,MAX);
printf(H
(2)x该车库得收费标准为:
%4、2f元/(辆*分钟)、\n"
price);
while
(1)
{
osystem("
CLS"
);
printf("
******头*************主菜单*******
********头****\门”);
…printf(“1、车辆到达”);
printf(H2、车辆离开”);
oprintf("
3、列表显示”);
printf("
4、退出系统\n"
bprintf("
****************沃*****************
************\门”);
oprintf(n请选择(1-4):
[]\b\bn);
oowhile
(1)
»
oscanf(”%d"
&
ch);
a®
if(ch>
=1&
&
ch<
=4)break;
oooeIseprintf("
错误!
请重选(1-4):
[]\b\b"
}
switch(ch)
case1:
ArrivaI(&
Enter,&
帕it);
break;
/*车
辆到达*/
case2:
Leave(&
Enter,&
Temp,&
Wait);
break;
/*车辆离开*/
case3:
List(Enter,Wait):
break;
/*打印列表信息*/
£
>
ocase4:
exit(0);
/*退出主程序*/
defau11:
break;
)
oreturn0;
voidInitStack(MoniCheku*s)/*初始化车库*/
ointi;
os->
top二0;
ofor(i=0;
i<
=MAX;
i++)
s->
stack[s->
top]=NULL;
intInitQueue(Moni_Biandao沃Q)/*初始化便道*/
oQ—>
head=(QueueNode*)maIIoc(sizeof(QueueNod
e));
oif(Q->
head!
=NULL)
oQ->
head->
next二NULL;
Q->
rear=Q->
head;
«
return
(1);
oelsereturn(-1);
voidPRINT(CarNode*p,introom)/*输出出库车得信
息、*/
intA1,A2,B1,B2;
printf(”请输入离开得时间:
/**:
**/”);
ooseanf("
%d:
%d"
(p->
leave、hour),&
(p—>
leave、m
in));
oprintf(“离开车辆得车牌号为:
”);
puts(p->
num);
printf("
其到达时间为:
%d:
%d\n"
p->
reach、hour,p-〉reach、min);
oprintf("
离开时间为:
%d:
%d\n"
p—>
leavexhour,p
—>
1eave、min);
oA1=p—>
reach、hour;
A2=p->
reach、min;
B1=p—>
leave、hour:
ooB2=p->
Ieavesmin;
printf(u应交费用为:
%4、2f元”,((B1一A1)*60+(B2-A2))*price);
oofree(p);
intArrivaI(MoniCheku*Enter,MoniBiandao*W)
/*车辆到达*/
qCarNode*p;
oQueueNode*t;
p=(CarNode*)malloc(sizeof(CarNode));
offIush(stdin);
oprintfC请输入车牌号(例如:
中CUG888):
”);
scanf("
%s"
(p—>
num));
if(Enter->
top<
MAX)/*车库未满,车进车库*/
oEnter—>
top++;
printfC1该车在车库位置%八\n”,Enter->
top);
printf("
请输入到达时间(**:
**):
”);
seanf("
%d"
(p—>
reachxhour),&
(p->
rea
ch、min));
o«
Enter->
stack[Enter->
top]=p;
oreturn
(1);
else/*车库已满,车进便道*/
printf(”该车须在便道等待!
\十);
t=(QueueNode*)maIIoc(sizeof(QueueNode));
t->
data=p;
…t一>
next二NULL;
0W->
rear—>
next二t;
qW->
rear二t;
return
(1);
voidLeave(MoniCheku*EnterrMoniCheku
Moni_Biandao*W)/*车辆离开*/
inti,room;
CarNode*p,*t;
oQueueNode*q;
0/*判断车库内就是否有车沃/
if(Enter->
top>
0)/*有车*/
6printf("
请输入车在车库得位置(1--%d):
"
p);
/*输入车辆离开得信息*/
while
(1)
oscanf("
%d"
&
room);
a。
if(room>
room<
=Enter->
top)
*Temp,
Enter->
to
break;
oeIseprintfC错误!
请重选:
0whiIe(Enter->
top>
room)/*车辆离开*/
aaTemp->
qTemp->
stack[Temp—>
top]二Enter—>
stack[Enter->
top];
qqqEnter—>
stack[Enter->
top]=NULL;
qEnter->
top-一;
QQ}
p=Enter->
stack[Enter->
top];
aEriter->
stack[Enter—>
top]二NULL;
Eriter->
top-一;
while(Temp->
top>
=1)
0aEnter—>
top++;
ooEnter->
stack[Enter—>
top]二Temp—>
stack[Tetup->
top];
qTernp->
stack[Temp一〉top]=NULL;
nTemp->
top—;
}
PRINT(p,room);
/*判断通道上就是否有车及车库就是否
已;
茜次/
if((W—>
head!
二W->
rear)&
Enter—>
top<
MAX)/*便道得车辆进入车库*/
q=W->
head->
next;
…t二q—>
data;
nEnter->
top++;
qqprintf(u\n便道得%s号车进入车场第%d位置、t->
num,
Enter—>
top);
bbbprintf("
\n请输入现在得时间(**:
**):
noscant("
%d:
%d"
r&
(t->
reach、hour).&
reachvmin));
qaqW->
head-〉next=q->
next;
ooif(q==W->
rear)W~>
rear=W->
head;
QEriter->
stack[Enter—>
top]二t;
°
free(q);
oelseprintfCAn便道里没有车、\nH);
elseprintf("
车库里没有车!
\nM);
/*没车*/
voidList1(Moni_Cheku*S)/*列表显示车库信息*/
if(S->
0)/*判断车库内就是否有车*/
printfC车库号到达时间\t车牌号\n-);
for(i=1;
=S—>
top;
oooprintf(”%d"
i);
oooprintf("
\t%d:
S->
stack[订一>
reach、
hour,S->
stack[i]->
reach、min);
ooprintf("
\t\t%s\n"
S~>
stack[i]->
num);
00}
oelseprintfC1车库里没有车\n”);
voidList2(Moni_Biandao*W)/*列表显示便道信息次/
QueueNode*p;
op=W—>
next;
if(W->
head!
=W->
rear)/*判断便道上就是否有车*/
printf(”在便道里等待得车辆得号码为:
\n"
);
owhile(p!
=NULL)
puts(p->
data—>
num);
op=p->
next;
elseprintf(”便道里没有车、\nH);
voidList(Moni_ChekuS,Moni_BiandaoW)
intflag,tag;
oflag=1;
owhiIe(fIag)
printf(”**********查瞧**********、门"
printf(n1x车库2、便道3、返回\n"
oprintf("
************************\nn);
oprintfC请选择(1-3):
[]\b\b"
owhiIe
(1)
00{
ooscanf("
tag);
oooif(tag>
tag<
=3)break;
elseprintf("
请重选(1-3):
[]\b\b"
switch(tag)
easel:
List1(&
S);
break;
/*列表显示车库信息*/
case2:
l_ist2(&
W);
break;
/*列表显示便到信息*/
case3:
flag=0;
0break;
default:
break;