数据结构课程设计停车场管理系统设计报告

上传人:第** 文档编号:31012754 上传时间:2018-02-03 格式:DOC 页数:14 大小:85.50KB
返回 下载 相关 举报
数据结构课程设计停车场管理系统设计报告_第1页
第1页 / 共14页
数据结构课程设计停车场管理系统设计报告_第2页
第2页 / 共14页
数据结构课程设计停车场管理系统设计报告_第3页
第3页 / 共14页
数据结构课程设计停车场管理系统设计报告_第4页
第4页 / 共14页
数据结构课程设计停车场管理系统设计报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《数据结构课程设计停车场管理系统设计报告》由会员分享,可在线阅读,更多相关《数据结构课程设计停车场管理系统设计报告(14页珍藏版)》请在金锄头文库上搜索。

1、 int main()Initialization();CarNode car;SqStack Park,TempPark;LinkQueue Q;InitStack(Park);InitStack(TempPark);InitQueue(Q);while(scanf(%c%d%d,&car.event,&car.num,&car.time)&(car.event!=e&car.event!=E)getchar(); /除去输入结束时的回车switch(car.event)case A:case a:Arrive(Park,Q,car);break;case D:case d:Leave(Pa

2、rk,TempPark,Q,car);break;default: printf(您的第一个数据输入有误!n);break;printf(程序结束,谢谢使用!n);return 0;2)分别构造空栈和空队列栈:Status InitStack(SqStack &S) /构造一个空栈S.Stacksize=0;S.base=(CarNode*)malloc(MAX)*sizeof(CarNode);if(!S.base)exit(OVERFLOW); printf(存储空间分配失败);S.top=S.base;return OK;队列:Status InitQueue(LinkQueue &Q)

3、 /构造一个空队列(带头结点)Q.front=Q.rear=(QueueNode*)malloc(sizeof(QueueNode);if(!Q.front)exit(OVERFLOW);printf(存储空间分配失败);Q.front-next=NULL;Q.queuesize=0;return OK;3)车辆到达处理Status Arrive(SqStack &S,LinkQueue &Q,CarNode &e) /车辆到达处理if(S.top-1)-timenum) /车辆处在栈顶Pop(S, a);leatime=e.time;leanum=e.num; entertime=a.tim

4、e;printf(车辆进入车库时间:%dt 现在(离开)时间 :%dt 停留时间:%dtn,entertime,leatime,leatime-entertime);else /车辆处在栈中间doPop(S,a); /从栈中依次退出Push(TempS,a); /依次进入临时栈while(S.top-1)-num!=e.num);/直到 top 指针下一个位置的 num=车牌号Pop(S, a); /该车离开leatime=e.time;leanum=e.num;entertime=a.time;printf(车进入停车场时间:%dt 现在(离开)时间 :%dt 停留时间:%dtn,enter

5、time,leatime,leatime-entertime);do /其余车辆按原来次序返回停车场Pop(TempS,a);Push(S,a);while(TempS.top!=TempS.base);/条件与上面不同,此时是全部回去cost=(leatime-entertime)*price;if(cost=0)printf(您的车牌号为 %d 的车应交纳的费用是:%dn,leanum,cost);if(Q.front!=Q.rear) /队列不空的话从便道进停车场DeQueue(Q,a);if(a.timenext-data.num!=e.num);DeQueue(Q,e); /前面的车

6、进入队尾printf(您的车牌号为 %d 的车辆未进入车库从便道直接离开,费用为0!n,e.num);return true;2主要设计程序如下:#include#include#include#define MAX 2 /停车场容量#define price 2 /单价#define OK 1#define FALSE 0#define TRUE 1#define ERROR -1#define OVERFLOW -2typedef int Status;/=typedef struct CarNodechar event;int num;int time;CarNode; /车辆信息结点t

7、ypedef struct SqStackCarNode *base;CarNode *top;int Stacksize;SqStack; /栈(停车场)typedef struct QNodeCarNode data;struct QNode *next;QueueNode; /便道结点typedef struct LinkQueueQueueNode *front;QueueNode *rear;int queuesize;LinkQueue; /队列(便道)/=Status InitStack(SqStack &S) /构造一个空栈S.Stacksize=0; S.base=(CarN

8、ode*)malloc(MAX)*sizeof(CarNode);if(!S.base)exit(OVERFLOW);printf(存储空间分配失败);S.top=S.base;return OK;/=Status InitQueue(LinkQueue &Q) /构造一个空队列(带头结点)Q.front=Q.rear=(QueueNode*)malloc(sizeof(QueueNode);if(!Q.front)exit(OVERFLOW);printf(存储空间分配失败);Q.front-next=NULL;Q.queuesize=0;return OK;/=Status GetTop(

9、SqStack S,CarNode &e) /返回栈顶元素if(S.top=S.base)return ERROR;e=*(S.top-1);return TRUE;/=Status Pop(SqStack &S,CarNode &e) /删除栈顶元素if(S.top=S.base)return ERROR;e=*-S.top;return OK;/=Status Push(SqStack &S,CarNode e)/插入元素为新的栈顶元素(在栈不满的前提下)if(S.top-S.base=MAX)return FALSE;*S.top+=e;return OK;/=Status DeQueu

10、e(LinkQueue &Q,CarNode &e) /删除队头元素(带头结点)if(Q.rear=Q.front)return ERROR;QueueNode *p=Q.front-next;e=p-data;Q.front-next=p-next;if(p=Q.rear)Q.rear=Q.front;free(p);Q.queuesize-;return OK;/=Status EnQueue(LinkQueue &Q,CarNode e) /插入新的队尾元素QueueNode *p=(QueueNode*)malloc(sizeof(QueueNode);if(!p)exit(OVERF

11、LOW);p-data=e;p-next=NULL;Q.rear-next=p;Q.rear=p;Q.queuesize+;return OK;/=Status Check_Stack(SqStack &S,CarNode e)/车辆到达时车库内是否有同名车CarNode *Temp=S.base;while(Temp!=(S.top)&(Temp-num!=e.num)Temp+;if(Temp=S.top)return FALSE;elsereturn TRUE;/=Status Check_Queue(LinkQueue &Q,CarNode e)/车辆到达时便道上是否有同名车Queue

12、Node *Temp=Q.front;while(Temp!=Q.rear) & (Temp-data.num!=e.num)Temp=Temp-next;if(Temp=Q.rear) & (Temp-data.num!=e.num)return FALSE; elsereturn TRUE;/=Status Arrive(SqStack &S,LinkQueue &Q,CarNode &e) /车辆到达处理if(S.top-1)-timenum) /车辆处在栈顶Pop(S, a);leatime=e.time;leanum=e.num;entertime=a.time;printf(车辆进入车库时间:%dt 现在(离开)时间 :%dt 停留时间:%dtn,entertime

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号