欢迎来到天天文库
浏览记录
ID:47510584
大小:304.43 KB
页数:18页
时间:2020-01-12
《停车场管理实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、..HUNANUNIVERSITY课程实验报告题目:停车场管理学生姓名:学生学号:专业班级:指导老师:完成日期:word教育资料..一.需求分析1.输入形式第一次输入一个正整数,代表停车场容量大小。然后输入三个值,分别为字符、正整数、正整数,中间用空格隔开,分别代表车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。其中字符必须为“A,D,E”三者之一。输入格式为:“A15”、“D115”和“E00“。当用户输入的字符不是ADE或者输入的不是正整数时,提示用户输入错误并重新输入2.输出形式若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停
2、车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。(注:本程序中默认停车一小时收费10元)3.程序功能本程序可通过用户输入的车辆信息,输出该车的停车位置或者停车时间及应缴费用4.测试数据请输入停车场容量:5A11车停在停车场第1个位置A22车停在停车场第2个位置A66车停在停车场第3个位置D14停车时间:3缴纳费用:¥30D26停车时间:3缴纳费用:¥30FC19.5输入有误,请重新输入E00二.概要设计1.抽象数据类型将每辆车模拟成一个对象,每个对象具有车牌号时间等属性,所以定义一个Car类存储这些信息classCar{public:intCarNumber;//车
3、牌号码word教育资料..intArriveTime;//到达时间intLeaveTime;//离开时间}使用栈模拟停车场,其ADT设计:ADTstack数据对象:Car类数据关系:线性关系基本操作:voidclear();//栈的初始化boolpush(constCar&item);//栈的插入操作boolpop(Car&it);//栈的删除操作booltopValue(Car&it)//栈的顶层元素intlength()const{returnsize};//栈的实际长度使用队列模拟场外通道,其ADT设计如下:ADTQueue数据对象:Car类数据关系:线性关系基本操作:v
4、oidclear();//队列的初始化boolenqueue(constCar&it);//入队booldequeue(Car&it);//出队intlength()const{returnsize;};//队列的长度2.算法基本思想①在该程序中,对停车场和场外通中每辆车停车的编号而言,他们有唯一的第一个元素和最后一个元素,而且除第一个元素以外的每个元素都有唯一的后继,除最后一个元素以外的每个元素都有唯一的前驱。因此这些元素具有线性关系。而且,对于停车场里面的汽车,他们逻辑次序是“先进后出,后进先出“的,且只在表头作插入和删除,所以可以使用栈来模拟停车场。而在场外通道中的汽车,
5、他们是”先进先出”的,在一端插入另一端删除操作,所以可以用队列来模拟场外通道。当汽车离开时,在它之后进入的车辆必须先退出再按原次序进入停车场,所以需要定义另外一个临时栈存储这些元素。(本算法按用户输入的顺序进行车辆的停放,不是按车牌号码依次停放)word教育资料..②(1)当有汽车需要进停车场停车时,进行入栈操作,若停车场已满,即栈已满,则将车停在场外通道里,进行入队操作,并记下此时的时间ArriveTime;(2)当有汽车需要离开停车场时,对该车对应的元素进行出栈操作,并将后面进来的车辆所对应的元素进行出栈操作,将这些元素(除了需要离开的车对应的元素)存入另外一个栈,即为需要
6、离开停车场的车让道,并记下此时的时间LeaveTime;(3)在需要离开停车场的车成功离开停车场时,将存储在临时栈的那些元素按照原来的顺序依次插入原来的栈;(4)如果队列不为空(即停车场场外通道上有车,这些车需要进入停车场停车),进行入栈操作,即进行(1)操作;(5)通过LeaveTime与ArriveTime的差计算停车时间和停车费用(本程序默认停车每小时10元);3.程序基本流程程序由个基本模块组成:输入模块:输入停车场的容量和车辆的相关信息;停车模块:根据车的信息,将该车对应的元素进行入栈操作;离开模块:根据车的信息,将该车对应的元素进行出栈操作,并将后面的元素存入一个临
7、时栈中;输出模块:输出该车停车位置或停车费用;一.详细设计1.物理数据类型①停车场容量为正整数,使用整型数据存储n;②对于剩下的输入使用字符型、整型、整型存储,并将相应数据存入Car类classCar{public:intCarNumber;//车牌号码intArriveTime;//到达时间intLeaveTime;//离开时间}③定义一个Link类用来存储元素值element及下一个存储表中下一个节点指针的next域,其ADT设计如下:templateclassLin
此文档下载收益归作者所有