还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
附录源代码
1.头文件Car.h#ifndefCAR#defineCAR#includeiostreamusingnamespa__std;typedefstructNode{void*data;structNode*link;}nodeS;typedefstructSta{nodeS*top;intcount;}Stack;typedefstructNodeQ{void*dataptr;structNodeQ*next;}nodeQ;typedefstructQueues{intcount;nodeQ*front;nodeQ*rear;}Que;Stack*Createstack;void*popStack*stack;voidpushStack*stackvoid*data;voidDestroyStackStack*stack;Que*CreateQueue;voidEnqueueQue*queue;void*DequeueQue*queue;voidDestroyqueueQue*queue;#endif
2.实现文件Car.cpp#includeCar.hStack*Createstack{Stack*stack;stack=newStack;ifstack==NULLreturnNULL;stack-count=0;stack-top=NULL;returnstack;}voidpushStack*stackvoid*data{nodeS*node;node=newnodeS;ifnode==NULL||stack==NULLreturn;node-data=data;node-link=stack-top;stack-top=node;stack-count++;}void*popStack*stack{void*data;nodeS*node;node=newnodeS;ifstack-count==0returnNULL;data=stack-top-data;node=stack-top;stack-top=node-link;stack-count--;returndata;}voidDestroyStackStack*stack{nodeS*node;ifstack-count==0return;whilestack-count==0{deletestack-top-data;node=stack-top;stack-top=node-link;stack-count--;}deletestack;}Que*CreateQueue{Que*queue;queue=newQue;ifqueue==NULLreturnNULL;queue-count=0;queue-front=NULL;queue-rear=NULL;returnqueue;}voidEnqueueQue*queue{nodeQ*node;node=newnodeQ;ifnode==NULL||queue==NULLreturn;node-next=NULL;ifqueue-count==0{queue-front=node;}else{queue-rear-next=node;}queue-rear=node;queue-count++;}void*DequeueQue*queue{void*dataptr;ifqueue-count==0returnNULL;dataptr=queue-front-dataptr;ifqueue-count==1queue-front=queue-rear=NULL;elsequeue-front=queue-front-next;queue-count--;returndataptr;}voidDestroyqueueQue*queue{nodeQ*node;ifqueue-count==0return;whilequeue-count==0{deletequeue-front-dataptr;node=queue-front;queue-front=node-next;queue-count--;}deletequeue;}
3.主文件ThePort.cpp#includeCar.h#includeCTime#includefstream#includestringtypedefstructInFor{stringnum;inthour;intmin;intsec;intyear;intmon;intday;}Infor;intfa__;intFa__;boolBookStack*stackQue*queueint__x;voidbookfa__;time_tcompareInfor*infor;voidDisplayInfor*infor;time_tarrivalStack*stackInfor*inforQue*queueint__x;voidle__eStack*stackQue*queuetime_tinform;voidGetmoneyInfor*inforintBianhaotime_tinform;voidchecknumstringnum;voidInforBookStack*stackQue*queueint__x;intInfo_____;voidInforstack;voidInforle__e;voidInforqueueQue*queue;int__in{ofstreamfoutestdout.___ios::trunc;ofstreamfout2le__eout.___ios::trunc;bookfa__;fout.close;fout
2.close;return0;}voidbookfa__{Stack*stack;Que*queue;stack=Createstack;queue=CreateQueue;int__x;boolflag=false;while__x=fa__{if__x20||__x=0{cout\t\t\t输入错误,请重新输入!endl;systempause;systemcls;}else{flag=Bookstackqueue__x;}ifflag==true{break;systempause;}}}intfa__{coutendlendl;cout请输入停车场的最大容量1-20;int__x;cin__x;return__x;}intFa__{systemcls;coutendl;cout\t\t\t*************************************endl;cout\t\t\t**endl;cout\t\t\t*
1、停车登记
2、离开结算*endl;cout\t\t\t**endl;cout\t\t\t*
3、登记记录
4、退出系统*endl;cout\t\t\t**endl;cout\t\t\t*************************************endl;cout\t\t请输入你的业务;intchoose;cinchoose;returnchoose;}boolBookStack*stackQue*queueint__x{intchoose;boolflag=false;time_tinform;whilechoose=Fa__{Infor*infor;infor=newInfor;ifchoose4||choose=0{cout\t\t\t输入错误,请重新输入!endl;systempause;systemcls;}else{switchchoose{case1:inform=arrivalstackinforqueue__x;__x--;break;case2:le__estackqueueinform;break;case3:InforBookstackqueue__x;break;case4:coutendl;cout\t\t\t谢谢使用欢迎下次再来endl;flag=true;break;}ifflag==truebreak;systempause;}}returnflag;}time_tarrivalStack*stackInfor*inforQue*queueint__x{time_tinform;if__x0{inform=compareinfor;pushstackinfor;Displayinfor;returninform;}else{coutendl\t\t\t对不起停车场已满,请停靠在便道上endl;Enqueuequeue;}}time_tcompareInfor*infor{time_tnow;structtm*inform;timenow;inform=localtimenow;infor-hour=inform-tm_hour;infor-min=inform-tm_min;infor-sec=inform-tm_sec;infor-year=inform-tm_year;infor-mon=inform-tm_mon;infor-day=inform-tm_mday;coutendl;cout请输入你的车牌号B23548;cininfor-num;checknuminfor-num;returnnow;}voidDisplayInfor*infor{ofstreamfoutestdout.___ios::app;coutendl;cout\t\t\t车牌号infor-numendl;cout\t\t\t当前年月infor-year+1900/infor-mon+1/infor-dayendl;cout\t\t\t当前时刻:infor-hour:infor-min:infor-secendl;foutinfor-numinfor-year+1900infor-mon+1infor-dayinfor-hourinfor-mininfor-secendl;fout.close;}voidle__eStack*stackQue*queuetime_tinform{Stack*stacktemp;stacktemp=Createstack;Infor*temp*a;temp=newInfor;a=newInfor;stringnum;intm;boolflag;m=stack-count;ifm=0{coutendl;cout\t\t\t停车场没有车!endl;return;}else{coutendl;cout请输入将要离开的车的车牌号;cinnum;while1{checknumnum;forinti=0;im;i++{temp=Infor*popstack;pushstacktemptemp;forintk=0;k6;k++{iftemp-num[k]!=num[k]{flag=false;break;}elseflag=true;}ifflag==true{ifm==1{Getmoneytempminform;}else{a=Infor*popstacktemp;Getmoneyaiinform;forintj=0;ji;j++{a=Infor*popstacktemp;pushstacka;}ifqueue-count0{a=Infor*Dequeuequeue;comparea;pushstacka;}}}}ifflag==false{coutendl;cout没有此车的车牌号或车牌号错误,请重新输入;cinnum;forintn=0;nm;n++{temp=Infor*popstacktemp;pushstacktemp;}}elsebreak;}}return;}voidchecknumstringnum{while1{boolflag=true;ifnum.length!=6||num
[0]Z||num
[0]A{flag=false;}forinti=1;inum.length;i++{ifnum[i]9||num[i]0{flag=false;break;}}ifflag==false{coutendl;cout你输入的车牌类型,请重新输入你的车牌号B23548;cinnum;continue;}elsebreak;}}voidGetmoneyInfor*inforintBianhaotime_tinform{time_tnow;structtm*inform2;timenow;inform2=localtimenow;doublepay;ofstreamfoutle__eout.___ios::app;pay=difftimenowinform*1/10;coutendl;cout\t\t编号Bianhaoendl;cout\t\t车牌号infor-numendl;cout\t\t起始年月infor-year+1900/infor-mon+1/infor-dayendl;cout\t\t起始时刻infor-hour:infor-min:infor-secendl;cout\t\t当前年月inform2-tm_year+1900/inform2-tm_mon+1/inform2-tm_mdayendl;cout\t\t当前时刻inform2-tm_hour:inform2-tm_min:inform2-tm_secendl;cout\t\t你的需要缴纳的费用pay元endl;foutBianhaoinfor-numinform2-tm_year+1900inform2-tm_mon+1inform2-tm_mdayinform2-tm_hourinform2-tm_mininform2-tm_secpayendl;fout.close;}voidInforBookStack*stackQue*queueint__x{intchoose;whilechoose=Info_____{ifchoose4||choose=0{cout\t\t\t输入错误,请重新输入!endl;systempause;systemcls;}else{switchchoose{case1:Inforstack;break;case2:Inforle__e;break;case3:Inforqueuequeue;break;case4:Bookstackqueue__x;break;}}}}intInfo_____{systemcls;coutendl;cout\t\t\t*************************************endl;cout\t\t\t**endl;cout\t\t\t*
1、今天登记情况
2、离开车辆记录*endl;cout\t\t\t**endl;cout\t\t\t*
3、便道信息查询
4、返回主页面*endl;cout\t\t\t**endl;cout\t\t\t*************************************endl;cout\t\t请输入你的业务;intchoose;cinchoose;returnchoose;}voidInforstack{ifstreamfinestdout.___;iffin.eof==NULL{coutendl;cout\t\t\t当前没有停车记录!endl;systempause;return;}whilefin.eof!=NULL{Infor*infor;infor=newInfor;fininfor-numinfor-yearinfor-moninfor-dayinfor-hourinfor-mininfor-sec;coutendl;cout\t\t\t车牌号infor-numendl;cout\t\t\t当前年月infor-year+1900/infor-mon+1/infor-dayendl;cout\t\t\t当前时刻:infor-hour:infor-min:infor-secendl;}systempause;fin.close;}voidInforle__e{ifstreamfinle__eout.___;iffin.eof==NULL{coutendl;cout\t\t\t当前没有离开记录!endl;systempause;return;}whilefin.eof!=NULL{Infor*infor;intBianhao;intmoney;infor=newInfor;finBianhaoinfor-numinfor-yearinfor-moninfor-dayinfor-hourinfor-mininfor-secmoney;coutendl;cout\t\t编号Bianhaoendl;cout\t\t车牌号infor-numendl;cout\t\t当前年月infor-year+1900/infor-mon+1/infor-dayendl;cout\t\t当前时刻infor-hour:infor-min:infor-secendl;cout\t\t缴纳的费用money元endl;}systempause;fin.close;}voidInforqueueQue*queue{ifqueue-count==0{coutendl;cout\t\t\t便道里面没有车!endl;systempause;return;}cout\t\t\t便道里面停有queue-count辆车!endl;systempause;return;}。