停车场模拟实验报告

停车场模拟实验报告

ID:33820430

大小:68.50 KB

页数:9页

时间:2019-03-01

停车场模拟实验报告_第1页
停车场模拟实验报告_第2页
停车场模拟实验报告_第3页
停车场模拟实验报告_第4页
停车场模拟实验报告_第5页
资源描述:

《停车场模拟实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验题目:模拟停车厂管理班级数电4班姓名:吴小娜学号:2010434028日期:2011年10月20日一、需求分析1.程序的功能设停车厂是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若停车场内已停满汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门后,为它让路的车辆再按原次序进入车场。每辆停放在停车场的车,在离开时按其在停车场停留时间的长短交费。在这里假设汽车不能从便道上开走。试设计

2、一个实现停车场管理的程序。2.输入输出的要求每一组输入数据包括三个数据项:汽车“到达”或“离去”的信息、汽车牌照号码、汽车到达或离去的时刻;对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出车辆在停车场内或便道上的停车位置;若是车辆离去,则输出车辆在停车场内停留的时间和应缴纳的费用(假设在便道上等候的时间不收费)。3.测试数据。1.当停车场容量为2时,(‘A’、“F001”、5),(‘A’、“A002”、10),(‘D’、“F001”、15),(‘A’、“F003”、20),(‘A’、“C004”、25),(‘A’、“B005”、30),(‘D’、“A002”、35),(‘D’、“

3、C004”、40),(‘E’、0、0)。当停车场容量为5时,连续有7辆车到来,牌照号分别为F001、F002、F003、F004、、F005、F006、F007,前5辆车应该进入停车位1-5车位,第6、7辆车应停入便道的1、2位置上。牌照号为F003的汽车从停车厂开走,应显示F005、F004的让路动作和F006从便道到停车位上的动作。(到达和离开时间请自行设定)。二、概要设计1.本程序所用的抽象数据类型的定义typedefstruct{charlicense_plate[6];//汽车牌照号码,定义为一个字符指针类型floattime1;//汽车进入停车场的时刻floattime2;//汽

4、车离开停车场的时刻charstate;//汽车当前状态,字符p表示停放在停车位上,字符q表示停放在便道上}Car;typedefstruct{CarPack[MAX_PARK];//各汽车信息的存储空间inttop;//用来指示栈顶位置的指针}ParkStack;typedefstructqnode//链式队列存储结构{Cardata;//各汽车信息的存储空间structqnode*next;}Qnode;//链队结点类型typedefstruct//存储便道停车信息的队列{Qnode*front,*rear;//用来指示队头和队尾位置的指针}RoadQueue;//将头尾指针封装在一起的链

5、队typedefstruct//辅助栈{Carbuffer[MAX_PARK];//各汽车信息的存储空间inttop;//用来指示栈顶位置的静态指针}BUFFER;2.主模块的流程及各子模块的主要功能主控功能:介绍程序的基本功能,并给出程序功能所对应的键盘操作的提示,如车到来或离去的表示方法,停车场或者便道的状态的查询方法提示等。汽车到来模块:首先要查询当前停车场的状态,当停车场非满时,将其驶入停车场(入栈),开始计费;当停车场满时,让其进入便道等候(入队)。汽车离开停车场的模块:当某辆车要离开停车场的时候,比它后进停车场的车要为它让路,(即将这些车依次“压入”辅助栈),开走请求离开的车,再

6、将辅助栈中的车依次出栈,“压入”停车场;同时根据离开的车在停车场停留的时间进行收费;最后查询是否有车在便道等候,若有,将便道上的第一辆车驶入停车场(先出队,再入栈),开始交费。状态查询:用来在屏幕上显示停车位和便道上各位置的状态。3.模块之间的层次关系主函数负责输出,包括要选择的部分提示和选择项目,选择的项目包括车辆的进入,离开,和当前停车场的信息查询。通过这些来实现车辆的管理。三、详细设计1.写出各模块的伪码算法;主函数模块voidmain()//主函数{intchoice;Car*c;c=newCar;charb;chark;ParkStack*s;RoadQueue*g;g=Init_

7、RoadQueue();//初始化链队BUFFER*a;s=Init_Stack();//初始化栈a=Init_BUFFER();//初始化辅助栈cout<<"*****************************"<

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

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

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