停车场管理系统实验报告讲解Word文档下载推荐.docx

上传人:b****2 文档编号:14745757 上传时间:2022-10-24 格式:DOCX 页数:19 大小:253.56KB
下载 相关 举报
停车场管理系统实验报告讲解Word文档下载推荐.docx_第1页
第1页 / 共19页
停车场管理系统实验报告讲解Word文档下载推荐.docx_第2页
第2页 / 共19页
停车场管理系统实验报告讲解Word文档下载推荐.docx_第3页
第3页 / 共19页
停车场管理系统实验报告讲解Word文档下载推荐.docx_第4页
第4页 / 共19页
停车场管理系统实验报告讲解Word文档下载推荐.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

停车场管理系统实验报告讲解Word文档下载推荐.docx

《停车场管理系统实验报告讲解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《停车场管理系统实验报告讲解Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。

停车场管理系统实验报告讲解Word文档下载推荐.docx

需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。

输入数据按到达或离去的时刻有序。

栈中每个元素表示一辆汽车,包含两个数据项:

汽车的牌照号码和进入停车场的时刻。

设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’表示输入结束。

三、实验要求:

1.C/C++完成算法设计和程序设计并上机调试通过。

2.撰写实验报告,提供实验结果和数据。

3.写出算法设计小结和心得。

四、程序源代码:

1.#include<

iostream.h>

#include<

stdlib.h>

typedefstructstnode

{

intdata;

stnode*next;

}LinkStack;

//创建一个栈头结点,无头结

voidInitStack(LinkStack*&

ls)

ls=NULL;

}

//进栈,相当于头插法

voidPush(LinkStack*&

ls,intx)

LinkStack*p;

p=(LinkStack*)malloc(sizeof(LinkStack));

p->

data=x;

next=NULL;

next=ls;

ls=p;

//出栈

voidPop(LinkStack*&

if(ls==NULL)

return;

intx;

p=ls;

while(p)

{

x=p->

data;

ls=p->

next;

cout<

<

x<

"

"

;

free(p);

p=ls;

}

cout<

出栈成功!

!

endl;

//创建栈

voidCreatStack(LinkStack*&

InitStack(ls);

inti=1,num;

以000表示输入结束!

while

(1)

请输入第"

i<

个元素:

cin>

>

num;

if(num==000)

break;

Push(ls,num);

i++;

进栈成功!

voidmain()

LinkStack*ls,*p;

CreatStack(ls);

Pop(ls);

2.#include<

#defineQueueSize100

typedefstructsqqueue

intdata[QueueSize];

intfront,rear;

}SqQueue;

//初始化队列

voidInitQueue(SqQueue&

qu)

qu.rear=qu.front=0;

//进队

intEnQueue(SqQueue&

sq,intx)

if((sq.rear+1)%QueueSize==sq.front)

return0;

sq.rear=(sq.rear+1)%QueueSize;

sq.data[sq.rear]=x;

return1;

//出队

voidDeQueue(SqQueue&

sq)

if(sq.front==sq.rear)

while(sq.front!

=sq.rear)

sq.front=(sq.front+1)%QueueSize;

x=sq.data[sq.front];

出队成功!

//创建队

voidCreatQueue(SqQueue&

InitQueue(sq);

intnum,i=1;

以000表示输入结束!

EnQueue(sq,num);

进队成功!

SqQueuesq;

CreatQueue(sq);

DeQueue(sq);

3.#include<

stdio.h>

#defineMAX2

#defineprice0.05

typedefstructnode

inthour;

intmin;

}Time;

//时间结点

typedefstructNode

charnum[10];

//车牌号

Timereach;

//时间

Timeleave;

}CarNode;

//车辆信息结点

typedefstructNODE

CarNode*stack[MAX];

inttop;

}CarStack;

//顺序栈模拟车站

typedefstructQNode//队列

CarNode*data;

QNode*next;

}QueueNode;

//链队结点类型

typedefstructpqrt

QueueNode*front,*rear;

//设置头指针尾指针

}LinkQueueCar;

//模拟通道

//初始化栈

voidInitStack(CarStack*cs);

//初始化队列(便道)

intInitQueue(LinkQueueCar*qc);

//车辆到达

intArrival(CarStack*Enter,LinkQueueCar*qc);

//车辆离开

voidLeave(CarStack*Enter,CarStack*Temp,LinkQueueCar*qc);

//显示车库信息

voidList(CarStacks,LinkQueueCarw);

CarStackEnter,Temp;

LinkQueueCarWait;

intch;

InitStack(&

Enter);

Temp);

InitQueue(&

Wait);

欢迎光临"

-----------------------"

1.车辆到达"

2.车辆离开"

3.车场显示"

4.退出程序"

请选择所需的服务!

while

(1)

{

cin>

ch;

if(ch>

=1&

&

ch<

=4)

break;

}

switch(ch)

case1:

Arrival(&

Enter,&

case2:

Leave(&

Temp,&

case3:

List(Enter,Wait);

case4:

exit(0);

default:

break;

voidInitStack(CarStack*cs)

cs->

top=-1;

for(inti=0;

MAX;

i++)

cs->

stack[cs->

top]=NULL;

intInitQueue(LinkQueueCar*qc)//初始化队列

//qc=(LinkQueueCar*)malloc(sizeof(LinkQueueCar));

这句话不能要?

?

qc->

front=(QueueNode*)malloc(sizeof(QueueNode));

if(qc->

front!

=NULL)

qc->

front->

//带头结点的

rear=qc->

front;

//一定要注意赋值顺序不能反了!

return1;

else

return-1;

//打印车站车离开的信息

voidPrint(CarNode*p,introom)

intA1,A2,B1,B2;

//车辆收费

请输入离开时间:

/**:

**/"

请输入离开时间的时(0-23):

cin>

p->

leave.hour;

while(p->

leave.hour<

reach.hour||p->

leave.hour>

23)

error!

leave.h

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1