数据结构 实验2 停车场问题.doc

数据结构 实验2 停车场问题.doc

ID:55706712

大小:301.00 KB

页数:10页

时间:2020-05-25

数据结构 实验2 停车场问题.doc_第1页
数据结构 实验2 停车场问题.doc_第2页
数据结构 实验2 停车场问题.doc_第3页
数据结构 实验2 停车场问题.doc_第4页
数据结构 实验2 停车场问题.doc_第5页
资源描述:

《数据结构 实验2 停车场问题.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、HUNANUNIVERSITY实验二最终报告题目:停车场管理学生姓名学生学号专业班级指导老师完成日期2014年4月24日一、需求分析1.输入形式:用户通过键盘输入一组数据:字符、整数、整数后,输出汽车到达或者汽车离去的相应信息到DOS界面。当用户输入数据不符合规范时,提示重新输入。输入规则:第一个字符中‘A’表示车辆到达;‘D’表示车辆离去;‘E’表示输入结束;第二个整数代表车牌号码;第三个整数代表到达或离去的时刻。2.输出形式:1)停入停车场:车牌号为x的汽车到达,位于停车场位置y2)停入便道:停车场

2、已满,车牌号为x的汽车位于便道位置y3)移动停车位置:车牌号为x的汽车停在停车场位置y4)离开车辆信息:车牌号为x的汽车离开,停车时间y小时,缴费z元3.功能:根据用户输入数据,若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用。4.测试数据停车场系统容量为2收费标准:每小时5元输入:A15输出:车牌号为1的汽车到达,位于停车场位置1输入:A210输出格式:车牌号为2的汽车到达,位于停车场位置2输入:A320输出格式:停车场已满,车牌号为3的

3、汽车位于便道位置1输入:D115输出格式:车牌号为1的汽车离开,停车时间10小时,缴费50元。输出格式:车牌号为3的汽车到达停车场,位于位置2输入:E00二、概要设计抽象数据类型根据题目设计要求,车辆只能从一个大门出入,汽车只能从停车场唯一一条狭长通道驶入驶出,而暂时停放车辆的便道同理。每一辆停入停车场或便道的汽车有唯一的前驱和后继,所以问题适合建立一个线性数据关系求解。因为停车场具有只有一个出入口、容量限定的特点,所以实现停车场的线性结构需要具备可限定空间大小,“先进后出”,只有一端出入口的特性,所以

4、用堆栈实现它。而临时车道停放车辆后要按原序停放回停车场,具有“先进后出”的特点,且需要的临时车道的容量小于等于停车场容量,所以用实现停车场的同一堆栈实现它。停车便道具有“先进先出”的特点,且需要停车便道的长度不可预测,所以使用链式队列实现。由于每辆汽车都包含车牌号、停放时间的信息,所以定义一个汽车类为每辆汽车打包这些信息。classcar//car类{public:intnum;//车牌号码inttime;//汽车停放时间};堆栈ADT定义:数据对象:car类数据关系:R={

5、ai-1

6、,ai∈car,i=1,2,3….n}约定an为栈顶,a1为栈底。Stack();//结构初始化操作boolpush(constcar&it);//压入一个数据boolpop(car&it);//依次弹出m个数据booltopValue(car&it);//获取栈顶元素~Stack();//结构销毁操作intlength()const;//获取栈的长度队列ADT定义:数据对象:car类数据关系:R={

7、ai-1,ai∈car,i=1,2,3….n}约定a1为队列头,an为队列尾。Que

8、ue();//队列结构初始化~Queue();//结构销毁操作boolpush(constcar&it);//数据入列boolpop(car&it);//数据出列virtualintlength()const;//获取队列长度算法的基本思想1)如果有一辆车要停入,先判断停车场是否已满。若未满,把汽车停入停车场(入栈),记录下汽车的车牌号和停放时间。若已满,把汽车停入便道(入队列)中,记录汽车车牌号,并提示输出停放位置。2)如果一辆车要离开,用该车车牌号查找停车场中的车,如果不是所查找的车,把此车驶出停车

9、场(出栈),停入临时车道中(入临时栈),直到查找到该车为止。若查找到,把此车驶出停车场,记录汽车驶离时间,计算停车费用。汽车离开后把临时车道中的汽车依次驶出(出临时找),并停入停车场中(入栈)。最后判断便道内是否停有汽车,如果有,把便道中的第一辆车驶出(出队列)停放到停车场(入栈)内,记录停放时间为汽车驶离时间。程序的流程(1)输入模块:输入一组包含汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻的数据。(2)判断模块:判断汽车是“到达”或“离开”,若为“到达”执行第(3)1)步,若为“离开

10、”执行第(3)2)步。(若为‘结束’则停止程序。)(3)处理模块:1)汽车“到达”:把汽车包含的信息存入栈中,如果入栈失败,则存入队列中。返回第(1)步。2)汽车“离开”:根据要离开汽车的车牌号对栈中数据判断,不是寻找的数据则出栈存入临时栈中。找到数据则返回其时间信息并弹出该数据,再判断队列中是否有数据,有则把队列头的数据弹出,压入栈中。(4)输出模块:根据时间信息计算停车费用输出到屏幕,并返回第(1)步。三、详细设计根据题目需求,用堆栈实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。