数据结构停车场问题.doc

数据结构停车场问题.doc

ID:55773591

大小:354.00 KB

页数:25页

时间:2020-06-07

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

《数据结构停车场问题.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数据结构课程实验指导书一、需求分析1.车辆目前情况,用户通过键盘输入,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间(离开时间减去停在停车场的时间)和应交纳的费用(在便道上停留的时间不收费)。2.依次输入一系列数据项(3个数据:第一个字符数据A或D表示车辆的到达或离开,第二整形数据表示车辆的车牌号码,第

2、三个整形数据表示汽车到达或离去的时间),要求同一辆汽车到达的时间比离开的时间早。3.测试数据设停车场能容纳3辆车。请输入车辆目前情况:A,1,51车辆停入停车场1号。请输入车辆目前情况:A,2,61车辆停入停车场1号2车辆停入停车场2号。请输入车辆目前情况:A,3,5输入时间错误哦!请输入车辆目前情况:A,3,61车辆停入停车场1号2车辆停入停车场2号。3车辆停入停车场3号。请输入车辆目前情况:A,4,61车辆停入停车场1号。2车辆停入停车场2号。3车辆停入停车场3号。4车辆在便道1号。停车场已满。4车辆已放在便道。请输入车辆目前情况:D,1,71车辆已离开。时间

3、5,收费10块。2车辆停入停车场1号。3车辆停入停车场2号。4车辆停入停车场3号。请输入车辆目前情况:E,0,0程序结束,感谢使用本程序哦。本程序其他错误处理,没有设置处理。二、概要设计抽象数据类型基本操作对象是汽车类,包含来去信息,车牌号以及到达时间;ClassCar//车辆信息{Public:-25-数据结构课程实验指导书intLincese;//车牌号intArriveTime;//到达时间};便道先进先出的特性用队列是十分好的,但停车场有一个要求就是先进的要出去时,所有车辆都要让路,所以停车场用栈来模拟,便道使用队列来模拟;ADTStopStack数据对象

4、:D={

5、∈classcar};数据关系:R1={

6、ai-1,ai∈D,i=2,...,n}约定an端为栈顶,a1端为栈底。基本操作:boolpush(constCar&item);Boolpop(Car&it);booltopValue(Car&it);intlengh()const{returntop;}ADTStopQueue数据对象:R={

7、∈classcar};数据关系:R1={

8、ai-1,ai∈R,i=2,...,n}约定其中a1端为队列头,an端为队列尾基本操作:boolenquene(constCar&item)

9、;booldequene(Car&it);boolfrontValue(Car&it);intlength();算法的基本思想(1)用一车类对象做中介,存储输入的要进停车场某一车量情况。(2)当车进来的时候,首先让其按时间顺序依次入栈。(A为入栈,D为出栈,E为输入结束。)(3)当size=3即栈满时,让其在便道时按时间顺序依次入队;(4)当输入某元素要出栈时,让其上面元素依次压入另一个临时栈,并用通过当时车类的对象减去入栈时时间,算出停车时间,计算出停车费用,。在将临时栈中元素入栈。队列第一个元素入栈。程序的流程程序由三个模块组成:(1)输入模块:通过键盘输入某

10、一车辆现在状态。(2)管理模块:首先判断第一个字符为A时,将该车类对象入栈,栈满时,在依次入队,当字符为D时,栈中元素出栈,记录当时出栈时间,得到停留时间,算出停车费用,若队中元素出列,无停车费用。(3)输出模块:输出车站目前车辆情况。三、详细设计物理数据类型数据类型(物理数据结构)的实现:-25-数据结构课程实验指导书ClassCar//车辆信息{Public:intLincese;//车牌号intArriveTime;//到达时间};模拟停车场的栈:ClassStopStack:publiccar{{Private:intsize;inttop;Car*lis

11、tArray;Public:StopStack(intsz=DefaultListSize){size=sz;top=0;listArray=newCar[sz];}~StopStack(){delete[]listArray;}boolpush(constCar&item){if(top==size)Returnfalse;Else{listArray[top++]=item;returnture;}}boolpop(Car&it){if(top==0)Returnfalse;Else{it==listArray[--top];returntrue;}}}boo

12、ltopV

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

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

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