1、 0 目目 录录 一、一、设计目的设计目的2 二、二、设计内容设计内容2 1.题目题目 2 2.问题描述问题描述2 3.基本要求基本要求2 4.实现提示实现提示2 三、三、算法思想分析算法思想分析3 四、四、算法描述与实现算法描述与实现4 1.1.数据结构类型定义数据结构类型定义 4 2.2.主要算法的流程图及系统模块划分主要算法的流程图及系统模块划分6 3.3.功能描述功能描述 7 4.4.程序代码程序代码 8 五、五、测试结果测试结果 17 六、六、总结体会总结体会 20 1 一、一、设计目的设计目的 数据结构是计算机专业的核心课程,是一门实践性很强的课程。为了学 好这门课程,必须在掌握理
2、论知识的同时,加强上机实践。课程设计是加强学生 实践能力的一个强有力手段,要求学生掌握数据结构的应用、算法的编写、将算 法转换成程序并上机调试的基本方法, 还要求学生在完成程序设计的同时能够写 出比较规范的设计报告。本课程设计的目的就是要达到理论与实际应用相结合, 使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实 际问题在计算机内部表示出来, 并培养学生的基本程序设计素养和软件工作者工 作作风。 二、二、设计内容设计内容 1.1.题目:题目:模拟停车场管理问题 2.2.问题描述:问题描述: 设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车 进出。 汽车在停
3、车场按车辆到来的先后顺序依次排列, 若车场内已停满几辆汽车, 则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上 的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道, 在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门后,为它让路 的车辆在按原次序进入车场。 每辆停放在车场的车在它离开停车场时必须按它停 留的时间长短交纳费用。 3.3.基本要求:基本要求: 试为停车场编制按上述要求进行管理的模拟程序。在这里假设汽车不能从 便道上开走。试设计一个停车场管理程序。 4.4.实现提示:实现提示: 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输
4、入数据序 列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信 息、汽车牌照号码及到达或离去的时刻,例如:(A,1,5)表示一号牌照车在 5 这个时刻到达,而(D,5,20)表示 5 号牌照车在 20 这个时刻离去,整个程序可 以在输入信息为(E,0,0)时结束。 对每一组输入数据进行操作后的输出数据为: 若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输 2 出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。 栈以顺序结构实现,队列以链表实现。需另设一个栈,临时停放为给要离去的汽 车让路而从停车场退出来的汽车。 三、三、算法思想分析算
5、法思想分析 1.输入输入 根据提示输入停车场容量 n。 2.创建创建 根据读入的停车场容量 n,创建长度为 n 的栈(停车场) 。 3.主要操作主要操作 1)插入(车辆停入)插入(车辆停入) 根据提示往栈中插入元素(车辆信息) ,即使车辆停在停车场中。首先检查停 车场是否已满,若不满,则车辆停放在停车场中,记录车辆到达时间,并把此时 间作为开始计费时间。若插入的元素个数超过停车场的容量,则此后的车辆停在 便道上用队列表示,即元素储存在队列中。 2)删除(车辆离开)删除(车辆离开) 根据提示删除栈中的元素(车辆信息) ,即使车辆离开停车场,同时停在便道 上的车辆停入停车场中。当车辆离开时,首先要寻找到要离开车辆的车牌号,若 车是从停车场离开,则在它之后进入的车辆必须先退出(进入临时栈)为它让路, 待该辆车开出大门外,其它车辆再按原次序进入停车场,并将停放在便道上第一 位置的车开进停车场,离开的车辆按其在停车场内停留的时间交费,并把离开车 辆的离开时间作为便道上第一位置的车进入停车场的进入时间和开