数据结构 停车场管理报告
实验二:停车场管理(栈和队列应用)
班级 学号 姓名 一、实验目的
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)