[页数]:22 [字数]:4679 [目录] 一、需求分析 二、概要设计 三、详细设计 四、调试分析 五、用户手册 六、测试结果 附录:程序代码 [摘要] 本课程设计主要是研究用栈来代替停车场管理的一个问题,并且还运用了队列的相关知识。我们主要的设计思想如下: 栈代表一个停车场,其是一个一个狭长的通道,而且只有一个大门可以供车辆进出,并且要实现停车场内某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,则需要一个辅助栈来存储离开车信息,待其开出停车场后,这些辆再依原来的次序进场的功能。至于当停车场已满时,需要停放车辆的通道可以用一个链队列来实现。当停车场内开走一辆车时,通道上便有一辆车进入停车场,此时只需要改变通道上车辆结点的连接方式就可以了,使通道上第一辆车进入停车场这个堆栈,并且使通道上原来的第二辆车成为通道上的第一辆车,此时只需将模拟通道的链队列的头结点连到原来的第二辆车上就可以了。 [正文] 一、需求分析 1. 以栈模拟停车场,以对列模拟场外便道,按照从终端读入的数据序列进行模拟管理。但 当一车要离开时,其他在他自前的车需全部离开则就另需开设一个临时栈来存储。 2. 在程序只求在输入测试数据时,能够输出入场汽车的基本位置情况即停车费用。.在输入数据错误时能提示出,使初用者也能很好使用。 3. 测试数据: (A,1,5) , (A,2,10) , (A,3,20) , (D,1,25) , (A,4,30) , (E,0,0)。 二、概要设计 为实现上述程序功能,应用程序需以栈和队列表示。为此需要两个抽象数据类型:停车场栈,便道队列。 1. 停车场栈抽象数据类型定义为: ADT CarStack{ 数据对象:D={ai|∈CarNode,i1,2…n n>0} 数据关系:R1={<ai-1,ai>|ai-1,ai∈D,I=0,1…n } 约定an端为栈顶,a1端为栈底。 基本操作: InitStack(CarStack &S) 操作结果:构造一个空停车场栈。 Push(CarStack &S,CarNode &car) 初始条件:栈S已存在, 操作结果:入栈一个CarNode 节点。 Pop(CarStack &S,CarNode &t) 初始条件:栈S非空 操作结果:弹出栈内元素。 IsStackFull(CarStack &S) 初始条件:栈S非空,若满返回True 操作结果:判断堆栈是否已满。 IsStackEmputy(CarStack &S) ...... [参考文献] 【1】严蔚敏 吴伟民编著《数据结构题集》(C语言版).北京:清华大学出版社. 2007.96_115 【2】严蔚敏 吴伟民编著《数据结构》(c语言版).北京:清华大学出版社. 2008.44—65 [原文截取] 停车场管理 [摘要] 本课程设计主要是研究用栈来代替停车场管理的一个问题,并且还运用了队列的相关知识。我们主要的设计思想如下: 栈代表一个停车场,其是一个一个狭长的通道,而且只有一个大门可以供车辆进出,并且要实现停车场内某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,则需要一个辅助栈来存储离开车信息,待其开出停车场后,这些辆再依原来的次序进场的功能。至于当停车场已满时,需要停放车辆的通道可以用一个链队列来实现。当停车场内开走一辆车时,通道上便有一辆车进入停车场,此时只需要改变通道上车辆结点的连接方式就可以了,使通道上第一辆车进入停车场这个堆栈,并且使通道上原来的第二辆车成为通道上的第一辆车,此时只需将模拟通道的链队列的头结点连到原来的第二辆车上就可以了。 [关键字] 栈 队列 停车场 Parking lot management [ Abstract ] This curriculum project is mainly the research replaces the parking lot management with the stack a questio..... |
数据结构课程设计 停车场管理
查看评论
已有0位网友发表了看法