停车场管理系统程序设计_第1页
停车场管理系统程序设计_第2页
停车场管理系统程序设计_第3页
停车场管理系统程序设计_第4页
停车场管理系统程序设计_第5页
已阅读5页,还剩16页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成功足失敗Z球一切祁足劭力的结果二、停车场治理系统1.1设计要求1.1.1问题描述设计一个停车场治理系统,模拟停车场的运作,此程序具有以下功能: 汽车到达,那么显示汽车在停车场内或便道上的停车位置. 假设车离去,那么显示汽车在停车场内停留的时间和应缴纳的费用在便道上停留的时间不 收费.1.1.2根本要求 要求以栈模拟停车场,以队列模拟车场外地便道,根据从终端读入的输入数摇序列进行模 拟治理. 求处理的数据元素包括三个数拯项:汽车“到达或“离去信息.汽车牌照号以及 离去的时刻. 要求栈以顺序结构实现,队列以链表实现.1丄3测试数据自行设计一组在停车场上停车的数据和便道上停车的数据.1.1.4实现

2、提示该停车场能容纳车辆的数量,便道上的停车数量.车辆到达对应栈的入栈操作,车辆离开对 应栈的出栈操作.1.2设计代码及注释3include<iostream>#include<time. h>5include<ctime>#include<dos. h>Sinc1ude<windows h>using namespace std;Sdefine PASS 20define POT 20struct passLot/便道队列数据结构int num;/车位号time_t timep;/停车时间int carNum;/停车的午牌号;stru

3、ct potLot/停午场栈数据结构int num;time_t timep;int carNum;void printLineO/打印下划线(作为主界而图表的框架)cout«*ttt*«endl;return;void printStar()/打印星号cout<<endl<<*tt*"<<endl;class erroFull/停牟位满时杲常类public:erroFull()systemCcolor 3c");void exOcout«endl«*ttt!停午场位已满! *«endl;

4、.sleep (2000);"erroFull0;class erroEmp/停乍位空时界常类public:erroEmp ()systemCcolor 3c");void exOcout«*!停车场位为空! *«endl;.sleep (2000);'erroEmpO ;class parkingLot/停花场类public:parkingLot()passLot* pa;/便道停车位指针potLot* po;/停午场停吃位指针flag=0;/用來记忆队列(便道)中停午的数虽rear=front=0;/初始化队列头尾base=0;top二bas

5、e;/初始化栈头尾int i=0;/初始化停午场和便道空间以及立号for(:i<P0T;i+)pa=(passLot*)malloc(sizeof(passLot);ai=pa;ai->num=i+l;aLi>carNum=0;po=(potLot*)malloc(sizeof(potLot);bi=po;bli->num=i+l;bi->carNum=0;parkingLot()cout«"tt停午场数据已清空."<endl;)void passLGO/便道治理函数tryif(flag=20) throw erroFullO

6、;/如果停车位已满,那么抛出车位慢得异常情况 system("cls");printStar0;cout«"tttt 您进入了便道停午界lfil'«endl;cout«endl«'ttt便道停牟场共有20个牟位,现共停"<flag<<"个车位.A,«endl«endl;cout«*ttt请输入将要停车的号:cin»a rear ->carNum;arear">t imep=t ime(NULL);cout

7、71;endl«*,ttt!汽车停放在*«aZrear->num«*车位成功,系统将在一秒后返回 上层界ffi!l *«endl;rear=(rear+l)%PASS;flag 卄;.sleep(1000);catch(erroFull &err)err ex();void potLGO/停午场治理函数tryif(top=20) throw erroFull ();systemCcls");printStar0;cout«"tttt您进入了停午场停车界面"<endl;cout«endl

8、«*ttt停车场共有20个车位,现共停"?top<<"个车位.*«endl«endl:cout«*ttt请输入将要停车的号:cin»b top ">carNxim;b top2 ">t imep=time (NULL);cout«endl«*ttt!汽牟停放在*«btop2->num«*位成功,系统将在一秒后返回上 层界面! *«endl;top+p_sleep(1000);catch(erroFull &err)er

9、r ex();void arrive0/汽车到达mt choice="l:if(top=20&&flag=20) throw erroFullO:for(;:)systemCcls);printStar ();cout«*tttt 欢送进入停车场zx<<endl<<endl;printLineO ;cout«"ttt 1.停车场停车ttt r«endl;/*打印两个空格*/printLineO ;cout«'ttt 2便道停车ttt | *«endl;printLineO ;c

10、out«*ttt 3返回ttt I *«endl;printLineO ;printStar0;cout«*tt请输入你的选项:;cin»choice;switch(choice)case 1:potLG();break;case 2:passLG();break;case 3:break;default:system(*color 3c") :cout«endl«tttt 输入格式不正确! "«endl;_sleep(1000);break;if (choice=3) break;return;int

11、feep(time_t* trap)/费用计算int gap=0, m=0, hour=0, min=0, sec=0;/设宜数据用来计算时间间隔,停车时.分、秒. local=localtime(tmp);/将存储的时间转化为当地时间日历cout«local">tm_hour<</:"«local->tm_sec«endl; / 显示停午时刻hour=local->tm_hour; / 保存停车时刻min=local">tm_min;sec=local">tm_sec;now=ti

12、me(NULL);nowp=localtime(&gF);cout«"t、勺前时间为:*«nowp->tm_hour«*:*«nowp->tm_mm«*:"«nowp->tm_sec«endl;hour = nowp -> t m_hour "hour;/求出停午的时间间隔mm= nowp->tm_min-min;sec= nowp->tm_sec*"sec;if (sec<0) min;sec=60sec;/进行秒.分钟、秒时间转换i

13、f (min<0) hour一;mm=60min;cout«*t 汽车共停 j'"<< hour«*小时"< min«"分"? sec«"秒"?endl;if(0!=min)(0!=sec) m=l;gap= hour+m; /停车应收费的时间(单位:小时)return gap;void passOut ()/便道离开tryif (flag=0) throw erroEmpO ;int fee=0;system("cls");printStar

14、0;cout«*tttt 您进入了便道离开界tfti"«endl;cout«endl«*ttt便道停午场共有20个牟位,现共停"<flag-l<<"个车位.«endl«endl;cout«"ttt将要离开车的信息为:*«endl;cout«*t 乍牌号:*«afront">carNum«*t 车位:便道*«afront->num«号伏1停车时间:fee=feep(&afront&

15、quot;>t imep)*0:cout«"t该车应缴纳停午费为:*«fee<<"元(便车道停车免费*«endl;a front ">carNum=0;front=(frontal)%PASS;flag;cout«endl<rttt!汽车离开成功,按任意键返回! *«endl; systemCpause*);catch(erroEmp &err)err ex();void potOut ()/停车场离开页脚内容7成功足失敗Z球一切祁足劭力的结果tryif (top=0) thr

16、ow erroEmpO :int fee=0;top;system(cls');printStar0;cout«"tttt您进入了停牟场离开界面*«endl;cout«endl«'ttt停午场共有20个乍位,现共停"<<top<<"个车位. «endl«endl;cout«*ttt将要离开吃的信息为:"<endl;cout«*t 午牌号:*«btop->carNum<<*t 乍位:停午场*«b

17、top->num «“号tt停车时间:、fee=feep(&btop">timep)*8;/计费公式,每小时 8 元cout«"t该车应缴纳停车费为:*«fee<<"元(每小时8元.缺乏一小时按一小时计算)"<endl;b topi">carNum=0;cout«endl«*ttt!汽车离开成功,按任意键返回! *«endl;system("pause");catch(erroEmp &err)err ex();v

18、oid depart ()/汽车离开int choice="l:if (top=0&&flag=0) throw erroEmp ():for(;)systemCcls);system(*color 3a");printStar ();cout«*tttt欢送下次光临停车场*«endl«endl;printLineO ;cout<Cttt|l.停车场离开ttt r«endl;/*打印两个空格*/printLineO ;cout«'ttt 2便道离开ttt | *«endl;printL

19、ineO ;cout«ttt 3返回 ttt I *<<endl;printLineO ;printStar0;cout«*tt请输入你的选项:*;cin»choice;switch(choice)case 1:potOut 0;break;case 2:passOut ();break;case 3:break;default:system(*color 3c") :cout«endl«tttt 输入格式不正确! "«endl;_sleep(1000):break;if (choice=3) brea

20、k;return;void searchNumO/査询午牌号mt numCar, i=0, flag=l;cout«*ttt请输入车牌号:;cin»numCar;for(;i<PASS;i+)if(a_i">carNum=numCar) cout«endl«"ttt 午牌号为"<<numCar<"的乐子停在便午道*«ai2">num«*位"<<endl; flag=0;if (flag) for (i=0; i<POT;

21、i")if(b 1 i>carNum=numCar) cout«endl«"ttt 午牌号为*«numCar«*的牟子停在停午道"<<bi>>num<<"位"<<endl; flag=0;if (flag) cout«endl<<该汽车未停在木停牛场! "<<endl;system ("pause");void searchPot()mt potCar, nn;页脚内客9成功足失敗Z球一切

22、祁足劭力的结果cout«tt操作说明:根据停车类型加位宜來输入所要查找的乍位信息ntt如:停午场10号位, 即输入110.停车场三号位.103c便道场5号位.205"«endl;cout«*tt请输入需要操作的序数:,;cin>>potCar;if(potCar<121&&potCar>100)'!(potCar<221&&poTCar>200)(if(potCar/100=l)nn=potCar%100"l;if (bInn'->carXum=0) co

23、ut«*tt 你说査询的午位没有停午"?endl;else cout«*停牟场"«nn«'/P位停午的吃牌号是:*«bnn">carNum<<endl:if (potCar/100=2) nn=potCar%100-l;if (a lnn2 ->carNum=0) cout«*tt 你说査询的乍位没有停牟"?endl;else cout«"便午道"«nn«"牟位停车的车牌号是:"«an

24、n->carNum«endl;else cout«tt您所输入的数字不正确! "?endl;system("pause");void search0/号査询int choice=-l;if (top=0&&flag=0) throw erroEmp ():for(;)system("cls");system("color 3a");pnntStar ();cout«*tttt 您进入 f 号査询界|fll*,«endl<<endl;printLineO

25、 ;cout<Cttt|l.根据车牌号査询tt r«endl;/*打卬两个空格*printLineO ;cout«*ttt ; 2.直接査询抬定牟位tt : "<<endl ;printLineO ;cout«*ttt 3返回ttt I *<<endl;printLineO ;printStar0;cout«'tt请输入你的选项:;cin»choice;switch(choice)case 2:searchPot():break;case 3:break;default:system(*color

26、 3c") :cout«endl«tttt 输入格式不正确! «endl; .sleep(1000);break;if (choice=3) break;)return;private:mt flag, front, rear, top, base;/设辻访问栈和队列passLot* a PASS;/以顺序方式存储栈和队列,并且都设为20个牟位potLot* b:P0T:;tm* local, *nowp;time_t now; /设迓时间型变虽;/停车场类结束void mainO/程序运行主函数parkingLot a;int choice=l;for

27、(;)/使主界而能够自动初始化和重复使用 system(*cls*);systemCcolor 3);/设为主背景为湖蓝色 printStar0;cout«"tttt欢送进入停午场治理系统*«endl<<endl;time.t t;/时间结构或者对線t=time(NULL) ;/获取当前系统的日历时间cout«*tttttt*«ctime (&t); /显示半前时间 printLineO ;cout«"ttt 1.汽车到达ttt r«endl;/*打印两个空格*/ printLineO ;cou

28、t«"ttt 2.汽车离去ttt r«endl;printLineO ;cout«'ttt 3汽午牌号査询ttt | *«endl;printLineO ;cout«'ttt【4.退出治理系统ttt | *«endl;printLineO ;printStar0;cout«"tt请输入你的选项:";cin»choice;switch(choice)case 1:trya arrive ();catch (erroFull &erro)erro ex();brea

29、k;case 2:adepart();break;case 3:asearch();break;case 4:break:default:system(*color 3c") :cout«endl«'tttt 输入格式不正确! *«endl; _sleep(2000);break;if(choice=4) break;return;1.3测试结果以及运行情况1.3.1运行主界而欢送讲入停车场治理系统Sun Sep 18 18:34:54 2021;1 汽车到达;2 汽车离去T2.汽车牌号查询F;4退出治理系统请输入你的选项:1.3.2汽车到达界而

30、软迎进人仲车场:丄件主场仔车812 便道停车1!3 返回1请输入你的选项.1.3. 21停车场停车测试界而页脚内容11成功足失敗Z球一切祁足劭力的结果测试数据按输入的先后排序表1序号1234L678910牌照 号2001200220032004200520062007202120212021序号11121314151617181920牌照 号2021202120212021202120212021202120212021输入情况界面局部訂1:停车场苣理諭停车场背理珈Debug'停车场治理M统心e您进入了停车场停车界面停空场共有20个车位,现共停6八车位.请输入将要停车的号:2001!

31、!汽车停放在车位成功,系统将在一秒宕返回上层界面!罚抵停车场苣理諭停车场治理捡Debug'停车场昔理該exe您进入了停车场停车界页停车场共有20个车位,现共停1疔,车位.请输入将要停车的号,2«11! !氏车停放在口车位成珈系统将在一秒后返叵上层界直! !异常情况处理,当停车场已经满20位时,便抛出异常界面显示为红色,并停止工作1.3. 22便车道停车测试测试数据表2序号1234L 678910牌照3001300230033004300530063007300830093010号序号11121314151617181920牌照 号30113012301330113015301

32、63017301830193020输入界而(局部)XKXXX>O<M XXMX)eXMXXK»CXMMXXMXXXXMX«MXXXM3CK»CXXKXXCXXX XXXXM您进入了便道停车界面便道停车场共有28个车位,现共停2个车位,请输入将要停车的号,羽加! !汽车停放在3车位成功,系统将在一秒后返回上层界面!MM 農 XXXX X JOt )()<< 兴X X M X XWX XX X X XXX 菟 XX XMZ )()(X*)<)(XM 資 XXX XX您进入了便道停车畀面便道停车场共有2®个车位,现共停个车位.请输入将要停车的号:3820! !汽车停放在2R车位成功,系统将在一秒后返叵上层界征!异常情况处理,当停车场已经满20位时,便抛出异常(界面显示为红色,并停止工作)1.3.3汽车离开界而页脚内客21欢送下次光临停车场停车场离开i吃便谊L离开F13返回XXXXXX4CXXX XX KXMX X XW XXX X X XX KXK X >0( MMX XX X-MKX X XOC X-MXXJCMK XX K 请输入你的选项.1.3. 31停车

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论