停车场管理系统实验报告汇总(共15页).doc
《停车场管理系统实验报告汇总(共15页).doc》由会员分享,可在线阅读,更多相关《停车场管理系统实验报告汇总(共15页).doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上华北水利水电学院 数据结构 实验报告20112012学年 第 二 学期 2011级 计算机 专业班级: * 学号: * 姓名: * -实验二 栈和队列及其应用一、 实验目的:1掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。2掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活运用。二、 实验内容:1链栈的建立、入栈、出栈操作。2环形队列的建立、入队、出队操作。3停车场管理。设停车场内只有一个可停放n辆汽车的狭长通
2、道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。实现提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽
3、车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表(带头结点)实现。需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。设n=2,输入数据为:(A,1,5),(A,2,10),(D,1,15),(A,3, 20), (A,4,25),(A,
4、5,30),(D,2,35),(D,4,40),(E,0,0)。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,A表示到达;D表示离去,E表示输入结束。三、 实验要求:1 C/ C+完成算法设计和程序设计并上机调试通过。2 撰写实验报告,提供实验结果和数据。3 写出算法设计小结和心得。四、 程序源代码:1.#include#includetypedef struct stnodeint data;stnode *next;LinkStack;/创建一个栈头结点,无头结void InitStack(LinkStack *&ls)ls=NULL;/进
5、栈,相当于头插法void Push(LinkStack *&ls,int x)LinkStack *p;p=(LinkStack *)malloc(sizeof(LinkStack);p-data=x;p-next=NULL;p-next=ls;ls=p;/出栈void Pop(LinkStack *&ls)if(ls=NULL)return;LinkStack *p;int x;p=ls;while(p)x=p-data;ls=p-next;coutx ;free(p);p=ls;cout出栈成功!endl;/创建栈void CreatStack(LinkStack *&ls)InitSta
6、ck(ls);int i=1,num;cout以000表示输入结束!endl;while(1)cout请输入第inum;if(num=000)break;Push(ls,num);i+;cout进栈成功!endl;void main()LinkStack *ls,*p;CreatStack(ls);Pop(ls);2.#include#define QueueSize 100typedef struct sqqueueint dataQueueSize;int front,rear;SqQueue;/初始化队列void InitQueue(SqQueue &qu)qu.rear=qu.fron
7、t=0;/进队int EnQueue(SqQueue &sq,int x)if(sq.rear+1)%QueueSize=sq.front)return 0;sq.rear=(sq.rear+1)%QueueSize;sq.datasq.rear=x;return 1;/出队void DeQueue(SqQueue &sq)int x;if(sq.front=sq.rear)return;while(sq.front!=sq.rear)sq.front=(sq.front+1)%QueueSize;x=sq.datasq.front;coutx ;cout出队成功!endl;/创建队void
8、CreatQueue(SqQueue &sq)InitQueue(sq);int num,i=1;cout以000表示输入结束!endl;while(1)cout请输入第inum;if(num=000)break;EnQueue(sq,num);i+;cout进队成功!endl;void main()SqQueue sq;CreatQueue(sq);DeQueue(sq);3.#include#include#include#define MAX 2#define price 0.05typedef struct nodeint hour;int min;Time;/时间结点typedef
9、struct Nodechar num10;/车牌号Time reach;/时间Time leave;CarNode;/车辆信息结点typedef struct NODECarNode *stackMAX;int top;CarStack;/顺序栈模拟车站typedef struct QNode/队列CarNode *data;QNode *next;QueueNode;/链队结点类型typedef struct pqrtQueueNode *front,*rear;/设置头指针尾指针LinkQueueCar;/模拟通道/初始化栈void InitStack(CarStack *cs);/初始
10、化队列(便道)int InitQueue(LinkQueueCar *qc);/车辆到达int Arrival(CarStack *Enter,LinkQueueCar *qc);/车辆离开void Leave(CarStack *Enter,CarStack *Temp,LinkQueueCar *qc);/显示车库信息void List(CarStack s,LinkQueueCar w);void main()CarStack Enter,Temp;LinkQueueCar Wait;int ch;InitStack(&Enter);InitStack(&Temp);InitQueue(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 系统 实验 报告 汇总 15
限制150内