




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训报告专 业:班 级:学 号:姓 名:课设题目: 停车场模拟管理系统 指导教师:目录一、 需求分析1二、 总体设计12.1系统功能概述1三、 到达停车场准备进入停车场23.1进入停车场函数2四、 离开停车场3五、 详细设计55.1函数的调用关系55.2主要算法的流程图6六、 软件说明:76.1使用环境:Visual C+ 6.0.7操作要求:程序运行后,用户根据所要进行的操作选择是进入停车场还是离开停车场并输入车牌号和时间76.2测试图:7七、 总结9附录:程序代码91、 需求分析 停车场模拟管理系统现在很多的大型超市等都有智能的停车场当你进入停车场门口就会自动的显示里面还有多少的空位并且指引你走到空的车位停下避免了把车辆开进去并且找不到空的车位和因为车子在停车场内乱走而导致想出来的车没有足够的时间出来。导致空间和时间各种不必要的麻烦所以急需我们做一个停车场管理系统 。我们的停车场模拟管理系统有以下方面功能:1记录进入停车场的车辆的车牌号从而进入后可以知道其所停的停车位。2车子离开停车场根据离开时间和进入时间从而计算出所需要交的费用。3如果队列已经满了可以让要进入停车场的车子停在旁边的等候队列。2、 总体设计2.1系统功能概述(1)如果选择进入停车场就要判断停车场是否已经满了,如果未满直接进入,如果满了的话就直接排在旁边的便道上等待有车子离开停车场从而进入停车场。(2) 同时改程序还设立多了一个位置以便与有车进入同时有车离开可以停留在这里等候车子离开再进入。(以防止车子停车场内的车未能离开进入的车又正在进入从而导致停车场堵塞的情况)(3) 离开的时候根据离开的车牌号从而把它从停车场中的位置移开并且通过离开时间和进入停车场的时间来计算出该车子所需要交纳的费用。等候队列离开停车场退出 进入停车场系统操作界面 有车离开 如果等候队列不为空的话进入停 2.11 总体设计图3、 到达停车场准备进入停车场void parkingmanagement:arrival(carstack &cs,carqueue &cq,int cnum,double ctime)int pos;if(!(cs.full() 到达停车场的车子首先输入其判int fl(0),i; 断停车场是否已经满了如果则直for(i=0;i=cs.top;i+) 接进入等候车道否则就进入停场if(cs.si.number=cnum)fl=1;break;if(fl=1)cout输入错误!请重新输入!如果到达的车的车牌号!=栈内已有车辆的车牌号endl;elsepos=pushstack(cs,cnum,ctime);/入栈,返回车位信息cout该停车场还有空位,请到pos号车位进行泊车endl;coutendl;elsepos=pushqueue(cq,cnum,ctime);cout该停车场已满,请将车停到便道pos号车位上endl;coutendl;3.1进入停车场函数 int parkingmanagement:pushstack(carstack &cs,int cnum,double ctime)if(cs.top=Max-1)cout停车场已满!endl;return Max;else cs.top+;(cs.scs.top).number=cnum;(cs.scs.top).time=ctime;return (cs.top+1); 4、 离开停车场void parkingmanagement:leave(carstack &cs,carqueue &cq,int cnum,double ctime)int i,flag(0),pstack,count(1),outcarnum;double hour;car *p;for(i=0;i=cs.top;i+)if(cs.si).number=cnum)flag=1;break;if(flag)popstack(cs,cnum);hour=ctime-popstacktime;outcarnum=popqueue(cq);/pstack=pushstack(cs,outcarnum,ctime);cout该车在本停车场内停留时间为hour分钟,应付金额hour*(price/60)元!next;if(p-number=cnum)deletequeue(cq,count);if(countMax)cout您的车在便道上的位置为count号车位,请自行驶离,无需付费!endl;break;if(p=NULL) cout您的车不在本停车场内,或输入有误,请重新输入!endl; 5、 详细设计5.1函数的调用关系 如下图:主函数 数据输入 进入停车场Pushtack函数 判断是进入还是离开Arrival或者leave函数 等候便道pos=pushqueue(cq,cnum,ctime); 有车离开则进入 判断停车场是否满 full() 满则进入等候队列 图5.11 函数调用5.2主要算法的流程图图5.22主要算法图6、 软件说明:6.1使用环境:Visual C+ 6.0.操作要求:程序运行后,用户根据所要进行的操作选择是进入停车场还是离开停车场并输入车牌号和时间6.2测试图:程序开始运行: 图 6.1 程序主界面进入停车场输入选项和车牌号和时间:图6.2 进入停车场离开停车场输入D 车牌号 时间:(根据车牌号找到相应的车)图6.3离开停车场显示结果 7、 总结在这一次的实训中才知道什么叫做真真正正的体会到什么叫做你看得懂程序听得懂课拿着中上的成绩你就口可以说你懂数据结构懂C+懂C了,无数次在修改代码无数次在询问老师问题同学问题,每一次编译错误减少一小个心里乐得跟开了花似的。非常的感谢同学和老师在QQ上不厌其烦的一次又一次的回答我的问题哪怕是一个马虎的分号的错误。正所谓勤能补拙往后的我要更加的努力去学习了。附录:程序代码#includeusing namespace std; const int Max=10;const double price=30;class carpublic:double time;int number;car *next;class carstack friend class parkingmanagement;public:carstack();int empty();int full();car *s;int top;carstack:carstack()top=-1;s=new carMax;if(s=NULL)cout栈空间分配不成功!endl;exit(1);int carstack:full()return top=Max-1;class carqueuefriend class parkingmanagement;public:carqueue();int full();car *front,*rear;carqueue:carqueue()rear=front=NULL;class parkingmanagement public:int pushstack(carstack &cs,int cnum,double ctime);void popstack(carstack &cs,int cnum);int pushqueue(carqueue &cq,int cnum,double ctime);int popqueue(carqueue &cq);void arrival(carstack &cs,carqueue &cq,int cnum,double ctime);void leave(carstack &cs,carqueue &cq,int cnum,double ctime);void deletequeue(carqueue &cq,int i);int popstacknumber;double popstacktime;int parkingmanagement:pushstack(carstack &cs,int cnum,double ctime)if(cs.top=Max-1)/Max从1开始,top从0开始cout停车场已满!endl;return Max;else cs.top+;(cs.scs.top).number=cnum;(cs.scs.top).time=ctime;return (cs.top+1);void parkingmanagement:popstack(carstack &cs,int cnum)int i;car p;carstack stemp;for(i=0; ii) stemp.s+(stemp.top)=cs.s(cs.top)-;popstacknumber=p.number;int popstacknumber()popstacktime=p.time;double popstacktime()cs.top-;while(stemp.top=0)cs.s+(cs.top)=stemp.s(stemp.top)-;int parkingmanagement:pushqueue(carqueue &cq,int cnum,double ctime)car *p,*countp;int count(1);p=new car;p-number=cnum;p-time=ctime;p-next=NULL;if (cq.front=NULL)cq.front=cq.rear=p;elsep-next=(cq.rear)-next;(cq.rear)-next=p;cq.rear=(cq.rear)-next;countp=(cq.front)-next;while(countp!=NULL)count+;countp=countp-next;return count;int parkingmanagement:popqueue(carqueue &cq)car p;if(cq.front!=NULL)p.number=(cq.front)-next)-number;p.time=(cq.front)-next)-time;p.next=(cq.front)-next)-next;return p.number;void parkingmanagement:arrival(carstack &cs,carqueue &cq,int cnum,double ctime)int pos;if(!(cs.full()int fl(0),i;for(i=0;i=cs.top;i+)if(cs.si.number=cnum)fl=1;break;if(fl=1)cout输入错误!请重新输入!如果到达的车的车牌号!=栈内已有车辆的车牌号endl;Elsepos=pushstack(cs,cnum,ctime);/入栈,返回车位信息cout该停车场还有空位,请到pos号车位进行泊车endl;coutendl;Elsepos=pushqueue(cq,cnum,ctime);cout该停车场已满,请将车停到便道pos号车位上endl;coutendl;void parkingmanagement:leave(carstack &cs,carqueue &cq,int cnum,double ctime)int i,flag(0),pstack,count(1),outcarnum;double hour;car *p;for(i=0;i=cs.top;i+)if(cs.si).number=cnum)flag=1;break;if(flag)popstack(cs,cnum);hour=ctime-popstacktime;outcarnum=popqueue(cq);pstack=pushstack(cs,outcarnum,ctime);cout该车在本停车场内停留时间为hour分钟,应付金额hour*(price/60)元!next;if(p-number=cnum)deletequeue(cq,count);if(countMax)cout您的车在便道上的位置为count号车位,请自行驶离,无需付费!endl;break;if(p=NULL) cout您的车不在本停车场内,或输入有误,请重新输入!endl;void parkingmanagement:deletequeue(carqueue &cq,int i) car *p,*q;int j(0);p=cq.front;while(p & jnext;j+;if(!p | !p-next) coutnext;p-next=q-next;delete q;void print()cout= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =endl;cout= 欢迎光临! =endl;cout= =endl;cout= 本停车场收费标准为:30元/小时;车库容量为:10 =endl;cout= =endl;cout= 请输入您的泊车信息:格式为:(到达/离去/退出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025重庆城口教育事业单位面向2025应届毕业公费师范生招聘10人考试参考试题及答案解析
- 2025年杭州市上城区采荷街道社区卫生服务中心招聘编外1人考试参考试题及答案解析
- 2025年黄山休宁县殡仪馆公开招聘紧缺专业技术人员2名备考练习试题及答案解析
- 建筑工地工程质量回溯与改进方案
- 14.2 三角形全等的判定(分层培优 含解析)八年级上册数学人教版
- 英语初二的试卷及答案
- 15.3.1 第2课时 等腰三角形的判定 教案 数学人教版八年级上册
- 建筑项目设计图纸修改管理方案
- 2025年生物膳食纤维题目及答案
- 2025年合肥八中铭传高中教育集团翡翠湖初中招聘物理教师2名考试参考试题及答案解析
- 六年级家长会课件
- 2025年党建党史知识竞赛测试题库及答案
- 2025年教科版新教材科学二年级上册教学计划(含进度表)
- GB/T 45859-2025耐磨铸铁分类
- 临床基于ERAS理念下医护患一体化疼痛管理实践探索
- 2025年河北交警三力测试题及答案
- 2025贵州贵阳供销集团有限公司招聘笔试历年参考题库附带答案详解
- 人教版(2024)新教材三年级数学上册课件 1.2 观察物体(2)课件
- 颈椎骨折脊髓损伤的护理
- 计算机网络技术论文(优秀6篇)
- 化学史课件讲课教案
评论
0/150
提交评论