数据结构 停车场管理.doc





《数据结构 停车场管理.doc》由会员分享,可在线阅读,更多相关《数据结构 停车场管理.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构 停车场管理数据结构停车场管理2008-12-26 17:16需求分析本次数据结构课程设计的具体内容是停车场管理系统,该系统用栈结构模拟停车场,限定停车场的容量为n,用队列结构模拟等待的便道,空间不限制。车辆的信息包括:车牌号、汽车到达/离去标志、到达/离去时刻等。按照从终端读入的数据序列进行模拟管理。每辆车需要三个数据,其中车辆数据为:A表示到达,D表示离去,E表示程序结束。车辆牌照为整型数据。进场或离场时间同样为整型数据。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上
2、停留的时间不收费)。停车场管理系统主要实现以下几个功能:(1)根据车辆到达停车场到车辆离开停车场时所停留的时间进行计时收费。(2)该程序设计能够通过车牌号能查到该车辆在停车场或便道中的位置。(3)当有车辆从停车场离开时,等待的车辆按顺序进入停车场停放。实现停车场的调度功能。该程序设计可以完整的模拟停车场的管理过程。概要设计1)为了实现上述程序功能,需要定义结构体数组和链表的抽象数据类型:ADT stack数据对象:D=ai|aicharset,i=1,2,n,n0数据关系:R1=|ai-1,aiD,i=2,n基本操作:initstack(&S,n)操作结果:构造一个空栈S,该栈可存放n个元素。
3、push(&S,e)初始条件:栈S已存在。操作结果:在栈S的栈顶插入新的栈顶元素e。pop(&S,&e)初始条件:栈S已存在。操作结果:删除S的栈顶元素,并以e返回其值。DestroyStack(&S)初始条件:栈S已存在。操作结果:销毁栈S。ClearStack(&S)初始条件:栈S已存在。操作结果:将S清为空栈。StackLength(&S)初始条件:栈S已存在。操作结果:返回栈S的长度。StackEmpty(&S)初始条件:栈S已存在。操作结果:若S为空栈,则返回TRUE,否则返回FALSE。GetTop(S,&e)初始条件:栈S已存在。操作结果:若栈S不空,则以e返回栈顶元素。Stac
4、kTraverse(S,visit()初始条件:栈S已存在。操作结果:从栈底到栈顶依次对S中的每个元素调用函数visit()。ADT stack 1.2设定队列的抽象数据类型定义为:ADT Queue数据对象:D=ai|aiElemSet,i=1,2,n,n0数据关系:R1=|ai-1,aiD,i=2,n基本操作:InitQueue(&Q)操作结果:构造一个空队列Q。DestroyQueue(&Q)初始条件:队列Q已存在。操作结果:队列Q被销毁,不再存在。ClearQueue(&Q)初始条件:队列Q已存在。操作结果:将Q清为空队列。QueueEmpty(&Q)初始条件:队列Q已存在。操作结果:
5、若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 Q
6、ueue 2)本程序图示结构(保密)详细设计1.车辆信息类型typedef struct nodeint passport;/存储车辆牌照信息int time;/存储进场时间信息node;2.栈类型(停车场)typedef struct stacknode*base;node*top;int stacksize;stack;void initstack(stack&S,int n)/构造空栈S.base=(node*)malloc(n*sizeof(node);S.top=S.base;S.stacksize=n;void push(stack&S,node e)/入栈函数if(S.top-S
7、.base)=S.stacksize)EnQueue(Q,e);/如果栈满,调用入队函数elseS.top-passport=e.passport;S.top-time=e.time;S.top+;int pop(stack&S,node&e)/出栈函数if(S.top=S.base)return ERROR;/如果栈空,返回ERROR-S.top;e.passport=S.top-passport;e.time=S.top-time;return OK;3.队列类型(便道)typedef struct Qnodenode Qdata;struct Qnode*next;Qnode;typed
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 停车场管理 停车场 管理

限制150内