教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

数据结构 停车场管理报告

来源:网络收集 时间:2025-09-15
导读: 实验二:停车场管理(栈和队列应用) 班级 学号 姓名 一、实验目的 1 掌握队列和栈顺序存储结构和链式存储结构,以便在实际背景下灵活运用。 2 掌握栈和队列的特点,即先进后出与先进先出的原则。 3 掌握栈和队列的基本运算。 二、实验内容 1 问题描述 设有

实验二:停车场管理(栈和队列应用)

班级 学号 姓名 一、实验目的

1 掌握队列和栈顺序存储结构和链式存储结构,以便在实际背景下灵活运用。

2 掌握栈和队列的特点,即先进后出与先进先出的原则。

3 掌握栈和队列的基本运算。

二、实验内容

1 问题描述

设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚,依次从停车场最里面向大门口处停放。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短来交费。如果停留在便道上的车未进入停车场就要离去,允许其离开,不收停车费,并且仍然保持在便道上等待的车辆次序。编制一个程序模拟该停车场的管理。

2 实现要求

要求程序输出每辆车到达后的停车位置(停车场或便道),以及某辆车离开停车场时应该交纳的费用和它在停车场内停留的时间。

3 实现提示

汽车的模拟输入信息格式可以为:(到达/离开,汽车牌照号码,到达/离开的时间)。用栈和队列来模拟停车场和便道。

三、实验结果:

头文件

#define MAXSIZE 3

#define price 0.4

typedef struct time {

int hour;

int min;

}Time;

typedef struct car {

char num[10];

Time reach;

Time leave;

}CarNode;

typedef struct SNode {

CarNode *data1[MAXSIZE+1];

int top;

}SeqStackCar;

typedef struct QNode {

CarNode *data2;

struct QNode *next;

}QueueNode;

typedef struct LQNode {

QueueNode *front;

QueueNode *rear;

}LinkQueueCar;

void InitStack(SeqStackCar *s);

int InitQueue(LinkQueueCar *Q);

void Display(CarNode *p,int place);

int Arrival(SeqStackCar *s,LinkQueueCar *LQ);

void Leave1(SeqStackCar *s1,SeqStackCar *s2,LinkQueueCar *LQ);

void Leave2(LinkQueueCar *LQ);

void List1(SeqStackCar *s);

void List2(LinkQueueCar *LQ);

源文件

#include "car.h"

#include<iostream>

using namespace std;

int i=0;

void InitStack(SeqStackCar *s)

{

int i;

s->top=0;

for(i=0;i<=MAXSIZE;i++)

s->data1[s->top]=NULL;

}

int InitQueue(LinkQueueCar *Q)

{

Q->front=new QueueNode;

if(Q->front!=NULL)

{ Q->front->next=NULL;

Q->rear=Q->front;

return 1;

}

else

return 0;

}

void Display(CarNode *p,int place)

{

int A1,A2,B1,B2,time;

cout<<"请输入离开的时间:";

cin>>p->leave.hour;cin>>p->leave.min;

while(p->leave.hour<p->reach.hour||p->leave.hour>23)

{

cout<<"error!"<<endl;

cout<<"请输入离开的时间:";

cin>>p->leave.hour;cin>>p->leave.min;

}

cout<<endl;

cout<<"离开车辆的车牌号为:";cout<<p->num<<endl;

cout<<"其到达时间为: "<<p->reach.hour<<":"<<p->reach.min<<endl;

cout<<"其离开时间为: "<<p->leave.hour<<":"<<p->leave.min<<endl;

A1=p->reach.hour;

A2=p->reach.min;

B1=p->leave.hour;

B2=p->leave.min; time=(B1-A1)*60+(B2-A2); cout<<"该车停在停车场中的时间:"<<time<<"分钟!"<<endl; cout<<"应交费用为: "<<time*price<<"元!"<<endl;

cout<<endl;

}

int Arrival(SeqStackCar *s,LinkQueueCar *LQ)

{

CarNode *p;

QueueNode *t;

p=new CarNode;

cout<<"请输入车牌号(例:A1234):";cin>>p->num;

if(s->top<MAXSIZE)

{

s->top++;

cout<<"车辆在车场第"<<s->top <<"位置!"<<endl;

cout<<"请输入到达时间:";

cin>>p->reach.hour;cin>>p->reach.min;

while(p->reach.hour<0||p->reach.hour>23||p->reach.min<0||p->reach.min>59) {

cout<<"error!"<<endl;

cout<<"请输入到达时间:";

cin>>p->reach.hour;cin>>p->reach.min;

}

s->data1[s->top]=p;

return 1;

}

else

{ cout<<"该车停在便道上!"<<endl;

t= new QueueNode;

t->data2=p;

t->next=NULL;

LQ->rear->next=t;

LQ->rear=t;

i++;

cout<<"车辆在便道"<<i<<"个位置!"<<endl;

return 1;

}

}

void Leave1(SeqStackCar *s1,SeqStackCar *s2,LinkQueueCar *LQ)

{

int place;

CarNode *p,*t;

QueueNode *q;

if(s1->top>0)

{ while(1) { } cout<<"请输入车在车场的位置1--"<<s1->top<<":"; cin>>place; if(place>=1&&place<=s1->top) break;

while(s1->top>place) {

s2->top++;

s2->data1[s2->top]=s1->data1[s1->top];

s1->data1[s1->top]=NULL;

s1->top--;

}

p=s1->data1[s1->top];

s1->data1[s1->top]=NULL;

s1->top--;

while(s2->top>=1)

{ s1->top++;

s1->data1[s1->top]=s2->data1[s2->top];

s2->data1[s2->top]=NULL;

s2->top--;

} Display(p,place); if((LQ->front!=LQ->rear)&&s1->top<MAXSIZE) {

q=LQ->front->next;

t=q->data2;

s1->top++;

cout<<"便道的"<<t-& …… 此处隐藏:2137字,全部文档内容请下载后查看。喜欢就下载吧 ……

数据结构 停车场管理报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/107651.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)