1 / 15
文档名称:

停车场管理实验报告.doc

格式:doc   大小:46KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

停车场管理实验报告.doc

上传人:1294838662 2019/5/28 文件大小:46 KB

下载得到文件列表

停车场管理实验报告.doc

相关文档

文档介绍

文档介绍:停车场管理实验报告篇一:数据结构实验报告二-(1)输入的形式和输入值的范围:第一次输入一个正整数,代表停车场容量大小。以后每一次输入三个值,分别为字符、整形、整形,中间用逗号隔开。分别代表车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。其中字符必须为“A,D,E”三者之一。输入格式为:“(‘A’,1,5)”、“(‘D’,1,15)”。不对非法输入做处理,即假设输入都是合法的。(2)输出的形式:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。(3)程序所能达到的功能:对于用户输入的车辆信息,可以输出该车的停车位置或者停车时间及应缴费用。(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,(1)抽象数据类型的定义:由于每一辆车包含多种信息。所以定义一个Data类来存储汽车的“来去、车牌号,时间”信息。classData//每辆车的信息类{public:intlicense;//车牌号码intarrive;//到达时间};用栈模拟停车场,其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{return((rear+size)-front+1)%size;}//队列的实际长度(2)算法的基本思想:1、对于指定大小的停车场,其只有一端出口,先进后出,用栈存储;超过停车场容量的车停在便道上,先进先出,用队列存储;当汽车离开时,在它之后进入的车辆必须先退出再按原次序进入车场,需要一个临时栈存储。2、每进入一辆车,进行入栈操作,即停车场;如果入栈不成功则入队列,即便道。每离开一辆车:1)要对在该车之后进入的车辆进行弾栈操作,出栈的元素依次存入另一个临时堆栈,即为离开车辆开道。2)在对该车进行出栈操作后,再将临时堆栈的元素弹回原栈。3)通过离开时间与该车储存在Data中的到达时间差获得停车时间以及费用(费用的计算根据2元/小时)。4)此时如果队列不为空,表明便道上有车待入,修改此待入车辆的到达时间为离开车的离开时间,并进行入栈操作。当输入不为‘E’时,循环进行上述操作。(1)实现概要设计中定义的所有数据类型:1、分别用字符型、整形、整形存储用户的输入,并将相应数据存入Data类。classData//每辆车的信息类{public:intlicense;//车牌号码intarrive;//到达时间};2、用顺序栈表实现栈:classStack//堆栈,模拟停车场以及有车辆离开时的临时停车处{private: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];returntrue;}}booltopValue(Data&it)//顶层元素值{if(top==0)returnfalse;it=listArray[top-1];returntrue;}intlength()const{returntop;}//栈实际长度};3、用循环队列实现队列:classQuene//队列,模拟便道{private:intsize;intfront;intrear;Data*listArray;public:Quene(intsz){size=sz+1;re