1、 计算机科学与技术系 课程设计报告 20122013 学年第 1 学期 课程课程 C 语言课程设计 课 程 设 计 名 称课 程 设 计 名 称 停车场管理系统 学生姓名学生姓名 * 学号学号 * 专业班级专业班级 * 指导教师指导教师 * 2013 年 1 月 - 1 - 目录 一、题目及要求 - 2 - 运用到的知识点: - 2 - 二、 需求分析 - 3 - 三、课程设计目的 - 3 - 四、算法设计 . - 3 - 程序框图: - 3 - 算法的设计思想 - 5 - 模块作用: - 5 - 五、用户手册 . - 9 - 六、测试 . - 10 - 七、总结 . - 13 - 八、参考资
2、料 . - 14 - 九、源程序 . - 14 - - 2 - 一、一、题目及要求题目及要求 题目:题目: 停车场是一个可停放 n 辆车的狭长通道,且只有一个大门可供车辆进出。在停车 场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场 内已停满 n 辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第 一辆车即可进入。当停车场内某辆车要离开时,在它之后的进入的车辆必须先退出停 车场为它让路,待该车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车 场时,应按其停留时间的长短交费(在便道上的时间不算) 要求:要求: 1、界面友好,函数功能能要划分好 2、总
3、体设计应画一流程图 3、程序要加必要的注释 4、要提供程序测试方案 提示:提示: 模拟上述管理过程, (建议以顺序栈模拟停车场,链队列模拟便道) 从终端读入汽车到达或离开的数据,每组数据包括三项: (1)到达还是离开 (2)汽车牌号 (3)到达或离开的时刻 与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或 便道上的位置;如果是离开的车辆,则输出其在停车场中停留的时间和应交的费用。 运用到的知识点:运用到的知识点: 面向过程程序设计方法 界面制作,switch 的应用。 数组或链表的实现与应用。 其他 - 3 - 二、二、需求分析需求分析 由于停车场是一个狭窄通道, 而且只
4、有一个大门可供汽车进出, 问题要求汽车在停车场内按车辆到 达时间的先后顺序,依次由北向南排列。由此很容易联想到用栈来存储车库信息。又每个汽车的车牌号 都不一样,这样一来就可以根据车牌号准确找到汽车位置。当停车场内某辆车要离开时,在他之后进入 的汽车必须再按原次序进入车库。 这是一个一退一进的过程, 而且让道的汽车必须保持原有的先后顺序, 因此可再设计一个栈,用来暂时存放为出站汽车暂时让道的汽车车牌号。当车库满后,继续进来的汽车 需要停放在车库旁边的便道上等候,若车库满后,继续进来的汽车需要停放在车库旁边的便道上等候, 若车有汽车开走,这完全是一个先进先出模型,因此可以设计一个队列来模拟便道,队
5、列中的数据元素 仍然设计成汽车的车牌号。另外,停车场是根据汽车在停车场内停放的总长来收费的,在便道上的时间 不计费,因此必须记录车辆进入车库时的时间,车辆离开车库时的时间不需要记录,当从终端输入时可 直接使用。 三、三、课程设计目的课程设计目的 将理论教学中涉及到的知识点贯穿起来, 对不同的数据类型、 程序控制结构、 数据结构作一比较和总结, 结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的 能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程C 语言教程的基本理论知识,理论联系 实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核
6、学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素 质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用 C 语言编写调试应用系统程序, 训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。 (6)熟练掌握 C 语言的基本语法,灵活运用各种数据类型。 (7)进一步掌握在集成环境下如何调试程序 四、算法设计四、算法设计 程序框图:程序框图: - 4 - 停车场 是否满 未满 无 有 以堆栈来模拟停车场和以堆栈里的数据 元素设计成汽车的车牌号 初始化车站, 初始化让路的临时 栈, 初始化通道 车场未满,车进车场 输入车子到达时间,车牌号 车进入车场 判断车场内 是否有车 不做任何计算 输入离开车辆的离开时间, 进行停车费用的计算 此车后面的车辆退出并进 入临时栈 车子离开 车辆到达 车场已满,车进便道 - 5 - 算法的设计思想算法的设计思想 由于停车场