实习报告题目:停车场管理一. 需求分析 1. 用栈来表示停车场,用队列来表示停车道。 2. 用户需输入车辆的必要信息, 如车辆的到达或离开, 汽车牌号以及到达或离去的时刻。停车场的容量及单位时间的停车费由编程序者自行设置,结构需输出车辆停车所需缴纳的费用。 3. 本程序要求对车辆的动态能够输出具体的信息内容,包括停车或离开的时间,位置, 及所需缴纳的停车费。 4. 测试数据为: N =2 ,输入数据为:(’A’,1,5 ) ,(‘A’,2.,10), (‘D’,1,15), (‘A’,3,20), (‘A’,4,25), (‘A’,5,30), (‘D’,2,35), (‘D’,4,40), (‘E’,0 ,0). 其中: ’A’表示到达, ’D’表示离去, ’E’表示输入结束。 5. 程序执行的命令为: 1. 创建栈和队列。 2. 对车辆的行为进行相应的处理。 3. 输出车辆的信息。二. 概要设计 1. 设定栈的抽象数据类型定义: ADT Stack{ 数据对象: D={ai|ai 属于 Elem,i=1,2 ……,n, n>=0} 数据关系: R1={<ai-1, ai>| ai-1,ai 属于 D, i=2, ……, n} 基本操作: InitStack(&S) 操作结果:构造一个空栈 S. pop(&S,&e) 初始条件:栈 S 已存在。操作结果:删除 S 的栈顶元素,并以 e 返回其值。 push(&S,&e ) 初始条件:栈 S 已存在。操作结果:在栈 S 的栈顶插入新的栈顶元素 e。 EmptyStack(S) 初始条件:栈 S 已存在。操作结果:若栈为空,则返回 TRUE ,否则,返回 FALSE }ADT Stack; 2. 设定队列的抽象数据类型定义: ADT Queue{ 数据对象: D={ai| ai 属于 Elem, i=1,2, ……, n, n>=0} 数据关系: R1={<ai-1 ,ai>| ai-1,ai 属于 D, i=2, ……,n} 基本操作: InitQueue(&Q) 操作结果:构造一个空队列 Q. Append(&Q, e) 初始条件:队列 Q 已存在。操作结果:插入元素 e为Q 的新的队尾元素。 Remove(&Q, &e) 初始条件: Q 为非空队列。操作结果:删除 Q 的对头元素,并用 e 返回其值。 EmptyQueue(Q) 初始条件:队列 Q 已存在。操作结果:若队列为空,则返回 TRUE ,否则,返回 FALSE }ADT Queue 3. 本程序主要包括三个模块 1. 主程序模块; int main() { 初始化; do{ 接受命令; 处理命令; }while( 命令! = 退出); } 2. 处理车辆到达模块; 3. 处理车辆离开模块; 各模块之间的调用关系如下: 处理车辆到达模块?主程序模块?处理车辆离开模块三. 详细设计设计程序如下: 1. 栈的头文件#ifndef _SQSTACK_H_ #define _SQSTACK_H_ struct Car { int plate, arrive_t; }; class SqStack { public: int top; Car *base; int size; void InitStack(int m=100); bool Empt
数据结构-停车场管理-实习报告 来自淘豆网m.daumloan.com转载请标明出处.