#include#include#definestacksize2//车站//容量///////////////////////////////////////////////////////typedefstructSnode{intnumber;floatint_time[2];floatbian_time[2];}record;typedefstruct{record*base;record*top;intsize;}Stack;/////////////////////////////////////////////////////typedefstructQnode{intnumber;floatint_time[2];structQnode*next;}Qnode,*Queue;typedefstruct{Queuefront;Queuerear;}Linkqueue;voidxunhuan(StackL,LinkqueueQ);voidjixu(StackL,LinkqueueQ);//////////////////////////////////////////////////////////////////////////////////////////////////////////voidInitStack(Stack&L)//堆栈操作{L.base=(record*)malloc(sizeof(Snode)*stacksize);if(!L.base)exit(0);L.top=L.base;L.size=stacksize;}/////////////////////////////////////////////////////voidinput(Stack&L,recordh){*L.top++=h;}///////////////////////////////////////////////////Snodeoutput(Stack&L,record&e){e=*--L.top;returne;}intStackman(StackL){if(L.top-L.base==L.size)return0;elsereturn1;}intStackEmpty(StackL){if(L.base==L.top)return0;elsereturn1;}////////////////////////////////////////////////////////////////////////////////////////////////////voidInitque(Linkqueue&Q)//队列操作{Q.front=Q.rear=(Queue)malloc(sizeof(Qnode));if(!Q.front)exit(0);Q.front->next=NULL;}//////////////////////////////////////////////////voidenqueue(Linkqueue&Q,intnumber,floattime[]){Queueq;printf("停车场已满,请将车辆停入便道!\n");q=(Queue)malloc(sizeof(Qnode));q->int_time[0]=time[0];q->int_time[1]=time[1];q->number=number;q->next=NULL;Q.rear->next=q;Q.rear=q;}///////////////////////////////////////////////////voidoutqueue(Linkqueue&Q,Queue&e)//此处有点问题??????????????{//Qnode*q;//q=(Queue)malloc(sizeof(Qnode));e=Q.front->next;//Q.front->next=q->next;//deleteq;Q.front->next=Q.front->next->next;if(Q.rear==e){Q.front=Q.rear;//Q.front=NULL;}}intQEmpty(LinkqueueQ){if(Q.rear==Q.front)return0;elsereturn1;}//////////////////////////////////////////////////////停车场管理操作////////////////////////////////////////////////////voidjixu(StackL,LinkqueueQ){intn;fflush(stdin);scanf("%d",&n);switch(n){case1:printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");xunhuan(L,Q);break;case2:printf("****************************退出管理系统*****************************\n");break;default:printf("\n输入错误,请重新输入:");jixu(L,Q);break;}}voidjiaofei(floattime[],floattime1[],floattime2[])//缴费操作{floatdata1,data2;doublemoney;if(time2[0]!=0&&time2[1]!=0)data2=(time1[0]-time2[0]-1)*60+60-time2[1]+time1[1];elsedata2=0;data1=(time[0]-time1[0]-1)*60+60-time1[1]+time[1];//printf("进入车场时间%f,退出车场时间%f\n",time1[1],time[1]);printf("你的停车时间为%lf小时,在便道停留时间%f小时\n",data1/60,data2/60);money=data1/60*5.0+data2/60*2.0;printf("请交纳%lf元\n",money);/*if(data1<=60.0)printf("请交纳5元。");if(data1>60.0&&data1<=120.0)printf("请交纳10元。");if(data1>120.0)printf("请交纳20元。");*/}voidleave(Stack&L,Linkqueue&Q,intnumber,floattime[])//汽车离开操作{StackS;InitStack(S);floattime1[2],time2[2];recorde,e1;Queueq;e1=output(L,e);while(e.number!=number){input(S,e1);e1=output(L,e);}time1[0]=e.int_time[0];//入车站时间time1[1]=e.int_time[1];time2[0]=e.bian_time[0];//入便道时间time2[1]=e.bian_time[1];jiaofei(time,time1,time2);//////////////////////////while(StackEmpty(S))input(L,output(S,e1));while(QEmp...