数据结构设计报告停车场管理系统方案.docx

数据结构设计报告停车场管理系统方案.docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
题目 汽车场停车管理系统程序 班级 软件技术2班 姓名 梁瑞瑞 学号 1032104220 停车场管理系统 1问题描述 设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个门可供出入。汽 车在停车场内按车辆到达时间的先后顺序, 依次由北向南排列 (门在最南端, 最 先到达的第一辆车停放在车场的最北端) ,若车场内已停满 n 辆汽车,则后来的 汽车只能在门外的便道上等候, 一旦有车开走, 则排在便道上的第一辆汽车即可 开入;当停车场内某辆车要离开时, 在它之后进入的车辆必须先退出车场为它让 路,待该辆车开出大门外, 其他车辆再按原顺序进入车场, 每辆停放在车场的车 在它离开停车场时必须按它停留的时间长短交纳费用。 2 需求分析 (1)根据车辆到达停车场到车辆离开停车场时所停留的时间进行计时收 费。 (2 )当有车辆从停车场离开时,等待的车辆按顺序进入停车场停放。实现 停车场的调度功能。 (3)用顺序栈来表示停车场,链队表示停车场外的便道。 (4)显示停车场信息和便道信息。 (5)程序执行的命令为:①车辆进入停车场 辺车辆离开停车场 ③显示 停车场的信息。 (以栈S作为停车场,栈S1作为让路的临时停车点,队列Q作为车等待时用的便道。stack[Max+1] 作为车场能够容纳的车辆数, num[10] 作为车所在位置的编号,并且限定车场最多能够容纳 10 辆车 . (2) .用户根据系统所规定并提示的要求输入有关内容,车场所能容纳的车辆数由收费人员来确定, 车辆离开时,车主还可以得到收据,便于收费的管理使用;并且系统程序所提供的一些信息可通 过特殊硬件显示出来,供车主了解信息,准确有效的停车。 (3) .程序应该能够显示当前存车信息以及等待车的信息,便于管理人员对车辆进行管理,并且能 够给等待的车提供一些信息,便于他们能够及时的停车。 (4) .程序执行的命令为:输入进站信息 ->输入出站信息 ->打印收据 (5) .改程序系简单的用于运用栈与队列基本知识的工具,不能用于现实中,特别是栈“先进后出” 的规则大大限定了该程序的推广,现实世界的车站管理系统比这个远远复杂的多 二.概要设计: 设定栈的抽象数据类型定义为: ADT stack{ 数据对象: D={ai|ai € charset,i=1,2, ,n,n>=0} 数据关系: R1={<ai-1,ai>|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 设定队列的抽象数据类型定义为 : 数据对象:D={aja i € Elemset,i=1,2, ,n,n>=0} 数据关系:R1={<a i-i ,a i>|a / a € 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 的对头元素 . EnQueue(&Q,e) 初始条件 :队列 Q 已存在 . 操作结果:插入元素e为Q新的队尾元素. DeQueue(&Q,&e) 初始条件 :Q 为非空队列 . 操作结果:删除Q的队头元素,并用e返回其值. QueueTraverse(Q,visit()) 初始条件 :Q 已存在且非空 . 操作结果 :从队头到队尾 ,依次对 Q 的每一个数据元素调用函数 visit(). 一旦 visit() 失败,则操作失 败. }ADT Queue 本程序包括四个模块 主程序模块 Void main() { 声明定义 调用栈与队列的函数 主信息(输入初始操作信息) } 栈模块--- 实现栈抽象数据类型 队列模块 --

文档评论(0)

乐乐 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档