停车场管理系统案例【C++】【Qt】

发布于:2022-12-17 ⋅ 阅读:(469) ⋅ 点赞:(0)

前言:

Qt案例,简单实现。

资源如下:

停车场管理系统https://download.csdn.net/download/m0_63288666/86541460?spm=1001.2014.3001.5503


1 项目简介

          题目:停车场管理系统

         系统特色:图形化操作,简便快捷。

2 需求分析

2.1 功能需求

        记录车辆入场出场信息;

        可视化操作;

2.2 界面需求

        有按钮控制入场出场;

        明确可见车位占有情况;

        可调出入记录;

3 总体设计

4 详细设计与实现

4.1  各界面截图

  

4.1.1  截图内各个组件说明

  • 窗口上方是程序名(label);
  • 记录信息(label)会记录所有车辆总数;
  • “细节”按钮会在新窗口展示记录信息;
    • “显示”按钮显示完成流程的车辆的信息;
    • “关闭”按钮关闭该窗口;
  • “101,102···106”是车位(label),会显示是否有车;
  • “入车”“出车”按钮指进入或退出该停车位;
  • “入场”按钮登记车辆信息;

4.2  入场

    bool isEn = false;

    int c_id = QInputDialog::getInt(this,tr("进入车辆信息登记"),tr("请输入车辆车牌号(11111~99999)"),0,11111,99999,1,&isEn);

   Ui::Widget *ui;

    QVector<record> rec;

    venue ven[6];

    Messages *m;


    car* c1 = new car;
    c1->id = c_id;

    record *r1 = new record;

    r1->inadd(*c1);

    rec.append(*r1);
      1. 更新文本
QString cannelText = "登记总车辆数:"+QString().number(rec.count());

        ui->label_9->clear();

        ui->label_9->setText(cannelText);

4.3 入车

  1. 判断车位是否空&&判断记录中的车是否已经被导入过了
if(ven[0].isempty)//车位 空-》非空

    {

        qDebug()<<"元素遍历";

        int i = 0;

        bool jud = false;

        for (i=0; i<rec.count(); i++)

        {

            if(!rec[i].isAd)

            {
                jud = true;//如果此时没有一辆车等待那么jud = false 直接跳过 ,不操作

                break;
            }

        }

        if(!jud){

            qDebug()<<"退出";

            return;
        }
      1. 存入场地
ven[0].inadd(rec[i]);
      1. 更新文本
QString venueText = "101位已入车 牌号:"+QString().number(ven[0].rec_v->c_r->id);

ui->label->clear();

ui->label->setText(venueText);

4.4 出车

  1. 更新信息
  if(!ven[0].isempty)

    {

        ven[0].out();

//        m->rec_m[0].outadd();

        m->rec_m.append(*ven[0].rec_v);

        ui->label->setText("101位 空");

    }

4.5 详细界面

  1. 调用show()
m->show();
      1. 显示数据,使用字符串连接“+”
QString messagetext = "";

    for (int i=0; i<rec_m.count(); i++)

    {

  messagetext   = messagetext + "\n 车辆数据:车牌:"+QString().number(rec_m[i].c_r->id)+"缴费:"+QString().number(rec_m[i].moneyP);

        struct tm* ti;

        ti = localtime(&rec_m[i].inP);

        struct tm* tj;

        tj = localtime(&rec_m[i].outP);

        messagetext = messagetext + "入场时间:"+QString().number(ti->tm_year+1900)+"/"+QString().number(ti->tm_mon+1)+"/"+QString().number(ti->tm_mday)+" "+QString().number(ti->tm_hour)+":"+QString().number(ti->tm_min)+":"+QString().number(ti->tm_sec);

        messagetext = messagetext + "出场时间:"+QString().number(tj->tm_year+1900)+"/"+QString().number(tj->tm_mon+1)+"/"+QString().number(tj->tm_mday)+" "+QString().number(tj->tm_hour)+":"+QString().number(tj->tm_min)+":"+QString().number(tj->tm_sec);

      }

ui->label->setText(messagetext);

5 设计总结

结束,参上。


网站公告

今日签到

点亮在社区的每一天
去签到