数据结构--停车场管理-完整版-实习报告(共10页).doc
《数据结构--停车场管理-完整版-实习报告(共10页).doc》由会员分享,可在线阅读,更多相关《数据结构--停车场管理-完整版-实习报告(共10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 实习报告题目:停车场管理一 需求分析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
2、表示离去,E表示输入结束。5. 程序执行的命令为:1. 创建栈和队列。 2.对车辆的行为进行相应的处理。 3.输出车辆的信息。二 概要设计1. 设定栈的抽象数据类型定义:ADT Stack 数据对象:D=ai|ai属于Elem,i=1,2,n, n=0 数据关系:R1=| ai-1,ai属于D,i=2,,n 基本操作: initStack(&S) 操作结果:构造一个空栈S. pop(&S,&e) 初始条件:栈S已存在。 操作结果:删除S的栈顶元素,并以e返回其值。 push(&S,&e ) 初始条件:栈S已存在。 操作结果:在栈S的栈顶插入新的栈顶元素e。 lengthstack(S) 初始条
3、件:栈S已存在。 操作结果:返回S中的元素个数,即栈的长度。ADT Stack;2. 设定队列的抽象数据类型定义:ADT Queue 数据对象:D=ai| ai属于Elem, i=1,2,,n, n=0 数据关系:R1=| ai-1,ai 属于D,i=2,n 基本操作: initqueue(&Q) 操作结果:构造一个空队列Q. enqueue(&Q, e) 初始条件:队列Q已存在。操作结果:插入元素e为Q的新的队尾元素。 dequeue(&Q, &e)初始条件:Q为非空队列。操作结果:删除Q的对头元素,并用e返回其值。 Lengthqueue(Q) 初始条件:队列Q已存在。操作结果:返回Q的元
4、素个数,即队列的长度。ADT Queue3. 本程序主要包括三个模块1. 主程序模块;int main() 初始化; do接受命令;处理命令; while(命令!=退出);2. 处理车辆到达模块;3. 处理车辆离开模块;各模块之间的调用关系如下: 处理车辆到达模块主程序模块处理车辆离开模块三 详细设计 设计程序如下:#include#define n 2 /将停车场的容量设为2;#define cost 10/将单位时间的停车费设为10,车道里不收费; #define OVERFLOW -2 #define ERROR 0/分配栈的存储空间失败;using namespace std;type
5、def struct Elem/定义元素数据结构类型 int carnum; int time;Elem;typedef struct QNode/队列 struct QNode *next; Elem Qelem;QNode,*QueuePtr;typedef struct QueuePtr front;/队头指针 QueuePtr rear;/队尾指针LinkQueue;void initqueue(LinkQueue &Q)/构造一个空队列 Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode); if(!Q.front)exit(OVERFLOW);
6、 Q.front-next=Q.rear-next=NULL;void enqueue(LinkQueue &Q,int carnum,int time)/入队操作 QueuePtr p=(QueuePtr)malloc(sizeof(QNode); p-Qelem.carnum=carnum; p-Qelem.time=time; p-next=NULL; Q.rear-next=p; Q.rear=p;int lengthqueue(LinkQueue Q)int i=0;QueuePtr p;p=Q.front-next;while(p!=Q.rear)i+;p=p-next;i+;re
7、turn i;void dequeue(LinkQueue &Q,Elem &e)/从对头离队操作,并返回其值 QueuePtr p=(QueuePtr)malloc(sizeof(QNode); if(Q.front=Q.rear) cout车道中没有车辆!next; e=p-Qelem; Q.front-next=p-next; if(Q.rear=p) Q.rear=Q.front; free(p); typedef structElem *base;Elem *top;int stacksize;Sqstack;void initStack(Sqstack &S)/创建一个空栈S.ba
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 停车场 管理 完整版 实习 报告 10
限制150内