}
号车离开停车场! 离开时刻: %d,停留时长
printf(\
(%d)\\n\ PCar--;ime)*5);
for(i=;i>=0;i--)arnum=[i].carnum; [].time=[i].time; ++; ;
}
if!=arnum=>carnum;ime=cartime;//将此时的时刻记录入栈CarS,确保计算费用是
从车辆从候车场进入车库后才开始算 ++;
PCar++;//车库车辆数+1 WCar--;//候车场车辆数-1
p=; =>next; free(p);
}
}
else//如果车库中找不到此车,再在候车场找 {
p=;
if(p!=&&p->carnum!=carnum) //候车场队列不为空
{
f=p->next;
while(f!=&&f->carnum!=carnum)
{
p=f;
f=f->next;
}
if(f->carnum==carnum)//如果寻找的车在便道上,出队列 {
findcar=1;
p->next=f->next;
printf(\号车离开候车场! 离开时间: %d,停留时长(%d)\\n\ WCar--;
printf(\应付停车费: %d\\n\ free(f);
}
}
if(p->carnum==carnum)//要离开的车在队尾,直接出队 {
findcar=1;
=>next; printf(\
号车离开候车场!离开时间: %d,停留时长
(%d))!\\n\ WCar--;
printf(\应付停车费: %d\\n\ free(p);
}
}
if(findcar==-1) }
int Result(char carmove,int carnum,int cartime)//根据输入信息完成车辆的离开或者达到 {
switch(carmove) {
case 'A':Car_enter(carnum,cartime);break; printf(\号车不在停车场中!\\n\
case 'D':Car_Leave(carnum,cartime);break; default :printf(\输入错误!\\n\
}
return 1; }
main() {
printf(\试验名称:停车场管理问题\\n\
printf(\学号:\\n\ printf(\姓名:xx\\n\
printf(\
time_t rawtime1; struct tm * timeinfo1; time (&rawtime1);
timeinfo1 = localtime (&rawtime1); //时间函数;
int go=1,carnum,cartime,MM;
printf (\程序运行开始,当前日期和时间: %s\
char carmove; =0;
==(Node2 *)malloc(sizeof(Node2));
while(go)
{
printf(\车辆到达请输入A;\\n车辆离开请输入D;\\n显示停车场内车数请输入P;\\n显示候车场车数请输入W;\\n退出程序请输入E:\\n\
printf(\请输入信息:\ carmove=getchar();
printf(\ switch(carmove)
{
case 'A':
{
printf(\车牌号:\\t\ scanf(\
printf(\时间:\\t\
scanf(\
MM=Result(carmove,carnum,cartime);
if(!MM)go=0; break;
}
case 'D':
{
printf(\车牌号:\\t\ scanf(\
printf(\现在时刻:\\t\
scanf(\
MM=Result(carmove,carnum,cartime);
相关推荐: