停车场管理问题实验报告.docx
- 文档编号:9019115
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:14
- 大小:375.50KB
停车场管理问题实验报告.docx
《停车场管理问题实验报告.docx》由会员分享,可在线阅读,更多相关《停车场管理问题实验报告.docx(14页珍藏版)》请在冰点文库上搜索。
停车场管理问题实验报告
停车场管理问题实验报告
1、需求分析
1.用顺序存储结构模拟停车场,停车场最多停放n辆汽车。
所以最大存储长度MAXINITSIZE=N,经过预处理#defineN2,设置N为2。
2.当停车场内已停满n辆汽车,则后来的汽车只能在门外的便道等候。
用先进先出的队列表示便道。
3.用户输入“A”“D”“E”,来选择进行“到达”“离去”“输入结束”操作。
用户自行输入“车牌号、车辆类型、进入时间”或“车牌号、离开时间”
4.要进入停车场的车,不能与已经停在停车场和便道上的车牌号相同,进入的时间不能比最后停在停车场内的车时间小。
5.车辆进入后,输出所在停车场的位置(最北端为第一号)或者所在便道的位置。
6.要离开的车,必须是在停车场和便道内存在的车,离开时间不能比进入时间小,计算收费时,不同种类的汽车(小汽车、卡车、客车)的收费标准不一样,在便道和停车场收费标准也不同,从停车场开走的汽车,要计算它在便道停留时间产生的费用、停车场停留时间产生的费用之和。
7.停车场内有车要离开时,在它进入之后的车辆,要进入另一个栈中存贮,待该车能成功离开后,再依次压入表示停车场的栈。
同时,如果便道不为空,即:
有车在门外便道等候,将队列中的第一辆车压入表示停车场的栈
8.汽车可以直接从便道上开走,此时排在它前面的汽车要先开走让路,然后在依次排到队尾。
9.汽车离开后,输出离开前所在停车场或者便道上的位置,输出停留时间,输出收费。
2、设计
1.自定义数据类型ElemType表示“车”,包括以下信息:
车辆类型,车牌号,进入时间,累计收费(车进入时,初始化为0),因此,自定义时间类型Time,内容包括:
时、分、秒。
2.以顺序结构实现栈,用栈Parking表示停车场,栈Waiting模拟暂存调出汽车的空间。
用链表结构的队列Road表示
3.在main函数里,运用While(){},使汽车离开、将进入等能多次操作。
4.
选择将要进行的操作:
进入、离开、结束?
Main函数的框架如下图所示
汽车离开
结束
汽车进入
该车既不在停车场也不在便道上,输入车号错误
遍历Road,判断该车是否在便道上,
遍历Parking,判断该车是否在停车场
是
是
输出在便道中的位置,比较所输入的离开时间与该车进入时间的大小。
不是
输出在停车场中的位置n。
统计停车场车辆的总数N
在停车场中,让比该车后进入的汽车都调出,即,做N-n次出Parking栈,入Waiting栈。
在便道的第n号,让n-1出队列,排到队尾
不是
输入的车牌号在Parking中已存在
输入离开时间不正确,该车和前N-n辆车都入栈。
让该车出栈。
比较输入的离开时间与进入时间的大小
让该车出队列,输出在便道上的位置,计算停留时间、停车费用
不是
Parking栈是否已满
输出汽车停留时间,停车费用。
做N-n次出Waiting栈,入Parking栈,车辆按原次序进入停车场
将输入的汽车压入Parking栈中,输出该车栈中的位置
将输入的汽车插入到队列Road中,输出该车在队列中的位置
如果队列不为空,即:
便道上有等待车辆,让队列第一个汽车出队后,记录存储从将进入便道到离开便道所需缴纳的费用,入栈,进入停车场
不同的汽车类型收费情况不同,写计算收费单价的函数,参变量为汽车的类型,通过区分判断,返回值为在停车场或便道的收费单价。
5.Stack.cpp中包含的函数实现如下功能:
1)出栈,并且返回其值2)入栈3)创建栈4)返回栈中元素个数5)遍历栈,返回某车牌号所对应的车在栈中的位置
Queue。
cpp中包含的函数实现如下功能:
1)创建队列2)出队列并返回其值3)入队列4)返回队列中元素的个数5)遍历队列,返回某车牌号所对应的车在队列中的位置6)返回在队列中某位置的汽车的全部信息。
6.实现注释:
需求分析中所要实现的功能基本实现,还可以对输入的时间格式的正确与否做判断。
3、用户手册
1.使用时,首先输入要进行的操作”A”/”D”/”E”,回车。
然后依次输入汽车类型、汽车车牌号、时间等信息。
2.请注意,当选择”A”(到达)时,“汽车类型”这一选项必须输入,而且选择只能为”A”/”B”/”C”三个选项(A:
小汽车B:
客车C:
卡车)。
4、调试报告
1.本次实验尝试用多文件构建一个工程,摒弃在头文件中写函数和只建立一个源文件的弊病。
2.相比较第一次实验,这次程序写的比较顺利,学会了基本调试的方法并运用它来解决问题。
3.这次实验的主要问题在遍历栈、遍历队列返回位置的函数中。
条件设定不正确,导致结果错误。
4.另外一个问题,在汽车从便道上直接开走的情况中,原来的程序思路是:
1)把队列前n-1辆车开走,排到队尾
2)把该车从队列开走,这时,进行一次判断,比较输入的离开时间和汽车进入时间的大小,如果离开时间不合理,让该汽车再插入队列中。
结束操作。
这种思路没有考虑把前n-1辆车再从队尾调到队列的开头,运行时如果用一般的测试数据,错误很难发现。
当调试时发现错误后,便设计了Compare函数,先通过该函数返回该车牌号对应汽车的各种信息,包括进入时间,先让输入的离开时间与该进入时间比较,判断是否合理,然后再进行前n-1辆车出队列,入队尾的操作。
5.该程序还有个问题未解决:
汽车进入时,如果没输入汽车类型,程序无限循环。
5、附录
备注:
便道上:
小汽车1元/每分钟客车1.5元/每分钟卡车3.0元/每分钟。
停车场上:
小汽车2元/每分钟客车3.0元/每分钟卡车6.0元/每分钟。
1.输入的汽车车牌号不能重复,停车场已满,汽车在便道等候
2.汽车进入的时间不能比停车场内最后一辆车的时间小
3.输出停车场第一号车后,队列的第一号进入停车场
其中1464元为在便道上的2小时2分钟的366元与停车场上的3小时3分钟的1098元之和。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 问题 实验 报告