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

目录

前言:

1 项目简介

2 需求分析

3 总体设计

4 详细设计与实现

4.1  各界面截图

4.1.1  截图内各个组件说明

4.2  入场

4.3 入车

4.4 出车

4.5 详细界面

5 设计总结


前言:

Qt案例,简单实现。

资源如下:

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

也可以从gitee上取用

gitee的链接icon-default.png?t=M85Bhttps://gitee.com/ljl2107/parking


1 项目简介

          题目:停车场管理系统

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

2 需求分析

2.1 功能需求

        记录车辆入场出场信息;

        可视化操作;

2.2 界面需求

        有按钮控制入场出场;

        明确可见车位占有情况;

        可调出入记录;

3 总体设计

停车场管理系统案例【C++】【Qt】_第1张图片

4 详细设计与实现

4.1  各界面截图

停车场管理系统案例【C++】【Qt】_第2张图片

停车场管理系统案例【C++】【Qt】_第3张图片  

4.1.1  截图内各个组件说明

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

4.2  入场

      •  使用QInputDialog来获取到用户的输入
    bool isEn = false;

    int c_id = QInputDialog::getInt(this,tr("进入车辆信息登记"),tr("请输入车辆车牌号(11111~99999)"),0,11111,99999,1,&isEn);
      • 存入数据,记录使用了STL中的QVector,场地使用了数组(因为是固定的)

   Ui::Widget *ui;

    QVector 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
      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; iid)+"缴费:"+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 设计总结

结束,参上。

你可能感兴趣的:(c++,qt,开发语言)