国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

VS+Qt+C++醫(yī)院排隊(duì)叫號(hào)系統(tǒng)

這篇具有很好參考價(jià)值的文章主要介紹了VS+Qt+C++醫(yī)院排隊(duì)叫號(hào)系統(tǒng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

程序示例精選

VS+Qt+C++醫(yī)院排隊(duì)叫號(hào)系統(tǒng)

如需安裝運(yùn)行環(huán)境或遠(yuǎn)程調(diào)試,見文章底部個(gè)人QQ名片,由專業(yè)技術(shù)人員遠(yuǎn)程協(xié)助!

前言

這篇博客針對(duì)<<VS+Qt+C++醫(yī)院排隊(duì)叫號(hào)系統(tǒng)>>編寫代碼,帶用戶登錄,管理員登錄,增刪改查,代碼整潔,規(guī)則,易讀。 學(xué)習(xí)與應(yīng)用推薦首選。


文章目錄

一、所需工具軟件

二、使用步驟

????????1. 引入庫

????????2. 代碼實(shí)現(xiàn)

???????3. 運(yùn)行結(jié)果

三、在線協(xié)助

一、所需工具軟件

1. VS, Qt

2. C++

二、使用步驟

1.引入庫

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_AdminManager.h"


#include <QWidget>

#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtSql/QtSql>

2. 代碼實(shí)現(xiàn)

代碼如下:

namespace
{
    using namespace std;

    // 結(jié)構(gòu)體
    struct Person
    {
        int id;
        QString name;
    };

    // 類
    class AddressBooks
    {
    public:
        std::vector<Person> datas;
    public:
        void InitAddrssBooks();
        bool AddPerson(Person p);
        bool DeletePerson(QString personid);
        bool UpdatePerson(Person p);
        Person* FindPerson(QString personid);

    };

    Person* AddressBooks::FindPerson(QString personid)
    {
        Person* p = NULL;
        int index = -1;

        for (size_t i = 0; i < datas.size(); i++)
        {
            auto person = datas.at(i);
            if (QString::number(person.id) == personid)
            {
                index = i;
                break;
            }
        }

        if (index != -1)
        {
            p = &datas.at(index);
        }
        return p;
    }

    bool AddressBooks::AddPerson(Person p)
    {
        qDebug() << "iddd: " << QString::number(p.id);

        if (FindPerson(QString::number(p.id)))
        {
            qDebug() << "iddddd: " << p.id;
            return false;
        }

        datas.push_back(p);
        qDebug() << "data size:" << datas.size();
        return true;
    }

    bool AddressBooks::UpdatePerson(Person p)
    {
        auto person = FindPerson(QString::number(p.id));
        if (!person) return false;
        person->id = p.id;
        person->name = p.name;

        return true;
    }

    bool AddressBooks::DeletePerson(QString personid) {

        if (!FindPerson(personid)) return false;
        int index = -1;
        for (size_t i = 0; i < datas.size(); i++)
        {
            auto person = datas.at(i);
            if (person.id == personid.toInt())
            {
                index = i;
                break;
            }
        }

        datas.erase(datas.begin() + index);
        return true;
    }
    AddressBooks AddrDatabase;
}


AdminManager::AdminManager(QWidget* parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    QObject::connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(on_addButton_clicked()));
    QObject::connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(on_delButton_clicked()));
    QObject::connect(ui.pushButton_3, SIGNAL(clicked()), this, SLOT(on_updateButton_clicked()));
    QObject::connect(ui.pushButton_4, SIGNAL(clicked()), this, SLOT(on_findButton_clicked()));
    QObject::connect(ui.pushButton_5, SIGNAL(clicked()), this, SLOT(on_check_clicked()));
    QObject::connect(ui.pushButton_6, SIGNAL(clicked()), this, SLOT(on_backLoginWindow()));

    //背景色
    ui.tableWidget->setStyleSheet("QTableView::Item{background-color:green}");


}

//顯示所有
void AdminManager::on_findButton_clicked()
{
    qDebug() << "顯示所有********************************** ";

    memset(&AddrDatabase, 0, sizeof(AddrDatabase)); //清空結(jié)構(gòu)體

    readCSV(); //讀取csv

    ui.tableWidget->clearContents();
    ui.tableWidget->setRowCount(0);
    for (int i = 0; i < AddrDatabase.datas.size(); i++)
    {
        auto person = AddrDatabase.datas.at(i);
        //qDebug() << "aaa: " << person.id;
        //qDebug() << "aaa: " << person.name;
        //qDebug() << "aaa: " << person.gender;
        //qDebug() << "aaa: " << person.age;
        //qDebug() << "aaa: " << person.classL;

        //std::cout << "test_add2 " << person.name<< std::endl;

        int rowCount = ui.tableWidget->rowCount();
        ui.tableWidget->insertRow(rowCount);

        QTableWidgetItem* columnItem0 = new QTableWidgetItem(
            QString::number(person.id));
        QTableWidgetItem* columnItem1 = new QTableWidgetItem(
            person.name);

        //QTableWidgetItem* columnItem5 = new QTableWidgetItem(
        //    query.value(5).toString());

        ui.tableWidget->setItem(rowCount, 0, columnItem0);
        ui.tableWidget->setItem(rowCount, 1, columnItem1);

        //ui.tableWidget->setItem(rowCount, 5, columnItem5);

    }



}

//刪除
void AdminManager::on_delButton_clicked()
{

    Person p;
    p.id = ui.idLineEdit->text().toInt();
    qDebug() << p.id;

    AddrDatabase.DeletePerson(QString::number(p.id));
    qDebug() << "test2";
    exportCSV(); //輸出到csv
    on_findButton_clicked();
}

//修改
void AdminManager::on_updateButton_clicked()
{
    qDebug() << "修改********************************** ";

    memset(&AddrDatabase, 0, sizeof(AddrDatabase)); //清空結(jié)構(gòu)體

    readCSV(); //讀取csv

    ui.tableWidget->clearContents();
    ui.tableWidget->setRowCount(0);
    for (int i = 0; i < AddrDatabase.datas.size(); i++)
    {
        auto person = AddrDatabase.datas.at(i);
        qDebug() << "aaa: " << person.id;
        qDebug() << "aaa: " << person.name;


        if (person.id == ui.idLineEditUpdate->text().toInt())
        {
            qDebug() << "testIf -----------------------";
            qDebug() << "person.id" << person.id;
            person.name = ui.comboBox->currentText();
            qDebug() << "person.name" << person.name;

            AddrDatabase.UpdatePerson(person);

        }
    }
    exportCSV(); //輸出到csv
    on_findButton_clicked(); //執(zhí)行顯示所有信息函數(shù)
}

//添加
void AdminManager::on_addButton_clicked()
{
    on_findButton_clicked(); //執(zhí)行顯示所有信息函數(shù)

    std::cout << "test_add " << std::endl;
    Person p;
    p.id = ui.idLineEdit_2->text().toInt();
    qDebug() << p.id;


    AddrDatabase.AddPerson(p); //執(zhí)行添加函數(shù)

    exportCSV(); //輸出到csv

    on_findButton_clicked(); //執(zhí)行顯示所有信息函數(shù)

}

//查找
void AdminManager::on_check_clicked()
{
    qDebug() << "查找********************************** ";

    memset(&AddrDatabase, 0, sizeof(AddrDatabase)); //清空結(jié)構(gòu)體

    readCSV(); //讀取csv

    ui.tableWidget->clearContents();
    ui.tableWidget->setRowCount(0);
    for (int i = 0; i < AddrDatabase.datas.size(); i++)
    {
        auto person = AddrDatabase.datas.at(i);
        qDebug() << "aaa: " << person.id;
        qDebug() << "aaa: " << person.name;


        if (person.id == ui.lineEdit_2->text().toInt())
        {

            int rowCount = ui.tableWidget->rowCount();
            ui.tableWidget->insertRow(rowCount);

            QTableWidgetItem* columnItem0 = new QTableWidgetItem(
                QString::number(person.id));
            QTableWidgetItem* columnItem1 = new QTableWidgetItem(
                person.name);

            //QTableWidgetItem* columnItem5 = new QTableWidgetItem(
            //    query.value(5).toString());

            ui.tableWidget->setItem(rowCount, 0, columnItem0);
            ui.tableWidget->setItem(rowCount, 1, columnItem1);

            //ui.tableWidget->setItem(rowCount, 5, columnItem5);

        }
    }
}

void AdminManager::readCSV()
{
    qDebug() << "test readCSV ";

    QFile file("data.csv");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        qDebug() << "Can't open the file!" << endl;
    }

    //一行一行直接讀取文件
    while (!file.atEnd()) {
        qDebug() << "test readCSV ";
        QByteArray line = file.readLine();
        qDebug() << "line: " << line;
        QString str(line);
        str.replace("\n", "");
        qDebug() << str;

        auto list = str.split(",");


        Person p;
        p.id = list[0].toInt();
        p.name = list[1];


        AddrDatabase.AddPerson(p);
        //AddrDatabase.datas.push_back(p);

        for (int i = 0; i < AddrDatabase.datas.size(); i++)
        {
            auto person = AddrDatabase.datas.at(i);
            //qDebug() << "aaa: " << person.id;
            //qDebug() << "aaa: " << person.name;
            //qDebug() << "aaa: " << person.gender;
            //qDebug() << "aaa: " << person.age;
            //qDebug() << "aaa: " << person.classL;
        }

    }
    file.close();
}


void AdminManager::exportCSV()
{
    QString fileNamePath = "data.csv";
    QFile file(fileNamePath);
    if (!file.open(QIODevice::WriteOnly)) {
        qDebug() << "Can't open the file!" << endl;
        return;
    }

    QTextStream filestream(&file);//QTextStream 與file關(guān)聯(lián)
    filestream.setCodec("utf-8");

    QStringList lines;
    for (size_t i = 0; i < AddrDatabase.datas.size(); i++)
    {
        Person p = AddrDatabase.datas.at(i);
        QString strline = QString::number(p.id) + "," + p.name;
        lines << strline;
    }

    QString str = lines.join("\n");

    qDebug() << str;

    filestream << str;
    file.flush();
    file.close();
}


//返回登錄窗口
void AdminManager::on_backLoginWindow()
{
    std::cout << "test_ " << std::endl;

    this->close();
    LoginResiger* ad;
    ad = new LoginResiger;
    ad->show();

}


3. 運(yùn)行結(jié)果

VS+Qt+C++醫(yī)院排隊(duì)叫號(hào)系統(tǒng)

VS+Qt+C++醫(yī)院排隊(duì)叫號(hào)系統(tǒng)

三、在線協(xié)助:

如需安裝運(yùn)行環(huán)境或遠(yuǎn)程調(diào)試,見文章底部個(gè)人 QQ 名片,由專業(yè)技術(shù)人員遠(yuǎn)程協(xié)助!
1)遠(yuǎn)程安裝運(yùn)行環(huán)境,代碼調(diào)試
2)Qt, C++, Python入門指導(dǎo)
3)界面美化
4)軟件制作

博主推薦文章:python人臉識(shí)別統(tǒng)計(jì)人數(shù)qt窗體-CSDN博客

博主推薦文章:Python Yolov5火焰煙霧識(shí)別源碼分享-CSDN博客

? ? ? ? ? ? ? ? ? ? ? ? ?Python OpenCV識(shí)別行人入口進(jìn)出人數(shù)統(tǒng)計(jì)_python識(shí)別人數(shù)-CSDN博客

個(gè)人博客主頁:alicema1111的博客_CSDN博客-Python,C++,網(wǎng)頁領(lǐng)域博主

博主所有文章點(diǎn)這里:alicema1111的博客_CSDN博客-Python,C++,網(wǎng)頁領(lǐng)域博主文章來源地址http://www.zghlxwxcb.cn/news/detail-434897.html

到了這里,關(guān)于VS+Qt+C++醫(yī)院排隊(duì)叫號(hào)系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • WPF 醫(yī)院叫號(hào)系統(tǒng)

    WPF 醫(yī)院叫號(hào)系統(tǒng)

    C# .Net 4.8 WPF 桌面版醫(yī)院叫號(hào)系統(tǒng) 數(shù)據(jù)庫 SQLServer 2012 數(shù)據(jù)隊(duì)列 Redis 日志 log4net ? ? ? ? 醫(yī)生客戶端登陸 科室設(shè)置,醫(yī)生職稱設(shè)置,醫(yī)生科室和房間設(shè)置,就診設(shè)置,用戶設(shè)置,用戶就診記錄,醫(yī)生看診記錄,用戶預(yù)約記錄,用戶叫號(hào)記錄,分配記錄,用戶掃碼機(jī)自助掃描簽

    2024年02月02日
    瀏覽(44)
  • C語言模擬銀行排隊(duì)叫號(hào)(順序隊(duì))

    C語言模擬銀行排隊(duì)叫號(hào)(順序隊(duì))

    隊(duì)列 是一種具有先進(jìn)先出(FIFO)特性的線性數(shù)據(jù)結(jié)構(gòu),它只允許在隊(duì)列的兩端進(jìn)行插入和刪除操作。隊(duì)列的一端稱為隊(duì)尾(rear),另一端稱為隊(duì)頭(front)。新元素總是插入在隊(duì)列的隊(duì)尾,而從隊(duì)列中刪除元素時(shí)則總是刪除隊(duì)頭元素。 由于隊(duì)列具有FIFO特性,因此隊(duì)列通常用

    2024年02月09日
    瀏覽(21)
  • 0072-基于單片機(jī)的排隊(duì)叫號(hào)仿真設(shè)計(jì)

    0072-基于單片機(jī)的排隊(duì)叫號(hào)仿真設(shè)計(jì)

    1、采用51/52單片機(jī)作為主控芯片; 2、采用兩個(gè)1602液晶,各顯示取號(hào)和叫號(hào)信息; 3、共四個(gè)窗口,每個(gè)窗口均有單獨(dú)叫號(hào)鍵及重復(fù)叫號(hào)鍵,叫號(hào)時(shí)會(huì)有鈴聲提醒; 4、有一個(gè)取號(hào)鍵,液晶顯示您的號(hào)碼及等待人數(shù); ? 采用Proteus作為仿真設(shè)計(jì)工具。Proteus是一款著名的EDA工具(

    2024年02月19日
    瀏覽(19)
  • JavaScript中的CRUD操作指南示例 - 用DHTMLX創(chuàng)建醫(yī)院管理系統(tǒng)!

    JavaScript中的CRUD操作指南示例 - 用DHTMLX創(chuàng)建醫(yī)院管理系統(tǒng)!

    創(chuàng)建、讀取、更新和刪除(CRUD)是現(xiàn)代web和移動(dòng)應(yīng)用程序執(zhí)行的四個(gè)基本功能。然而這些函數(shù)是如何產(chǎn)生的,它們到底是做什么的? 在本文中,我們將簡要介紹CRUD的含義以及它何時(shí)被引入編程的。文中我們還將使用用于醫(yī)院管理的JavaScript演示應(yīng)用程序,展示如何使用DHTMLX小部

    2024年02月10日
    瀏覽(22)
  • 代駕預(yù)約小程序系統(tǒng)源碼 :提起預(yù)約,避免排隊(duì) 帶完整搭建教程

    代駕預(yù)約小程序系統(tǒng)源碼 :提起預(yù)約,避免排隊(duì) 帶完整搭建教程

    大家好啊,又到羅峰來給大家分享好用的源碼系統(tǒng)的時(shí)間了。今天要給大家分享的第一款代駕預(yù)約小程序源碼系統(tǒng)。傳統(tǒng)的代駕服務(wù)中,用戶往往需要在酒后代駕、長途駕駛等場景下,面對(duì)排隊(duì)等待代駕司機(jī)空閑時(shí)間的繁瑣過程。這不僅浪費(fèi)了用戶的時(shí)間和精力,也影響了代

    2024年02月03日
    瀏覽(22)
  • ideaSSM醫(yī)院掛號(hào)管理系統(tǒng)VS開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計(jì)算機(jī)網(wǎng)頁源碼maven項(xiàng)目

    ideaSSM醫(yī)院掛號(hào)管理系統(tǒng)VS開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計(jì)算機(jī)網(wǎng)頁源碼maven項(xiàng)目

    一、源碼特點(diǎn) ? SSM醫(yī)院掛號(hào)管理系統(tǒng)是一套完善的完整醫(yī)院類型系統(tǒng),結(jié)合SSM框架和bootstrap完成本系統(tǒng)SpringMVC spring mybatis ,對(duì)理解JSP java編程開發(fā)語言有幫助系統(tǒng)采用SSM框架(MVC模式 開發(fā)),系統(tǒng)具有完整的源代碼和數(shù)據(jù)庫,系統(tǒng)主要采用B/S模式開發(fā)。 ideaSSM醫(yī)院掛號(hào)管理系

    2024年02月03日
    瀏覽(19)
  • 案例精選|成武縣人民醫(yī)院“流量探針部署”及“智慧云+端安全運(yùn)營服務(wù)”項(xiàng)目

    案例精選|成武縣人民醫(yī)院“流量探針部署”及“智慧云+端安全運(yùn)營服務(wù)”項(xiàng)目

    成武縣人民醫(yī)院始建于1949年10月,是一所集醫(yī)療、教學(xué)、科研、預(yù)防、保健、康復(fù)于一體的現(xiàn)代化三級(jí)綜合醫(yī)院。院區(qū)占地270畝,建筑面積23.1萬平方米,設(shè)有55個(gè)臨床醫(yī)技科室,開放床位1700張,年門急診量超50萬人次。醫(yī)院先后獲評(píng)“國家愛嬰醫(yī)院”、“國家級(jí)節(jié)約型公共機(jī)

    2024年02月03日
    瀏覽(20)
  • vs+opencv+QT調(diào)試程序

    vs+opencv+QT調(diào)試程序

    2021-09-28vs+opencv+QT簡單的圖像處理工程_opencv 用qt還是vs_二兩山梔子的博客-CSDN博客 【vs+opencv+Qt搭建簡單的圖像處理界面】https://www.bilibili.com/video/BV16T411j7XQ?vd_source=0aeb782d0b9c2e6b0e0cdea3e2121eba 調(diào)試過程一直出現(xiàn)這種問題,后來改DEBUG為release就可以了 mainwindow.hpp mainwindow.cpp

    2024年02月10日
    瀏覽(22)
  • 基于微信小程序的醫(yī)院掛號(hào)系統(tǒng)小程序

    基于微信小程序的醫(yī)院掛號(hào)系統(tǒng)小程序

    文末聯(lián)系獲取源碼 開發(fā)語言:Java 框架:ssm JDK版本:JDK1.8 服務(wù)器:tomcat7 數(shù)據(jù)庫:mysql 5.7/8.0 數(shù)據(jù)庫工具:Navicat11 開發(fā)軟件:eclipse/myeclipse/idea Maven包:Maven3.3.9 瀏覽器:谷歌瀏覽器 小程序框架:uniapp 小程序開發(fā)軟件:HBuilder X 小程序運(yùn)行軟件:微信開發(fā)者 進(jìn)入21世紀(jì)網(wǎng)絡(luò)和

    2024年02月09日
    瀏覽(19)
  • Qt中實(shí)時(shí)更新UI程序示例

    Qt中實(shí)時(shí)更新UI程序示例

    Qt在運(yùn)行時(shí)會(huì)開啟一個(gè)主線程,如果沒有開啟工作線程的話,所有界面上的操作都是在主線程,包括更新界面或者處理數(shù)據(jù)等操作。我們都知道如果處理數(shù)據(jù)比較多的話,最好是在單獨(dú)開啟一個(gè)線程來處理數(shù)據(jù),這樣就不會(huì)影響主線程的運(yùn)行。 Windows系統(tǒng):Windows10 Qt版本:Qt

    2023年04月08日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包