1、目录目录 1 实习目的 2 2 问题描述 2 3 概要设计 3 3.1 整体设计 3 3.2 结构体说明 数据库设计 6 3.3 函数及功能要求 6 3.4 模块调用关系 7 4 详细设计 7 4.1 采用 C 语言定义相关的数据类型:. 7 4.2 写出各模块的伪码算法. 8 5 调试与测试结果分析. 10 5.1 调试分析 . 10 5.2 测试结果 . 11 6 使用说明. 13 七 总结 14 八 参考文献 14 九 附录 14 模拟停车场管理模拟停车场管理 1 实习目的 数据结构课程设计是一项综合性设计活动,要求在教师的指导下,利用本课 程内的以及到目前为止所学到的有关知识和技术解决
2、一些不太复杂但却是综合 性的问题。从规模来说,课程设计是在平时作业的基础上进一步扩大的大作业。 在设计中,要求学生要全面考虑相互联系的各个方面及问题。 通过实习,实现对学生数据结构知识的全面综合训练,加深对数据结构 这一课程所学内容的进一步理解与巩固。加深对结构化设计的理解,能对系统进 行分析,并设计合理的模块化结构,初步具备根据应用需求选择合理数据结构并 进行算法设计的能力,把书上学到的知识用于解决实际问题、培养今后软件开发 工作所需的动手实践能力,包括问题分析、总体结构设计,用户界面的设计、程 序设计时的基本技能和技巧,能运用合理的控制流程编写清晰高效的程序,训练 C 程序调试能力,能将一
3、个中小型各级组织系统联调通过以及一整套软件工作规 范的训练和团体协作精神的培养。 并训练用系统的观点和软件开发一般规范进行 软件开发,培养软件工作者所应具备的科学的工作方法和作风。还可以提升文档 编写作能力。 2 问题描述 设停车场是一个可停放 n 辆车的狭长通道,且只有一个大门可供汽车进出。 在停车场内, 汽车按到达的先后次序, 由北向南依次排列 (假设大门在最南端) 。 若停车场内已停满 n 辆车, 则后来的汽车需在门外的便道上等候, 当有车开走时, 便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆 必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回
4、车 场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不 收费)。 设计要求: 1模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。 2从终端读入汽车到达或离去的数据,每组数据包括三项: (1)是“到达”还是“离开”; (2)汽车牌照号码; (3)“到达”或“离开”的时刻。 3与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停 车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和 应交的费用。 4遇到的难题,当进入 4 辆车,假如需要出车的序列为 2,就必须按照栈 出栈序列出车,先出 4,3,2 然后 3,4 又入桟,这里的程序相对比较
5、麻烦,通过和 组员交流终于做出来了。 3 概要设计 3.1 整体设计 1.功能模块说明: 停车场管理系统含有四个模块, 即: 车辆到达、 车辆离开、 列表显示、退出系统。如图 1。 图 1 停车场系统主流程图 停车场系统 车辆到达 车辆离开 列表显示 退出系统 1 2 3 4 2.主模块的流程及各子模块的主要功能: (1)车辆到达:int Arrival(SeqStackCar *Enter,LinkQueueCar *W)首先 定义一个栈和队列的结构体指针为:*p , *t 。然后申请一个车辆信息的内存 空 间 , 并 把 它 赋 给 栈 指 针 。 车 辆 到 达 时 就 输 入 车 牌
6、号 , 并 通 过 if(Enter-toptop0) 确保栈不空,然后用个 while(1) 确保输入的车辆离开位置的合法 性。 如果不和法, 显示输入有误, 要重新输入。 通过 while(Enter-toproom) 判断离开车辆的位置,如果是中间位置,就要 再用一个栈前面临时开出来的车,等要开出的车开出后,再把临时栈的车看进 车场内, 并要调用 PRINT(p,room); 这个函数计算显示费用。 然后还要用 if(W -head!=W-rear) printf(“n 离开车辆的车牌号为:“); puts(p-num); printf(“n 其到达停车位时间); printf(“n 离开停车位时间为:); A1=p-reach.hour; A2=p-reach.min; B1=p-leave.hour; B2=p-leave.min; printf(“n 应交费用为: %2.1f 元 “,(B1-A1)*60+(B2-A2)*price+PRINTE(p,room); free(p); (2)int Arrival(SeqStackCar