1、 1 课课 程程 设设 计计 课程名称课程名称 数据结构 设计题目设计题目 停车场管理 学院学院/专业专业 计算机学院计算机 班班 级级 计科 1204 班 2 实践教学任务书实践教学任务书 题题 目目: : 停车场管理 初始条件:初始条件: 设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在辆车停放在 车场的最北端) , 若车场内已停满n辆汽车, 则后来的汽车只能在门外的便道上 等候, 一旦有车开走, 则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车 场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车
2、在它离开停 车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 测试用例自己设计; 要求完成的主要任务要求完成的主要任务: : (包括实践教学工作量及其技术要求,以及说明书撰写等具体要 求) 实践教学报告按学校规定格式用 A4 纸打印(书写) ,并应包含如下内容: 1、 问题描述 简述题目要解决的问题是什么。 2、 设计 存储结构设计、主要算法设计(用类 C 语言或用框图描述) 、测试用例设计 ; 3、 调试报告 调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。 4、 经验和体会(包括对算法改进的设想) 5、 附源程序清单和运行结果。源程序要加注释。
3、如果题目规定了测试数据,则运行结果要包含 这些测试数据和运行输出, 6、 设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩均为 0 分。 时间安排:时间安排: 1、第 17 周完成。 2、6 月 13 日 14:00 到计算中心检查程序、交实践教学报告、源程序(CD 盘) 。 指导教师签名:指导教师签名: 年年 月月 日日 系主任(或责任教师)签名:系主任(或责任教师)签名: 年年 月月 日日 正文正文 3 一、问题描述 设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在辆车停放在 车场的最北端) ,若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上 等
4、候,一旦有车开走, 则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车 场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停 车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 二、课程设计内容 1.设计思路 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每 一组输入数据包括两个数据项:汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后 的输出信息为:进入的车辆输出停车的位置,离开的车辆输出在停车场内停留的时间和应交纳的费用 (在便道上停留的时
5、间不收费) 。当车辆要进入停车场时,检查停车场是否已满,如果未满则车辆进入 停车场;如果停车场已满,则车辆进入便道等候。当车辆要求出栈时,先让在它之后进入停车场的车 辆退出停车场为它让路,再让该车退出停车场,让路的所有车辆再按其原来进入停车场的次序进入停 车场。之后,再检查在便道上是否有车等候,有车则让最先等待的那辆车进入停车场。栈,队列都以 顺序结构实现。 2.存储结构设计 Car 类 class Car Public: void createArriveCar();/构建进入停车场车辆信息 void createLeaveCar();/构建离开停车场车辆信息 void print();/打
6、印车辆信息 string carNumber;/车牌号 int hour; int minute;/到达的时间 bool status = false;/true 代表进入停车场,false 代表处停车场 ; 栈 template class Stack public: Stack();/构造空栈 Stack()delete stack; bool isEmpty()/判断栈是否为空 4 bool isFull()/判断栈是否满 T getTop()/返回栈顶元素 Stack/栈顶 int maxTop;/最大栈顶值 T*stack;/动态数组存储元素 ; 循环队列: template class Queue/循环队列 public: Queue()/构造空队列 Queue()delete queue; bool isEmpty(