源码链接:

QT停车场管理系统,有图形界面-C++文档类资源-CSDN下载

停车场管理模拟商场的地下停车场,有一个入口、一个出口,在入口前有便道,如果车库满了, 可以在便道上排队等候。 自己定义停车场内部的车位数,便道上的等候数。停车场内部不要求先来先走,也不要求先来后走, 所以停车场内部可以不用堆栈,也可以不用队列,设置一个数组即可。便道必须是队列, 先来等候的车先进停车场。完成入库、出库、查询等工作。

可实现功能:(1)如果停车场内部有空位置, 则便道上的车就直接进停车场停车, 进停车场时记录入库的时间、车牌号、停的车位号

(2)  如果停车场满了,则在便道上等候, 如果便道上也满了, 则提示满了,不能入库也不能等候

(3)停车场的任一位置上的车可以出库, 出库时计算停车费,提示停车费用,如果这时在便道上有等候的车辆, 则便道上的第一辆车进停车场入库

(4)可以查看某一车位上的车辆的信息, 也可以查看整个停车场的统计数据(如: 停车场内有多少量车? 有多少个空位置?)

(5)要有界面, 要有动画演示入库和出库的动作,希望每一个车位的大小是可调整的, 即根据停车位数量的不同,每个车位的大小随之改变

代码思想:1.停车场定义为结构体数组

2.便道定义为队列,队列元素为字符串

3.定义三个功能:驶入,驶出,和查询功能

.h函数

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<iostream>
#include<iomanip>
#include<malloc.h>
#include<time.h>
#include<qqueue.h>
#include<queue>
using namespace std;
//#define Price     1           //每秒的单价
#define MAX_STOP  2
#define MAX_PAVE  2
//数组中还有一个空闲单元时,就认为这个队列已经满了
typedef string  ElemType;typedef struct{long TimeIn;                    // 进入停车场时间long TimeOut;             // 离开停车场时间int price;string  Lincense;   // 字符类型 车牌号int flag;                   //记录此时汽车所处状态,0代表在停车场,1代表在便道
}Car;QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();Car lot[MAX_STOP];queue<string>  p;int  Price=6;private:Ui::Widget *ui;// QDialog *in;
};
#endif // WIDGET_H

.cpp函数(仅列出将汽车开入停车场和队列的代码),想要获得全部代码,关注点赞私信即可。

#include "widget.h"
#include "ui_widget.h"
#include<QtDebug>
#include <QPushButton>
#include<QDialog>
#include<QLabel>
#include<QTextBlock>
#include<QLineEdit>
#include<iostream>
#include<iomanip>
#include<malloc.h>
#include<time.h>
#include<queue>
#include<qqueue.h>
using namespace std;
//#define Price    6            //每秒的单价
#define MAX_STOP  2
#define MAX_PAVE  2//定义停车场全局变量
//每个汽车是一个结构体
//停车场是结构体数组
//便道是一个队列,队列元素是汽车结构体//汽车信息结构体//停车场数组Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->setFixedSize(1500,800);//int Price=6;//初始化停车场for (int i=0;i<MAX_STOP;i++) {lot[i].flag=2;}//向停车场开入车connect(ui->IN,&QPushButton::clicked,[=]{//获取停车场内现有车的个数int t1=0;//遍历结构体数组for (int i=0;i<MAX_STOP;i++) {if(lot[i].flag!=2){t1++;}}qDebug()<<t1;qDebug()<<p.size();//当停车场还有车位时且便道还有位置时if(t1<=MAX_STOP&&p.size()<=MAX_PAVE){ QDialog *in=new QDialog(this);in->setModal(false);in->setFixedSize(800,600);in->setWindowTitle("开入汽车");in->show();QLabel *l1=new QLabel(in);l1->setFixedSize(100,100);l1->move(100,100);l1->setVisible(true);l1->setText("车牌号");l1->adjustSize();QLineEdit *l2=new QLineEdit;l2->setFixedSize(200,100);l2->move(200,100);l2->setParent(in);l2->setVisible(true);//in->show();QLabel *ll=new QLabel(in);ll->setFixedSize(300,200);ll->move(100,300);ll->adjustSize();ll->setWordWrap(true);if(t1==MAX_STOP){ll->setText("当前停车场已满,车只能停入便道");}else{ll->setText("停车场仍有空位,可以停进停车场");}ll->setVisible(true);QString str=l2->text();string t2=str.toStdString();QPushButton *l3=new QPushButton(in);l3->setFixedSize(100,50);l3->move(500,400);l3->setText("确定");l3->setVisible(true);
//            for (int i=0;i<MAX_STOP;i++) {
//              if(strcmp( t2.c_str(), lot[i].Lincense.c_str() ) == 0){
//                 l3->setVisible(false);
//              }
//              }// l3->setVisible(true);QPushButton *l4=new QPushButton(in);l4->setFixedSize(100,50);l4->move(700,400);l4->setText("取消");l4->setVisible(true);//点击确认按钮后的操作connect(l3,&QPushButton::clicked,[=]{if(t1==MAX_STOP){p.push(t2);}else{// enqueue(&p,t2);for (int i=0;i<MAX_STOP;i++) {if(lot[i].flag==2){lot[i].Lincense=t2;lot[i].TimeIn=time(NULL);lot[i].flag=0;break;}}}int t3=0;for (int i=0;i<MAX_STOP;i++) {if(lot[i].flag!=2){t3++;}}qDebug()<<str ;qDebug()<<t3;//qDebug()<<lot[i].TimeIn;in->close();});}else{QDialog *full=new QDialog(this);full->setModal(false);full->setFixedSize(800,600);full->setWindowTitle("开入汽车");full->show();QLabel *l5=new QLabel(full);l5->setFixedSize(200,200);l5->move(100,100);l5->setVisible(true);l5->setFont(QFont("宋体",40));l5->setText("当前便道和车位已满");QPushButton *l6=new QPushButton(full);l6->setFixedSize(100,50);l6->move(500,400);l6->setText("确定");l6->setVisible(true);connect(l6,&QPushButton::clicked,[=]{full->close();});}});

仅列出部分运行图片

源码连接QT停车场管理系统,有图形界面-C++文档类资源-CSDN下载

QT 停车场管理系统相关推荐

  1. 停车场管理系统linux实现,基于Linux的停车场管理系统的设计与实现

    摘要: 随着机动车数量的不断攀升,我国居民对停车场以及场内停车位的需求也随之增加,这种趋势大大增加了停车场管理系统的负荷.与此同时,在停车场内,驾驶员寻找空位泊车以及返回时寻找停车位置和出口遇到困难的 ...

  2. Linux项目设计:基于ARM平台的停车场管理系统制作教程

    文章目录 一.功能要求 二.项目笔记 (一)网络问题:Ubuntu同时与开发板.WiFi连接 (二)图片文字识别 (三)文字转语音 (四)摄像头拍摄 化作尘其它开源项目: 单片机项目: Linux项目 ...

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

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

  4. 海康威视智能机器人泊车_干货|海康威视智能停车场管理系统(含技术指导手册+施工图)...

    随着汽车消费的持续增长,城市停车设施.规划.管理等方面不够完善,导致机动车停车供需矛盾.伴随着停车难问题的日益凸显,面对停车位有限资源与无限需求之间的矛盾,物联网时代就要充分利用物联网技术的力量解决有 ...

  5. 停车管理系统汽车到达汽车离去c语言,停车场管理系统 C语言实现

    用堆栈模拟实际的停车场管理系统 一.问题描述 1.实验题目: 设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出.汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最 ...

  6. 停车场管理系统c语言程序,c语言程序设计 停车场管理系统 停车场有1-20个车位号,设计一个停车场管理系统,实现停车场管理...

    #include #include #include #include #define max 3 #define price 1 int b=1; typedef struct { int day; ...

  7. 网络虚拟化有几种实现方式_停车场管理系统的防砸车功能有几种方式?如何实现?...

    原标题:停车场管理系统的防砸车功能有几种方式?如何实现? 前言 01 01 正文 一.压力波防砸装置 也叫遇阻防砸,主要是安装遇阻返回装置,当道闸杆下落过程中接触到车辆或者行人(接触力度是可以调节的) ...

  8. java菜单管理的实现方式_智能停车场管理系统的收费实现方式有哪些?

    面对需求市场的拉动,用户对停车场管理系统提出更新更高的要求.实现自动进出车辆.自动判别车辆放行.自动缴费管理,将是实现全智能化停车场管理的发展方向,那么智能停车场管理系统的收费实现方式有哪些? 自动计 ...

  9. 智慧停车场管理系统、停车位、停车费、停车场系统、寻车、抬杆、入位车、出位车、车流量统计、停车、收费、缴费、预警管理、业务统计、报警统计、运维管理、报警系统、异常页面、数据配置、智慧停车原型、停车场

    智慧停车场管理系统.停车位.停车费.停车场系统.寻车.抬杆.入位车.出位车.车流量统计.停车.收费.缴费.预警管理.业务统计.报警统计.运维管理.报警系统.异常页面.数据配置.智慧停车原型.Axure ...

最新文章

  1. mariadb galera Cluster 多主集群安装实录
  2. ii 组合总和_40. 组合总和 II
  3. python mapreduce函数_Map-reduce在Python高阶函数中的应用,python,用法,之,mapreduce
  4. 四层负载均衡与七层负载均衡
  5. C语言之字符数组在if{}里面赋值给char *引发的问题
  6. php curl https 443,PHP CURL支持HTTP、HTTPS 请求亲测可用
  7. @NotBlank注解使用不生效的解决办法
  8. [转]char数组赋值
  9. 《异星入境》-超粒方
  10. Vue在HTML模板中插入JS数据
  11. Wpf之无法添加wpf窗体
  12. 【Pre-Training】超细节的 BERT/Transformer 知识点
  13. chmod命令用法_Java开发人员必须掌握的Linux命令(一)
  14. 免root卸载MIUI中在通知栏中推送广告的应用——msa
  15. xdg在Linux中的用法,linux-如何使用sudo获取XDG变量?
  16. RTX3070深度学习环境配置
  17. 宾客往来络绎不绝 企业访客管理如何不失礼仪
  18. 一步步学会用docker部署应用(nodejs版)
  19. 包含C/C++开发文档的Docset文档库
  20. android 齿轮动画,Android仿正点闹钟时间齿轮滑动效果

热门文章

  1. 根据自动装配原理在Springboot项目中自定义starter,并实现热插拔技术,自定义@enable
  2. AAA 服务器 — RADIUS(半径)协议
  3. 前端——面试(熊猫优选)
  4. 大梳理!深度学习优化算法:从 SGD 到 AdamW 原理和代码解读
  5. 计算机不装显卡会怎么样,电脑一个月不用会咋样?显卡长蘑菇
  6. 国行三星Note3已开始推送安卓4.4.2更新
  7. python爬虫 + 百度地图api 获取城市的实时路况信息
  8. 真的很好的矿石收音机
  9. 【cocos creater】10.仿《弓箭传说》- 添加HP血条
  10. 商品规格的数据库设计——商城(六)