当前位置:首页 > 数据结构课程设计 停车场管理系统
实验二 停车场管理
班级:A0712 学号:12 姓名:冷清淼 成绩:__________
指导教师签名:__________
一、问题描述
设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。
设计要求:
1.模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。 2.从终端读入汽车到达或离去的数据,每组数据包括三项: (1)是“到达”还是“离开”; (2)汽车牌照号码;
(3)“到达”或“离开”的时刻。
3.与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。
二、算法说明
1.数据结构说明
(1)用到两个堆栈:一个为车场栈;另一个为临时栈temp typedef struct NODE{ CarNode *stack[MAX+1]; int top;
}SeqStackCar; /*模拟车场*/
1
(2)一个队列结构,存储便道车辆信息: typedef struct Node{
QueueNode *head; QueueNode *rear;
}LinkQueueCar; /*模拟便道*/
2.算法说明
(1) 功能模块说明:停车场管理系统含有三个模块,即:车辆到达、离开、列表显示
停车场系统12车辆到达 图1 (2)以模块为单位分析算法
1、“到达”模块:到达时有两种情况,即车场是否满,未满则直接进入停车场;满时,到便道等待。如图2。
3车辆离开列表显示 车辆到达停车场是否满否进入停车场是进入便道
结束 图2
2
2.“离开”模块:离开时,当车库为空时,提示没有车,结束;否则车辆离开。如图3。
车辆离开停车场是否空否车辆离开是提示没有车是便道是否有车车进入车场否结束 图3
3. “显示”模块:显示模块有两个显示选项,即:车场与便道。如图4。
列表显示判断输入值1.车场显示车场列表2.便道显示便道列表结束 图4
3
三、测试结果
(一)测试用例(说明:测试用例要合理并且足够,既要有正确用例,也要有错误用例,
同时检验程序的正确性和强壮性)
1.第一组测试用例
(1)测试输入:停车场的车辆离开,如下表:
服务选择 1 1 1 2 2 车牌号/车位 QH058 AB123 EA642 2 1 到达/离开时间 15:25 18:45 23:15 0:30 0:65(错误) (2)测试目的:测试离开方法时间格式控制以及费用计算是否正确。
(3)正确输出:第一次离开的是AB123,应交费3.45元。第二次时,当在输入65时,应该提示输入错误,重输。
(4)实际输出:
(5)错误原因:第一个错误是在计算时,一个数字错了;第二个是没有对时间格式控制。
(6)当前状态:已改正 2.第二组测试用例
4
共分享92篇相关文档