




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课序号 091001-06 程序设计实验报告 题目:关于停车场管理系统的报告 姓 名 贾雨飞 学 号 2010434096 年级专业 10数电类(四班) 指导教师 王苗 2011年10月13日一:需求分析1、主菜单中已给出程序功能所对应的键盘操作的提示,用户可以根据提示选择操作,有车到来、有车离开、查询、操作结束。车辆到来和离开操作中,会提示用户输入相应的车牌号信息,车辆离开中输入应缴纳停车费的金额才缴费,然后离开,便道中的车辆就会自动移动到停车场内。查询功能中,不需再输入和选择信息,直接输出目前停车场内的车辆信息和便道上的车辆信息。2、输入功能中只需要按照提示输入即可,输出功能中会按照其需要
2、输出相应的车辆信息、停车场信息、和提示信息等。3、当停车场容量为2时,(a、“f001”、5),(a、“a002”、10),(b、“f001”、15),(a、“f003”、20),(a、“c004”、25),(a、“b005”、30),(b、“a002”、35),(b、“c004”、40),(d、0、0)。当停车场容量为5时,连续有7辆车到来,牌照号分别为f001、f002、f003、f004、f005、f006、f007,前5辆车应该进入停车位15车位,第6、7辆车应停入便道的1、2位置上。牌照号为f003的汽车从停车厂开走,应显示f005、f004的让路动作和f006从便道到停车位上的动作
3、。(到达和离开时间请自行设定)二、 整体设计1、typedef structchar license_plate6 ;/*汽车牌照号码,定义为一个字符指针类型*/ float time; /*汽车进入停车场的时刻*/ char state; /*汽车当前状态,字符p表示停放在停车位上,字符q表示停放在便道上*/car; typedef struct /停车场的顺序栈car packmax_park; /*各汽车信息的存储空间*/ int top; /*用来指示栈顶位置的指针*/parkstack;typedef struct qnode /便道队列car data; /*各汽车信息的存储空间*
4、/ struct qnode *next;qnode;typedef structqnode *front, *rear; /*用来指示队头和队尾位置的指针*/roadqueue;typedef struct /辅助栈car bufermax_park;/*各汽车信息的存储空间*/ int top; /*用来指示栈顶位置的静态指针*/buffer; 2、主菜单中可选择车辆到来、车辆离开、查询、输入结束等操作指令,车辆到来和离开功能中,会提示用户输入车牌号和到来或离开时间,输入后即可按照执行操作。车辆到来操作中,输入车牌号和到达的时间后,车辆会停入相应的位置,停车场内有空位置则停在停车场内,否则
5、会停在便道中去。而离开的车辆输入车牌号和离开时间后还要输入缴费金额来完成缴费后离开,此时如果便道上有等候的车辆则把第一个转入停车场内。关于查询函数,首先查找停车场内的信息,并输出各车位上的车辆信息,然后查找便道上的车辆信息并且输出。3、主模块中,已经申请好了停车场、便道及辅助栈的空间,车辆到来的时候,把停车场空间和便道空间地址分别代入到函数中,则车会停在相应的位置上。车辆离开的时候则将停车场、辅助栈及便道空间地址代入,然后根据车辆进出的规则让车辆离开停车场并缴纳停车费。查询模块中只需将停车场和便道地址代入,逐个查找并输出车辆信息即可。三、 详细设计1、 数据类型的自定义类型已经在整体设计中给出
6、,数据类型的定义在需要的时候自行定义即可。 2、 主模块: void main()do coutendl;cout *endl;cout *_欢迎使用停车场管理系统_*endl; cout *endl; cout a:车辆到达 b:车辆离开 c:场内及便道状态查询 d:输入结束endl;cout (注意:区分大小写)endlendl;couta;while(!(a=a&a=d)cout指令输入错误,请重新输入!a;switch(a) case a: q=arrival(&p,&q); break; case b: q=depart(&p,&q,&f); break;case c: search
7、(&p,&q); break;case d: return;while(1); 车辆到来模块:roadqueue arrival(parkstack *p,roadqueue *q)cind.license_plate;cind.time;if(p-top=(max_park-1)int i=0; /记录汽车在便道上的位置temp=new qnode;temp-next=null;temp-data=d;temp-data.state=q;q-rear-next=temp;q-rear=q-rear-next;n=q-front;while(n!=q-rear)n=n-next;i+;retu
8、rn *q;elsep-packp-top+1=d; p-top+;p-packp-top.state=p;return *q;车辆离开模块: roadqueue depart(parkstack *p,roadqueue *q,buffer *f)cina;for(int i=0;itop;i+)if(strcmp(a,p-packi.license_plate)=0) for(int j=p-top;ji;j-)f-top+;f-buferf-top=p-packj;p-top-;cinl;w=price*(l-p-packi.time);cout您的停车费用为wpacki;p-top-;
9、while(f-top!=-1)p-packi=f-buferf-top;i+;p-top+;f-top-;if(q-front-next=null)coutfront=q-front-next;p-pack+p-top=q-front-data;p-packp-top.state=p;return *q;return *q; 查询模块: void search(parkstack *p,roadqueue *q) qnode *b;if(p-top=(max_park-1)cout停车场内已经没有车位了,谢谢endl;for(int i=0;i=max_park-1;i+)cout第i+1个
10、车位,车牌号:packi.license_plate;cout停车时间为:packi.timeendl;elsecout停车场内还有top个车位,;for(int i=0;itop;i+)cout第i+1个车位,车牌号:packi.license_plate;cout停车时间为:packi.timefront-next;if(b=null)cout便道上没有车辆等候,谢谢!;elsewhile(b)k+;cout便道第k的位置,车牌号:data.license_plate;b=b-next;3、 函数的调用很简单,只需要在主函数中调用车辆到来、车辆离开、查询函数即可。四、 调试分析1、刚开始测
11、试时候,查询函数中,会输出便道上车辆数为一个随机数字,于是知道肯定是记录车辆数的变量k的原因,查找k的变化过程,原来刚开始定义k的时候未对k进行赋值。对k赋值0以后问题自然解决了。2、时间复杂度为o(n),空间复杂度也为o(n)。五、 使用说明及测试结果本系统的使用只需根据提示信息输入即可,停车场内无空位的时候车辆自动停到便道上,停车场内有车辆离开后,便道上第一位置上的车辆自动停进停车场内。车辆离开的时候会有缴纳停车费的操作,只需按照提示输入要缴纳的金额即可缴费成功并离开。查询功能,只需选择查询功能,自动查找停车场内和便道上的车辆情况,不需要再进行其他操作。输入结束后,选择d即可退出系统。当停车场容量为2时,(a、“f001”、5),(a、“a002”、10),(b、“f001”、15),(a、“f003”、20),(a、“c004”、25),(a、“b005”、30),(b、“a002”、35),(b、“c004”、40),(d、0、0)。下面是调试的部分截图: f001和a002都停入了停车场。下图:f001成功离开停车场。b005停入停车场。 c004成功离开!当停车场容量为5时,连续有7辆车到来,牌照号分别为f001、f002、f003、f004、f005、f006、f007,前5辆车应该进入停车位15车位,第6、7辆车应停入便道的1、2位置上。牌照号为f003的汽车从停
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 堤防应急救援与响应方案
- 职业化视角下装配式建筑工人胜任力评价研究
- 市政管道施工安全保障方案
- 难点解析人教版八年级上册物理物态变化《熔化和凝固》章节测试试卷(含答案解析)
- 工程勘察质量检查与监管方案
- 反应烧结碳化硅陶瓷的制备及性能研究
- 第10节 交流评价网站说课稿-2025-2026学年初中信息技术北师大版八年级上册 -北师大版
- 合肥地区混凝土强度回弹法测强曲线和机器学习预测模型
- 基于深度学习的双目立体匹配算法研究
- DB11T 1322.51-2025 安全生产等级评定技术规范 第51部分:旅行社
- 生发合同协议书范本
- 氯气的性质课件高一上学期化学人教版
- 水利工程监理部主要工作制度(依据2014版监理规范编写)
- 2025浙江版八年级科学下册知识梳理(详细版)
- 老舍《茶馆》三幕话剧剧本
- 2025年南京铁道职业技术学院单招职业技能测试题库附答案
- 产教融合视域下高职人才培养质量多元协同评价体系的探索与实践
- 《社区思想政治教育研究的国内外文献综述》4300字
- GB/T 8232-2024粟
- 【MOOC】走进舞蹈艺术-首都师范大学 中国大学慕课MOOC答案
- 村级硬化道路报告范文
评论
0/150
提交评论