数据结构实验报告二-停车场管理

数据结构实验报告二-停车场管理

ID:15364670

大小:69.00 KB

页数:7页

时间:2018-08-02

数据结构实验报告二-停车场管理_第1页
数据结构实验报告二-停车场管理_第2页
数据结构实验报告二-停车场管理_第3页
数据结构实验报告二-停车场管理_第4页
数据结构实验报告二-停车场管理_第5页
资源描述:

《数据结构实验报告二-停车场管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验2停车场管理1.需求分析(1)输入的形式和输入值的范围:第一次输入一个正整数,代表停车场容量大小。以后每一次输入三个值,分别为字符、整形、整形,中间用逗号隔开。分别代表车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。其中字符必须为“A,D,E”三者之一。输入格式为:“(‘A’,1,5)”、“(‘D’,1,15)”。不对非法输入做处理,即假设输入都是合法的。(2)输出的形式:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。(3)程序所能达到的功能:对于用户

2、输入的车辆信息,可以输出该车的停车位置或者停车时间及应缴费用。(4)测试数据:请输入停车场容量2A,1,1车停在停车场第1个位置A,2,2车停在停车场第2个位置A,3,3车停在便道第1个位置D,1,4停车时间:3缴纳费用:¥6D,2,5停车时间:3缴纳费用:¥6A,5,5车停在停车场第2个位置E,0,02.概要设计(1)抽象数据类型的定义:由于每一辆车包含多种信息。所以定义一个Data类来存储汽车的“来去、车牌号,时间”信息。classData//每辆车的信息类{public:intlicense;//车牌号码-7-intarrive;//到达时间};用栈模拟停

3、车场,其ADT如下:ADTstack数据对象:Data类型数据关系:线性关系基本操作:boolpush(constData&item)//入栈boolpop(Data&item)//出栈booltopValue(Data&it)//顶层元素值intlength()const{returntop;}//栈实际长度用队列模拟便道,其ADT如下:ADTquene数据对象:Data类型数据关系:线性关系基本操作:boolenquene(constData&it)//入队booldequene(Data&it)//出队virtualintlength()const{ret

4、urn((rear+size)-front+1)%size;}//队列的实际长度(1)算法的基本思想:1、对于指定大小的停车场,其只有一端出口,先进后出,用栈存储;超过停车场容量的车停在便道上,先进先出,用队列存储;当汽车离开时,在它之后进入的车辆必须先退出再按原次序进入车场,需要一个临时栈存储。2、每进入一辆车,进行入栈操作,即停车场;如果入栈不成功则入队列,即便道。每离开一辆车:1)要对在该车之后进入的车辆进行弾栈操作,出栈的元素依次存入另一个临时堆栈,即为离开车辆开道。2)在对该车进行出栈操作后,再将临时堆栈的元素弹回原栈。3)通过离开时间与该车储存在Da

5、ta中的到达时间差获得停车时间以及费用(费用的计算根据2元/小时)。4)此时如果队列不为空,表明便道上有车待入,修改此待入车辆的到达时间为离开车的离开时间,并进行入栈操作。当输入不为‘E’时,循环进行上述操作。-7-1.详细设计(1)实现概要设计中定义的所有数据类型:1、分别用字符型、整形、整形存储用户的输入,并将相应数据存入Data类。classData//每辆车的信息类{public:intlicense;//车牌号码intarrive;//到达时间};2、用顺序栈表实现栈:classStack//堆栈,模拟停车场以及有车辆离开时的临时停车处{private

6、:intsize;inttop;Data*listArray;public:Stack(intsz){size=sz;top=0;listArray=newData[sz];}~Stack(){delete[]listArray;}boolpush(constData&item)//入栈{if(top==size)returnfalse;else{listArray[top++]=item;returntrue;}}boolpop(Data&item)//出栈{if(top==0)returnfalse;else{item=listArray[--top];re

7、turntrue;}}booltopValue(Data&it)//顶层元素值{if(top==0)returnfalse;it=listArray[top-1];returntrue;}intlength()const{returntop;}//栈实际长度};-7-1、用循环队列实现队列:classQuene//队列,模拟便道{private:intsize;intfront;intrear;Data*listArray;public:Quene(intsz){size=sz+1;rear=0;front=1;listArray=newData[size];}

8、~Quene(){del

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

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

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