停车厂管理问题

[问题描述]

设停车场内只有一个可停放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’表示输入结束。

[基本要求]

以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。

[实现提示]

需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。

实现中遇到的问题:

建立一个基本类Elem存放车的信息(时间和车牌),在栈和数组中设置Elem的元素,存放基本信息。

class类型重定义问题,在排头加入#pragma once即可。

在实现enqueue函数时遇到rear无法正确更改问题,源代码如下:

void enqueue(Elem car)

{

Qnode p(car.carnum, car.time);

rear->next=&p;

rear = rear->next;

size++;

}

后来发现是因为p没有建新结点,在car中输入会改变Q里面rear的值。

将其改为:

void enqueue(Elem E)

{

rear->next=new Qnode(E.carnum, E.time);

rear = rear->next;

size++;

}

已经实现了车辆的进入。

车辆进出函数如下:

void carin(Queue &Q, Cstack &S, Elem car)

{

int flag = 0;

for (int i = 0; i < S.top; i++)//在停车场中查找是否存在

{

if (car.carnum == S.Carnum[i].carnum)

{

cout << "该车号在停车场中已存在,请重新输入!" << endl;

flag = 1;

break;

}

}

if (flag == 0 && Q.front != Q.rear) //在停车场中不存在,在便道里查找

{

Qnode *temp=Q.front->next;

while (temp&&temp->Qelem.carnum!=car.carnum)

{

temp = temp->next;

}

while (temp&&temp->Qelem.carnum == car.carnum)

{

flag = 1;

cout << "该车在车道里已存在,请重新输入!" << endl;

break;

}

}

if (flag==0) //均不存在,让车进入

{

if (S.top == S.maxSize)//车库已满,在便道等待

{

Q.enqueue(car);

cout << "请在通道"<

}

else{ //停入车库

S.push(car);

cout << "请进入停车场" << S.lenth() << "号车位!" << endl;

}

}

}

void leavecar(Queue &Q, Cstack &S, Elem car)

{

int flag = 0,i=0;

Elem t;

while (car.carnum != S.Carnum[i].carnum) //在停车场中寻找车辆

{

if (i >= S.top)

{

cout << "在车库里未找到该车" << endl;

flag = 1;

break;

}

i++;

}

if (flag == 1) //未找到该车在便道里寻找

{

if (Q.size == 0)flag = 2;

Queue *temp = new Queue;

while (Q.size != 0 && Q.front->next->Qelem.carnum != car.carnum)

{

t = Q.dequeue();

temp->enqueue(t);

if (Q.size == 0)

{

cout << "未在车道里找到车辆" << endl;

flag = 2;

break;

}

}

if (flag == 1)

{

t = Q.dequeue();

cout << "车在车道里第" << temp->size + 1 << "位,已开出。"<

while (temp->size != 0)

{

t = temp->dequeue();

Q.enqueue(t);

}

}

}

if (flag == 2)

{

cout << "车辆输入有误。" << endl;

}

if (flag == 0)

{

Cstack *temp = new Cstack;

int m = S.top -1 ;

while (S.Carnum[m].carnum != car.carnum)

{

t = S.pop();

temp->push(t);

m--;

}

t = S.pop();

if (car.time > t.time)

{

cout << "尾号为" << car.carnum << "的车已经开出。" << endl;

cout << "停车用时:" << car.time - t.time << endl;

}

else { cout << "输入错误" <

while (temp->top!=0)

{

t = temp->pop();

S.push(t);

}

if (S.top != S.maxSize && Q.size != 0)

{

t = Q.dequeue();

t.time = car.time;//进入车库后更新时间

S.push(t);

cout << "等待车辆" << t.carnum << "开入车库" << endl;

}

}

}

停车场计费算法 php,关于停车计费系统的几个问题相关推荐

  1. javaweb JAVA JSP停车场管理系统源码JSP停车收费系统JSP停车场管理 JSP停车场收费系统

    javaweb JAVA JSP停车场管理系统源码JSP停车收费系统JSP停车场管理 JSP停车场收费系统 protected void doGet(HttpServletRequest req, H ...

  2. 易泊车牌识别 停车计费系统解决方案

    一.公司简介 北京易泊时代科技有限公司是中国优秀的智慧停车运营商,拥有在车牌识别领域资深团队.科研力量.技术优势和行业经验.易泊时代停车计费系统的推出,成为我国在停车计费领域一次新的突破,未来易泊时代 ...

  3. B47 - 基于51单片机的RFID停车计费系统

    任务摘要 当今社会,交通压力不断增加,智能停车场管理系统是人们对便捷高效交通的一种追求.本智能停车场管理系统运用RFID技术,采用STC8H8K64U单片机.RC522.串口屏.光电传感器实现系统设计 ...

  4. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  5. 写一篇路边停车计费系统的期刊

    技术进步和城市化的不断推进导致城市停车场地的需求不断增加.作为一种解决城市停车难题的措施,路边停车计费系统已经成为当今城市管理中不可缺少的一部分.本文将对路边停车计费系统的设计.实施和应用进行详细介绍 ...

  6. Java毕业设计 之 [含源码等]车库停车计费系统[包运行成功]

    <车库停车计费系统> 该项目采用技术: 后台采用了ssm框架 前台使用html+css+js+freemarker 使用了mysql数据库+tomcat服务器,项目含有源码.文档.配套开发 ...

  7. 停车场计费算法 php,停车场收费算法,思路卡住了求补完!该如何处理

    停车场收费算法,思路卡住了求补完!! 本帖最后由 bulls5988 于 2013-11-22 16:00:03 编辑 一个停车场算法,写了一半不会写了. 需求:员工停车卡.周一到周五,7:00~23 ...

  8. 车牌识别技术衍生出停车计费系统

    今日停车计费系统实施现场观摩,真真纸上得来终觉浅呀 详情可留意www.eparkingxw.com

  9. 车牌识别停车计费系统性能表现二 计费系统功能强大

    易泊车牌识别系统停车计费软件   车牌识别准确率高,识别正确率99.7%:   支持脱机管理固定用户停车场,无需PC:   支持异常处理,车牌识别系统能够解决无车牌.识别错误车辆收费问题:   支持进 ...

最新文章

  1. 城科会刘朝晖:从互联网大脑模型看城市大脑
  2. IT职场常见疾病之“颈椎病”
  3. Hibernate 连接池的三种配置方式
  4. 好货不能错过!一款在GitHub上22k+star的人力资源管理系统
  5. 28和lba48命令格式区别_linux硬盘分区、格式化、挂载超详细步骤
  6. cad设计院常用字体_如何把CAD图纸坐标转换成现场坐标?
  7. Windows10电脑系统时间校准
  8. 几种分页方法效率比较
  9. Go实现 爬虫v0.2
  10. python2和python3同时安装
  11. 剑指offer系列之五十四:按之字形顺序打印二叉树
  12. 数字电子技术基础笔记
  13. 混合开发Ionic+angular快速开发App
  14. gitbub 上删除仓库
  15. Latex取消英语单词自动断行
  16. 谷歌浏览器查看版本信息及个人资料路径的命令方法
  17. 判断windows系统类型和IE浏览器版本
  18. 微信小游戏从零开始申请软著到上线
  19. 【杰理AC696X】软件定时器介绍
  20. mysql导出表结构及数据的三种方法

热门文章

  1. java arraycopy 并发_java用arraycopy实现多击事件
  2. python 计算标准差和平均值
  3. 485通讯的校验和_MODBUS称重仪表与西门子PLC通讯实例
  4. 打开Java之门——一个Java SE小白的学习日志1【极客BOY-米奇】
  5. 拱猪计分(normal)
  6. 哈罗不显示服务器,哈罗助力车怎么没有了
  7. 曹云金回应公式相声_公式相声跨年演出,疑砸挂郭德纲、何沄伟和曹云金,台下掌声不断...
  8. IDesign C#编码规范(之三)
  9. 高温老化测试的原理和试验机
  10. 围捕神经猫android版[开源]