停车场管理设计.docVIP

  • 16
  • 0
  • 约1.51万字
  • 约 19页
  • 2019-05-09 发布于江西
  • 举报
PAGE 安徽建筑工业学院 课 程 设 计 报 告 课程名称: 数据结构与算法课程设计 题 目: 停车场管理 院 系: 数理系 专 业: 信息与计算数学 班 级: 07信息 2 班 学 号: 07207010223 姓 名: 赵双祥 时 间: 数据结构课程设计报告——停车场管理 PAGE 2 目 录 TOC \o 1-2 \u 一 、需求分析 PAGEREF _Toc249119508 \h 2 1. 问题描述: PAGEREF _Toc249119509 \h 2 2. 基本要求 PAGEREF _Toc249119510 \h 2 二、 概要设计 PAGEREF _Toc249119511 \h 2 1. 数据结构 PAGEREF _Toc249119512 \h 2 2. 程序模块 PAGEREF _Toc249119513 \h 2 3. 算法设计 6 三、详细设计 8 1. 数据类型定义 8 2. 函数实现代码 8 3. 函数之间的调用关系 9 四、调试分析 9 五、用户手册 9 六、测试结果 10 七、参考文献 12 八、附录 12 停车场管理题目: 使用栈和队列相关知识设计一个停车场管理系统。 一 、需求分析 1. 问题描述: 停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序依次排列。若场内已停满n辆车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须退出车场为它让路,待该车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开车场时必须按它停留的时间长短交纳费用,车停在便道上不收费。试为停车场编制按上述要求进行管理的模拟程序。 2. 基本要求 (1) 以栈模拟停车场,以队列模拟场外的车道,按照从终端读入的输入数据序列进行模拟管理。 (2) 每一组输入数据包括三个数据项:汽车到达或离去的信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若车辆到达,则输出汽车在停车场的内或便道上的位置,若车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用。 (3) 测试数据:设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。其中‘A’表示到达,‘D’表示离开,‘E’表示输入结束。 二、 概要设计 1. 数据结构 栈(stack)是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有特殊含义,称为栈顶(top),相应的,表头端称为栈底(bottom)。不含元素的空表称为空栈。 队列(queue)是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端删除元素。 停车场主要处理车辆进站和出站的操作。由于车场是一个很窄的、一边开口的车道,先进后出,类似数据结构中的栈结构,故车场用栈这种数据结构来描述。外面的狭长的通道,先进后出,故可用队列结构来描述。还设置了一个临时栈存放车辆出站时其他车辆。防止出现假上溢现象,采用循环队列。 2. 程序模块 栈的顺序存储表示 #define StackSize 100 //假定预分配的栈空间最多为100个元素 ? typedef char DataType;//假定栈元素的数据类型为字符 ? typedef struct{ ????? DataType data[StackSize]; ????? int top; ???? }SeqStack; 基本操作的算法描述 (1)初始化栈 void InitStack(SeqStackCar *s) { int i; s-top=0; for(i=0;i=n;i++) s-stack[s-top]=NULL; } (2)初始化便道 int InitQueue

文档评论(0)

1亿VIP精品文档

相关文档