实验二停车场管理
班级:A0712 学号:12 姓名:冷清淼 成绩:
指导教师签名:
一、 问题描述
设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。 在停车场内,汽车按到达的先后次序,由北向南依次排歹0 (假设大门在最南端) 若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时, 便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆 必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车 场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不 收费)。
设计要求:
模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。
从终端读入汽车到达或离去的数据,每组数据包括三项:
是“到达”还是“离开”;
汽车牌照号码;
“到达”或“离开”的时刻。
与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停 车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和 应交的费用。
二、 算法说明
数据结构说明
用到两个堆栈:一个为车场栈;另一个为临时栈 temp
typedef struct NODE(
CarNode *stack[MAX+1];
int top;
}SeqStackCar; /* 模拟车场 */
一个队列结构,存储便道车辆信息:
typedef struct Node(
QueueNode *head;
QueueNode *rear;
}LinkQueueCar; /* 模拟便道 */
算法说明
功能模块说明:停车场管理系统含有三个模块,即:车辆到达、离开、列表显示
(2)
图1
以模块为单位分析算法
“到达”模块:到达时有两种情况,即车场是否满,未满则直接进入停车场;满时,
到便道等待。如图
2。
■■- 车辆到达
进入停车场 进入便道
图2
2.
“离开”模块:离开时,当车库为空时,提示没有车,结束;否则车辆离开。如图
3。
3.
车辆离开
图3
“显示”模块:显示模块有两个显示选项,即:车场与便道。如图
4。
图4
三、测试结果
(一)测试用例(说明:测试用例要合理并且足够, 既要有正确用例,也要有错误用例, 同时检验程序的正确性和强壮性)
第一组测试用例
测试输入:停车场的车辆离开,如下表:
服务选择
车牌号/车位
到达/离开时间
1
QH058
15: 25
1
AB123
18: 45
1
EA642
23: 15
2
2
0: 30
2
1
0: 65 (错误)
测试目的:测试离开方法时间格式控制以及费用计算是否正确。
正确输出:第一次离开的是 AB123,。第二次时,当在输入 65时, 应该提示输入错误,重输。
实际输出:
八・D八课程学习集、程序设计实习、停车场何果
辆时间段 车3达隼1 升12到
离IAB其离B
一一ts:4
间为为
0 S
3 0
■
0 3
为-:
.二
--D:\课程学习集'程序设计实习、停车场何
的间为为直 辆时间用没 .牛R达
开明到开畜 蔑刖其®
错误原因:第一个错误是在计算时,一个数字错了;第二个是没有对时间格式控
制。
当前状态:已改正
第二组测试用例
测试输入:连续 6辆车到达,如下表:
服务选择
车牌号
到达时间
1
A8828
7: 56
1
S2296
8: 25
1
WW666
8: 45
1
HK456
15: 50
1
GH999
12: 30
1
DD555
13: 40
测试目的:测试到达方法与列表显示方法能否正确完成。
正确输出:先到达的五辆车先进入停车场,最后到达的一辆在便道等候。
实际输出:
皿课程学习集'程序设计实习X停车场问题'代码夹\单代妈夹
位置到达时间车牌石
7:56 ASS2S
S:25 S22?6
3:45 UUC&6
15:50 11X456
G 12=30 GH999
情选择您磐显示信息,<1-3> = ※一1 .车场一※
※一芝一使遭一※
-m .扳回--※
险选择的是基道傍车情况, 等待车辆的车牌粤码为
数据结构课程设计报告停车场管理系统 来自淘豆网m.daumloan.com转载请标明出处.