1 / 17
文档名称:

停车场管理系统实验报告.doc

格式:doc   大小:390KB   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

停车场管理系统实验报告.doc

上传人:1006108867 2021/2/7 文件大小:390 KB

下载得到文件列表

停车场管理系统实验报告.doc

文档介绍

文档介绍:华北水利水电学院 数据结构 实验报告
2011~2012学年 第 二 学期 2011级 计算机 专业
班级: **** 学号: ***** 姓名: **** -
实验二 栈和队列及其应用
实验目的:
1.掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。
2.掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活运用。
实验容:
1.链栈的建立、入栈、出栈操作。
2.环形队列的建立、入队、出队操作。
3.停车场管理。设停车场只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。
实现提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车离去;则输出汽车在停车场停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表(带头结点)实现。
需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照和进入停车场的时刻。
设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’表示输入结束。
实验要求:
C/ C++完成算法设计和程序设计并上机调试通过。
撰写实验报告,提供实验结果和数据。
写出算法设计小结和心得。
程序源代码:
1.#include<>
#include<>
typedef struct stnode
{
int data;
stnode *next;
}LinkStack;
//创建一个栈头结点,无头结
void InitStack(LinkStack *&ls)
{
ls=NULL;
}
//进栈,相当于头插法
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;
cout<<x<<" ";
free(p);
p=ls;
}
cout<<"出栈成功!!"<<endl;
}
//创建栈
void CreatStack(LinkStack *&ls)
{
InitStack(ls);
int i=1,num;
cout<<"以000表示输入结束!!"<<endl;
while(1)
{
cout<<"请输入第"<<i<<"个元素:";
cin>>num;
if(num==000)
break;
Push(ls,num);
i++;
}
cout<<"进栈成功!!"<<endl;
}
void main()
{
LinkStack *ls,*p;
CreatStack(ls);
Pop(ls);
}
2.#inc