栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

QT 停车场管理系统

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

QT 停车场管理系统

 源码链接:

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

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

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

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

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

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

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

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

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

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

.h函数

#ifndef WIDGET_H
#define WIDGET_H

#include 
#include
#include
#include
#include
#include
#include
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_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    Car lot[MAX_STOP];
    queue  p;
    int  Price=6;
   
private:
    Ui::Widget *ui;
   // QDialog *in;
};
#endif // WIDGET_H

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

#include "widget.h"
#include "ui_widget.h"
#include
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
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;iIN,&QPushButton::clicked,[=]{
        //获取停车场内现有车的个数
        int t1=0;

         //遍历结构体数组
        for (int i=0;isetModal(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;isetVisible(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;iclose();
            });
    }

        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下载

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/980486.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号