最近学习数据结构的栈,队列,链表知识,遂做一个简单的停车场管理系统。

#include <iostream>
using namespace std;
#define maxsize 14
#define n 3
#define fee 10
//车辆信息
struct car
{char bb;int num;int time;
} ;
//停车场栈
typedef struct stack
{struct car G[n];int top;
}SqStack;
//临时让出车信息
struct rangweicar
{int num;int time;
};
//临时停车场栈 虚拟
typedef struct stackk
{struct rangweicar H[maxsize];int topp;
}SqStackk;
//便道链表队列
typedef struct AQNODE
{int data;AQNODE *next;
}AQNODE;
typedef struct linkqueue
{AQNODE *front, *rear;int geshu;
}LinkQueue;
//对到达车辆进行操作
void A_cars(SqStack *s,LinkQueue *q,struct car a)
{AQNODE *t;if(s->top!=n-1)//停车场没有满,车辆进入{(s->top)++;(s->G[s->top]).bb=a.bb;(s->G[s->top]).num=a.num;(s->G[s->top]).time=a.time;}else{cout<<"停车场已满"<<endl;t=(AQNODE*)malloc(sizeof(AQNODE));t->data=a.num;t->next=NULL;q->rear->next=t;q->rear=t;q->geshu++;}
}
//车辆离开
int D_cars(SqStack *s,LinkQueue *q,struct car d)
{int i,j,x,y;AQNODE *p;SqStackk *k;if(d.num=(s->G[s->top]).num){x=d.time-(s->G[s->top]).time;y=fee*x;cout<<"停车时间"<<x<<"小时,"<<"停车费用"<<y<<"元"<<endl;if(q->geshu==0){cout<<"便道为空"<<endl;(s->top)--;return 0;}else{p=q->front->next;q->front->next=p->next;(s->G[s->top]).num=p->data;(s->G[s->top]).time=d.time;delete p;q->geshu--;if(q->front->next==NULL){q->rear=q->front;}return 1; }}else{for(i=0;i<(s->top);i++){if((s->G[i]).num!=d.num)continue;elsebreak;}if(i>=(s->top)){cout<<"error"<<endl;return -1;}x=d.time-(s->G[i]).time;y=fee*x;cout<<"停车时间"<<x<<"小时,"<<"停车费用"<<y<<"元"<<endl;k=(SqStackk*)malloc(sizeof(SqStackk));k->topp=-1;for(j=(s->top);j<i;j--){k->topp++;(k->H[k->topp]).num=(s->G[j]).num;(k->H[k->topp]).time=(s->G[j]).time;s->top--;}s->top--;//车辆离开while(k->topp>=0){s->top++;(s->G[s->top]).bb='A';(s->G[s->top]).num=(k->H[k->topp]).num;(s->G[s->top]).time=(k->H[k->topp]).time;k->topp--;}if(q->geshu==0){cout<<"便道为空"<<endl;return 2;}else{s->top++;p=q->front->next;q->front->next=p->next;(s->G[s->top]).num=p->data;(s->G[s->top]).time=d.time;delete p;q->geshu--;if(q->front->next==NULL)q->rear=q->front;return 3;                                                                                                                                  }}
}//判断车辆状态并执行相关操作
void Judge_Output(SqStack *s,LinkQueue *q,struct car r)
{if((r).bb=='e'||(r).bb=='E')cout<<"stop!"<<endl;else if((r).bb=='p'||(r).bb=='P')cout<<"停车场车辆数:"<<(s->top)+1<<endl;else if((r).bb=='w'||(r).bb=='W')  cout<<"便道中车辆数:"<<q->geshu<<endl;else if((r).bb=='a'||(r).bb=='A')A_cars(s,q,r);else if((r).bb=='d'||(r).bb=='D')D_cars(s,q,r);else cout<<"error!"<<endl;}void main()
{SqStack *s;LinkQueue *q;AQNODE *p;struct car aa[maxsize];int i;s=(SqStack*)malloc(sizeof(SqStack));s->top=-1;q=(LinkQueue*)malloc(sizeof(LinkQueue));p=(AQNODE*)malloc(sizeof(AQNODE));p->next=NULL;q->front=q->rear=p;q->geshu=0;cout<<"停车场管理系统"<<endl;cout<<endl;cout<<"A(a)车辆到达;D(d)车辆离开;P(p)停车场车辆总数;W(w)便道车辆总数;E(e)退出"<<endl;cout<<endl;for(i=0;i<maxsize;i++){cout<<"请输入汽车状态,车牌号和时间:"<<endl;cin>>aa[i].bb>>aa[i].num>>aa[i].time;Judge_Output(s,q,aa[i]);if(aa[i].bb=='E'||aa[i].bb=='e')break;}
}

有什么不足,欢迎指正哦。不懂的地方也可以问问我。

C++实现简单的停车场管理系统相关推荐

  1. C语言实现简单的停车场管理系统

    问题描述:停车场是一个能放n辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放.若车场满了,车要停在门外的便道上等候,一旦有车走,则便道上第一辆车进入.当停车场中的车离开时,由于通道窄,在它后面呢 ...

  2. 数据结构——C语言编写简单的停车场管理系统(栈和链队实现)

    1.问题描述 设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出,汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端.最先到达的第一辆车停放在车场的最北端),若车场 ...

  3. 停车场管理系统 php,C语言源码实现停车场管理系统

    本文实例为大家分享了C语言停车场管理系统的具体代码,供大家参考,具体内容如下 题目要求: 刚开始在Codeblocks下用C语言写的,但是用指针传递参数的时候总是出问题.后来就用C++,但是调用了C的 ...

  4. 停车场系统管理c语言程序代码,停车场管理系统程序源代码

    一个简单的停车场管理系统c语言代码 #include #include #define N 30 /*停车场类最多的停车数*/ #define M 20 /*便道内最多的停车数*/ #define p ...

  5. C语言实现停车场管理系统

    这个代码实现了一个基本的停车场管理系统,包括停车.结算费用和显示停车记录等功能.你可以根据自己的需求修改代码,添加更多功能. #include <stdio.h> #include < ...

  6. 一个停车场管理系统(C++)

    List item一个停车场管理系统,包括管理员和用户两种角色的功能. List item代码开始部分定义了一个车辆类Car,包含车牌号.车辆详细信息和停车时间等属性,并提供了获取停车时长的方法. L ...

  7. Jsp实现停车场管理系统

    系统采用了B/S架构,Tomcat8.0作为运行服务器,基于J2EE标准.Eclipse4.6开发环境,数据库采用Mysql-5.5.37.开发过程利用MVC开发模式,层次分明.成功实现了该系统.试运 ...

  8. 基于 Spring Boot 的停车场管理系统

    大家好,我是老逛! 今天推荐的开源项目是停车场管理系统,具有功能停车收费.物业管理.物联网.自助缴费等功能. 这个项目并不是简单的 Demo 而是可以部署上线的真实项目,该系统目前真实用户 40w 无 ...

  9. 停车场管理系统(一)

    第二章 算法的需求分析 2.1 需求分析的编写目的 本需求分析的目的是规范化本软件的编写,整合本软件的基本结构和所需要实现的基本功能,旨在于推进软件开发的进度,便于对软件开发过程中的控制与管理,同时提 ...

最新文章

  1. 书中自有BAT Offer!
  2. php遍历父元素,PHP遍历函数将单个数组转换为具有子元素的嵌套数组 – 基于父标识...
  3. CentOS 7编译安装php7.0.7以及可能遇到的问题的解决方案
  4. 嵌入式开发之网络心跳包---阻塞和非阻塞以及是否有必要心跳包heartbeat
  5. java comparable排序_Java使用Comparable解决排序问题
  6. memcahce文章精选
  7. Android学习笔记ListView
  8. 递归 递归的案例 递归的案例
  9. Intel OpenCL + Ubuntu安装
  10. Mysql数据库——sql语句进阶
  11. Linux驱动(6)--关于uboot
  12. 1-VVI-材料设计之-TabLayout上标签
  13. Py2,Py3的差异
  14. MySQL 数据库安全管理
  15. 深度学习——序列模型(笔记)
  16. 硬件基础:台式电脑上的常用的几个接口!
  17. 0506-Scrum 项目 2.0视频
  18. 2022年山东省安全员C证考试题及在线模拟考试
  19. 测试创新——拓宽自己的边界
  20. 终于明白了,为什么会有经济危机

热门文章

  1. 基于微信小程序的西餐外卖系统的设计与实现NodeJS-计算机毕业设计
  2. word2003如何删除页眉?
  3. 关于数字出版物的版权
  4. 架构演进|研究mvp到mvvm(传统架构mvvm和Jetpack下的区别)
  5. Mac下转换文件编码格式
  6. 谁说建模一定要会画图?参数化设计让你事半功倍!
  7. 【开源】整板资源介绍——疯壳·ARM双处理器开发板系列
  8. Fabric.js 上划线、中划线(删除线)、下划线
  9. 盘点:适合创业团队使用的11款团队协作工具,含(石墨文档)
  10. 计算机内存不足黑屏怎么办,win10内存不足会黑屏吗_win10电脑内存不足黑屏了怎么办...