停车场管理

【实验目的】

(1)   深入了解栈和队列的特性,掌握栈和队列的存储方法。

(2)   掌握栈和队列的基本操作,如初始化、入栈(队列)、出栈(队列)等,并能在实际问题背景下灵活运用。

【问题描述】

设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已经停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出场为它让路,待该辆车开出大门外,其他车辆再按次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,试为停车场编制按上述要求进行管理的模拟程序。

#define sz 10

#include<iostream.h>

#include<stdio.h>

#include<stdlib.h>

typedef struct {//让车道 顺序栈

int a[2];

int top;

}rang;

void initr(rang &r){//初始化

r.top=0;

}

void rpush(rang &r,int e){//进栈

r.a[r.top]=e;r.top++;

}

void rpop(rang &r,int &e){//出栈

e=r.a[r.top-1];

r.top--;

}

typedef struct{//等候车道 循环队列

int base [sz];

int front;

int rear;

}deng;

void initq(deng &d){//初始化队列

d.front=d.rear=0;

}

void enq(deng &d,int e){//进队

if((d.rear+1)%sz==d.front)

cout<<"等候车道已满"<<endl;

else

{

d.base[d.rear]=e;

d.rear=(d.rear+1)%sz;

cout<<e<<"号车辆进入等候车道"<<endl;

}

}

void deq(deng &d,int e){//出队列

if(d.front==d.rear)

cout<<"等候车道无车"<<endl;

else

{

e=d.base[d.front];

cout<<e<<"号车辆离开等候车道"<<endl;

d.base[d.front]=0;

d.front=(d.front+1)%sz;

}

}

typedef struct{//停车场

int b[3];

int top;

}ting;

void inits(ting &t){//初始化停车场

t.top=0;t.b[t.top]=0;

}

void push(ting &t,deng &d,int e){//进入停车场

if(t.top==3)

{

cout<<"停车场已满,进入等候车道"<<endl;

enq(d,e);

}

else

{

t.b[t.top]=e;

t.top+=1;

cout<<e<<"号车辆进入停车场"<<endl;

}

}

void pop(ting &t,rang &r,int &e){//出停车场

e=t.b[t.top-1];

t.top--;

}

typedef struct{

char xx;

int bh;

int time;

}che;

int main()

{

int charge;

cout<<"停车场管理系统"<<endl<<"请输入收费标准:"<<endl;cin>>charge;

cout<<"请输入车辆信息:"<<endl;

ting t;//创建停车场,等候车道,让行车道

deng d;

rang r;

inits(t);//初始化停车场,等候车道,让行车道

initq(d);

initr(r);

che c[sz];

for(int i=0;i<sz;i++){

cout<<"请输入车辆到达离去信息(A为到达车辆,D为离开车辆,E退出):"<<endl;

cin>>c[i].xx;

if(c[i].xx==‘E‘){cout<<"退出使用停车场管理系统"<<endl;break;}

cout<<"请输入车辆编号:"<<endl;

cin>>c[i].bh;

cout<<"请输入车辆到达/离去时间:"<<endl;

cin>>c[i].time;

if(c[i].xx==‘A‘)

{

push(t,d,c[i].bh);

}

if(c[i].xx==‘D‘)

{

int ist=1;//标记是否进入停车场

for(int h=0;h<3;h++) {if(b.[h]==c[i].bh)ist=0}//寻找车是否在停车场

if(ist=0;)

{

deq(d,c[i].bh);

cout<<"该车辆未进入停车场,收费为0"<<endl;

}

if(ist==1)

{

int l=1;

while(t.b[t.top-1]!=c[i].bh)

{

pop(t,r,l);

rpush(r,l);

cout<<l<<"号车进入让车道"<<endl;

}

pop(t,r,l);

cout<<c[i].bh<<"号车辆驶出停车场"<<endl;

while(r.top!=0)

{

rpop(r,l);

push(t,d,l);

}

int ch;//收费

for(int k=0;k<i;k++){if(c[k].bh==c[i].bh)break;}

ch=charge*(c[i].time-c[k].time);

cout<<"收费为  "<<ch<<endl;

}

}

}

return 0;

}

原文地址:https://www.cnblogs.com/wander-clouds/p/8443734.html

时间: 2024-10-10 00:31:26

停车场管理的相关文章

7.6 停车场管理

7-7 ParkCharge.c 1 #include "stdio.h" 2 #include "time.h" 3 #define MAXNUM 5 //停车场车位数 4 #define PRICE 2.0 //每小时收费 5 typedef struct car //定义车的结构体 6 { 7 char num[10]; //车牌号(最多10个字节) 8 struct tm intime; //进入时间 9 struct tm outtime; //离开时间

栈与队列的应用:停车场管理

设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出.在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端).若车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入.当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场.每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费). 试编写程序,模拟上述管理过程.要求以顺序栈模拟停车场,以链队列模拟便道.从

停车场系统结合车牌识别进入新的管理模式

随着智能化的普及,停车场系统迎来了新的发展机遇,并已经成为停车场中必不可少的一套设备,它不仅能为车主带来舒适的停车环境,还能使停车场管理更便捷,降低成本开支.但目前大多数的停车场采用传统ID卡的方式,即进出停车场的车辆通过取卡刷卡来控制道闸开闸.看似简单的一个取卡开闸动作,却给人们停车带来了很大的麻烦,而现在的车牌识别改变了停车场的管理模式,保障了车辆的停放安全. 车牌识别在停车场系统中的应用,给停车场管理带来了怎样的便捷呢? 车牌识别是近两年较为流行的一种技术,结合模式识别.图像处理.车牌识别

车牌识别一体机在停车场的应用场景

关键词 车牌识别一体机.车牌识别相机.高清车牌识别一体机.智能车牌识别一体机.高清车牌识别一体机.智能车牌识别一体机 一.车牌识别相机的应用背景 传统的停车场管理主要通过给进入车场的车辆分发IC卡,容易被复制盗用,容易丢失,缺乏智能. 如今高效.便捷.智能化的车牌识别系统成为目前停车行业发展的主要方向. 车牌识别相机识别车牌号代替传统停车卡进出,可以解决以下传统系统中经常遇到让人头疼无奈的问题: 1.解决一卡多车的情况: 2.解决卡未携带的情况: 3.解决卡丢失带来的换卡.补卡的工作: 4.解决

停车场系统安全岛设计施工要求

安全岛,相信大家都见过,一般是一个环形水泥平台.马路上的安全岛是用于摆放设备和防止车辆碰撞.停车场系统建设一般也会有安全岛,其作用除了用来放置停车场管理设备和防车辆碰撞外,其另一个重要作用安装岗亭,是停车场的收费管理区域.那么安全岛施工技术要求有哪些呢? 1.安装尺寸的问题,设备安装面积尺寸要比设备尺寸大10厘米以上,因为固定设备的螺丝会有膨胀,所以尺寸要有保留. 2.安全岛的高度一般要高出地面10到15厘米左右. 3.安全岛可以在水泥地面上直接铺设,但是应该铺架钢筋,方法是以星形妆每间隔25

PHP基于MVC模式下的停车场车位管理系统、448源码下载

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术. 今天将为大家分析一个停车场车位管理系,统本系统的设计是基于php+apache+mysql的方式设计,以zendstudio和mysql5.1.2为开发工具,并运用Photoshop CS6技术美化界面,辅之以CSS技术,本系统是基于面向对象编程的web应用程序.至今为止,越来越多停车场管理停车业务都已经实现了软件化的管理功能,提高了业务的运营工作效率,停车

车联网现状与信息安全的挑战

科技发展从网络的出现到移动网络.智能手机的普及,一直到这几年讨论热度最高物联网IoT(Internet of Things),10年前和现在的生活型态一比已经有颠覆性的变化.人们对于智能装置的习惯和依赖,让许多科技大厂开始关注移动装置以外的新兴应用领域,而车联网更是物联网的其中一项如火如荼进行中的重大应用. 车联网系统分为三大部分:车载终端.云计算处理平台.数据分析平台.车载终端采集车辆实时运行数据,实现对车辆所有工作信息和静.动态信息的采集.存储并发送.车载终端由传感器.数据采集器.无线发送模

2016行业部分软件展示

加密狗复制备份.定制写狗程序.算法注册机.OEM信息.二次封装.行业软件破解.酒店客房管理.餐饮娱乐管理.美容美发管理.会员管理.口腔管理.商超POS收银.服装鞋帽.家具生产设计.家具数控.家居设计及销售设计.药店管理.汽车行业管理.财务进销存系统 .OA办公 .服装设计.积分管理.电脑行业管理系统.客户管理.洗浴足浴.海迅家具设计拆单管理系统.海迅家具数控生产管理系统.凯恩家美橱衣柜销售设计软件.宏光橱柜衣柜销售设计管理软件.伊莱特衣柜橱柜销售设计管理系统.诗尼曼衣柜橱柜销售设计管理系统.创盈

OCR识别,车牌识别相机的基础

一.车牌识别相机的应用背景 传统的停车场管理主要通过给进入车场的车辆分发IC卡,容易被复制盗用,容易丢失,缺乏智能. 如今高效.便捷.智能化的车牌识别系统成为目前停车行业发展的主要方向. 车牌识别相机识别车牌号代替传统停车卡进出,可以解决以下传统系统中经常遇到让人头疼无奈的问题:1.解决一卡多车的情况:2.解决卡未携带的情况:3.解决卡丢失带来的换卡.补卡的工作:4.解决卡损坏带来的换卡.补卡工作:5.解决远距离卡的穿透性以及更换电池带来的问题:6.解决恶意取走临时卡带来的问题:7.解决发卡机的