题目:停车场管理系统一、需求分析 (1) 用一个栈作为停车场,另一个栈作为让路的临时停车点,队列作为停车场满时用的便道,用 SIZE 作为停车场的位置数。(2) 用户根据系统所规定并提示的要求输入有关容,车场所能容纳的车辆数由收费人员来确定,车辆进入时,可以得到车牌号和开始时间,车辆离开时,还可以显示出停车费和停车场中剩余的车辆数,便于管理人员对停车场进行有效地管理。(3) 当停车场中的车离开时,便道上车会进入停车场,并开始计时。(4) 该程序实现的功能:a、停车时输入车辆的车牌号和停车时间,然后程序显示所停的车道号;b、车辆离开时,对该车显示出停车费和停车场中剩余的车辆数,若便道上有车,则将其进入停车场,并开始计时。二、概要设计1、设定栈的抽象数据类型定义为:ADT Stack{数据对象:D={ai|ai∈CarNode,i=1,2,……,n,n>=0}数据关系:R={
|ai-1,ai∈D,i=2……,n}基本操作:InitStack( &P) 操作结果:构造一个空栈 P。Push( &P, e) 初始条件:栈 P 已经存在操作结果:在栈的栈顶插入新的栈顶元素 e。Pop( &P,Car&e)初始条件:栈 P 已经存在操作结果:删除 P 的栈顶元素,并以 e 返回其值。} ADT Stack;2、设定队列的抽象数据类型定义为:ADT Queue{数据对象:D={ai|ai∈Shortcut, i=1,2,……,n,n>=0}数据关系:R={|ai-1,ai∈D,i=2……,n}基本操作:InitQueue(&S)操作结果:构造一个空队列 SEnQueue( &S, *number,ar_time) 初始条件:队列 S 已经存在操作结果:插入元素 e 为 S 新的队尾元素DeQueue( &S, &w) 初始条件:队列 S 已经存在操作结果:删除队列的队头元素 w} ADT Queue;3.本程序包括四个模块1)主程序模块Void main(){声明定义调用栈与队列的函数主信息(输入初始操作信息)}2)栈模块---实现栈抽象数据类型3)队列模块---实现队列抽象数据类型4)结构体模块---用于对对象与变量的管理各模块之间的调用关系如下: 主程序模块↓ 结构体模块↓ 栈模块↓ 队列模块 4.设计停车管理程序的要求根据从终端读入的输入数据进行模拟管理,每一组输入数据包括三个数据项:汽车“进站”或“出站”信息、汽车牌照以与进站或出站的时刻,对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场逗留的时间和应交纳的费用(在便道上停留不收费),按以顺序结构实现,队列以链...