数据结构课程设计报告 题目 停车场管理系统 班级 0411005 姓名 丁磊 学号 2010211925 停车场管理系统 题目:编制一个停车场的管理程序。 一. 需求分析: (1).以栈 S作为停车场,栈 S1作为让路的临时停车点,队列 Q作为车等待时用的便道。stack[Max+1]作为车场能够容纳的车辆数,num[10]作为车所在位置的编号,并且限定车场最多能够容纳 10辆车. (2).用户根据系统所规定并提示的要求输入有关内容,车场所能容纳的车辆数由收费人员来确定,车辆离开时,车主还可以得到收据,便于收费的管理使用;并且系统程序所提供的一些信息可通过特殊硬件显示出来,供车主了解信息,准确有效的停车。 (3).程序应该能够显示当前存车信息以及等待车的信息,便于管理人员对车辆进行管理,并且能够给等待的车提供一些信息,便于他们能够及时的停车。 (4).程序执行的命令为:输入进站信息->输入出站信息->打印收据 (5).改程序系简单的用于运用栈与队列基本知识的工具,不能用于现实中,特别是栈“先进后出”的规则大大限定了该程序的推广,现实世界的车站管理系统比这个远远复杂的多。 二.概要设计: 1.设定栈的抽象数据类型定义为: ADT stack{ 数据对象:D={ai|ai∈charset,i=1,2,„„,n,n>=0} 数据关系:R1={
|ai-1,ai∈D,i=2„„,n} 基本操作: InitStack(&S) 操作结果:构造一个空栈S。 Push(&S,e) 初始条件:栈S已经存在。 操作结果:在栈S的栈顶插入新的栈顶元素e。 Pop(&S,&e) 初始条件:栈S已经存在。 操作结果:删除S的栈顶元素,并以e返回其值。 StackTraverse(S,visit()) 初始条件:栈S已经存在。 操作结果:从栈底到栈顶依次对S中的每一个元素调用函数visit(). }ADT stack 2. 设定队列的抽象数据类型定义为: 数据对象:D={ai|ai∈Elemset,i=1,2,„„,n,n>=0} 数据关系:R1={|ai-1,ai∈D,i=2„„,n} 约定其中ai为队列头,an为队列尾. 基本操作: InitQueue(&Q) 操作结果:构造一个空队列Q. DestroyQueue(&Q) 初始条件:队列Q已存在. 操作结果:队列Q被销毁,不再存在. ClearQueue(&Q) 初始条件:队列Q已存在. 操作结果:将 Q清为空队列. QueueEmpty(Q) 初始条件:队列Q已存在. 操作结果:若 Q为空队列,则返回True,否则返回False. QueueLength(Q) 初始条件:队列Q已经存在. 操作结果:返回Q的元素个数,即队列的长度. GetHead(Q,&e) 初始条件:Q为非空队列. 操作结果:用e返回Q的对...