From c41c5165026cc60e951f86cf54ba3ab3c5ba23ab Mon Sep 17 00:00:00 2001 From: HOJI Date: Mon, 11 Sep 2023 15:56:01 +0800 Subject: [PATCH] updata --- Hotel_Management.pro | 6 ++ Hotel_Management.pro.user | 2 +- administration.cpp | 11 ++- administration.h | 1 + administration.ui | 27 +++--- cellstatus.cpp | 9 ++ cellstatus.h | 3 + checkbtn.cpp | 41 ++++++++ checkbtn.h | 33 +++++++ checkbtn.ui | 48 ++++++++++ customer.ui | 8 +- customerinfo.cpp | 22 +++++ customerinfo.h | 28 ++++++ customerinfo.ui | 24 +++++ login.cpp | 1 + login.ui | 12 +++ orderoom.ui | 3 + receptionist.cpp | 10 +- receptionist.ui | 13 ++- registers.cpp | 192 ++++++++++++++++++++++++++------------ registers.h | 2 + 21 files changed, 415 insertions(+), 81 deletions(-) create mode 100644 checkbtn.cpp create mode 100644 checkbtn.h create mode 100644 checkbtn.ui create mode 100644 customerinfo.cpp create mode 100644 customerinfo.h create mode 100644 customerinfo.ui diff --git a/Hotel_Management.pro b/Hotel_Management.pro index 09dcbb5..d3ea90a 100644 --- a/Hotel_Management.pro +++ b/Hotel_Management.pro @@ -11,7 +11,9 @@ CONFIG += c++17 SOURCES += \ administration.cpp \ cellstatus.cpp \ + checkbtn.cpp \ customer.cpp \ + customerinfo.cpp \ main.cpp \ login.cpp \ orderoom.cpp \ @@ -22,7 +24,9 @@ SOURCES += \ HEADERS += \ administration.h \ cellstatus.h \ + checkbtn.h \ customer.h \ + customerinfo.h \ login.h \ orderoom.h \ receptionist.h \ @@ -32,7 +36,9 @@ HEADERS += \ FORMS += \ administration.ui \ cellstatus.ui \ + checkbtn.ui \ customer.ui \ + customerinfo.ui \ login.ui \ orderoom.ui \ receptionist.ui \ diff --git a/Hotel_Management.pro.user b/Hotel_Management.pro.user index 57fd86e..2aac369 100644 --- a/Hotel_Management.pro.user +++ b/Hotel_Management.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/administration.cpp b/administration.cpp index a0c4f3c..696add3 100644 --- a/administration.cpp +++ b/administration.cpp @@ -1,7 +1,6 @@ #include "administration.h" -#include "qmessagebox.h" #include "ui_administration.h" -#include +#include "registers.h" administration::administration(QWidget *parent) : QMainWindow(parent), @@ -37,6 +36,7 @@ void administration::paintEvent(QPaintEvent*) ui->Search->setEnabled(false);//初始退订按钮灰色 ui->AcounTable->hide(); ui->HotelTable->hide(); + on_Hman_clicked(); } void administration::init_account(){ @@ -91,7 +91,10 @@ void administration::on_Aman_clicked() void administration::on_Add_clicked() { if(tool == 0){ - int cols=ui->AcounTable->columnCount(); + registers *reg = new registers; + reg->settype(2); + reg->show(); + /*int cols=ui->AcounTable->columnCount(); int rows=ui->AcounTable->rowCount(); qDebug()<AcounTable->insertRow(rows); @@ -106,7 +109,7 @@ void administration::on_Add_clicked() query.bindValue(":n",QRandomGenerator::global()->bounded(10000));//随机数 一万以内正整数 query.exec(); QMessageBox::information(this,tr("提示"),("添加成功")); - init_account(); + init_account();*/ } else if(tool == 1){ diff --git a/administration.h b/administration.h index bfc735a..dfc1ef9 100644 --- a/administration.h +++ b/administration.h @@ -15,6 +15,7 @@ #include #include #include +#include namespace Ui { class administration; diff --git a/administration.ui b/administration.ui index 48d337b..2c8650c 100644 --- a/administration.ui +++ b/administration.ui @@ -17,8 +17,8 @@ - 50 - -20 + 0 + 0 1920 1080 @@ -29,9 +29,9 @@ - -10 - -20 - 531 + 20 + -10 + 831 321 @@ -59,7 +59,8 @@ - background-color: rgb(85, 170, 255); + background-color: rgb(85, 170, 255); +border-radius:15px; 客房管理 @@ -80,7 +81,8 @@ - background-color: rgb(85, 170, 255); + background-color: rgb(85, 170, 255); +border-radius:15px; 账号管理 @@ -145,7 +147,8 @@ color: rgb(255, 255, 255); - background-color: rgb(85, 170, 255); + background-color: rgb(85, 170, 255); +border-radius:15px; 更改 @@ -187,7 +190,8 @@ color: rgb(255, 255, 255); - background-color: rgb(85, 170, 255); + background-color: rgb(85, 170, 255); +border-radius:15px; 添加 @@ -208,7 +212,8 @@ color: rgb(255, 255, 255); - background-color: rgb(85, 170, 255); + background-color: rgb(85, 170, 255); +border-radius:15px; 删除 @@ -276,7 +281,7 @@ color: rgb(255, 255, 255); 0 0 2079 - 18 + 17 diff --git a/cellstatus.cpp b/cellstatus.cpp index 5a540b9..d82ed63 100644 --- a/cellstatus.cpp +++ b/cellstatus.cpp @@ -1,6 +1,7 @@ #include "cellstatus.h" #include "ui_cellstatus.h" + cellstatus::cellstatus(QWidget *parent) : QWidget(parent), ui(new Ui::cellstatus) @@ -35,6 +36,10 @@ void cellstatus::setbtn(){ ui->pushButton_2->setEnabled(isused); } +void cellstatus::setcbtn(checkbtn* cbtn){ + this->cbtn = cbtn; +} + void cellstatus::setroomNum(int roomNum) { this->roomNum = roomNum; @@ -75,6 +80,8 @@ void cellstatus::on_pushButton_2_clicked() QMessageBox::information(this," 预定信息 "," 退房成功 "); ui->pushButton->setEnabled(true); ui->pushButton_2->setEnabled(false); + cbtn->setisused(false); + cbtn->setbtn(); emit flash(); } @@ -83,5 +90,7 @@ void cellstatus::onordersuccess() QMessageBox::information(this,"预定信息","订房成功"); ui->pushButton->setEnabled(false); ui->pushButton_2->setEnabled(true); + cbtn->setisused(true); + cbtn->setbtn(); emit flash(); } diff --git a/cellstatus.h b/cellstatus.h index a948293..6f461a2 100644 --- a/cellstatus.h +++ b/cellstatus.h @@ -7,6 +7,7 @@ #include #include #include +#include "checkbtn.h" namespace Ui { class cellstatus; @@ -23,6 +24,7 @@ public: void setDB(QSqlDatabase db); void setisused(bool i); void setbtn(); + void setcbtn(checkbtn* cbtn); private slots: void on_pushButton_clicked(); @@ -35,6 +37,7 @@ private: Ui::cellstatus *ui; int roomNum; orderoom *m_order; + checkbtn *cbtn; QSqlDatabase db; bool isused; signals: diff --git a/checkbtn.cpp b/checkbtn.cpp new file mode 100644 index 0000000..4042839 --- /dev/null +++ b/checkbtn.cpp @@ -0,0 +1,41 @@ +#include "checkbtn.h" +#include "ui_checkbtn.h" +#include "customerinfo.h" +#include + +checkbtn::checkbtn(QWidget *parent) : + QWidget(parent), + ui(new Ui::checkbtn) +{ + ui->setupUi(this); +} + +checkbtn::~checkbtn() +{ + delete ui; +} + +void checkbtn::setroomNum(int roomNum){ + this->roomNum = roomNum; +} + +void checkbtn::setDB(QSqlDatabase db){ + this->db = db; +} + +void checkbtn::on_pushButton_clicked() +{ + customerinfo *info = new customerinfo; + info->setDB(db); + info->setroomNum(roomNum); + info->show(); +} + +void checkbtn::setisused(bool i){ + isused = i; +} + +void checkbtn::setbtn(){ + ui->pushButton->setEnabled(!isused); + qDebug()<<"ssss"; +} diff --git a/checkbtn.h b/checkbtn.h new file mode 100644 index 0000000..45f85e6 --- /dev/null +++ b/checkbtn.h @@ -0,0 +1,33 @@ +#ifndef CHECKBTN_H +#define CHECKBTN_H + +#include +#include + +namespace Ui { +class checkbtn; +} + +class checkbtn : public QWidget +{ + Q_OBJECT + +public: + explicit checkbtn(QWidget *parent = nullptr); + ~checkbtn(); + void setroomNum(int roomNum); + void setDB(QSqlDatabase db); + void setisused(bool i); + void setbtn(); + +private slots: + void on_pushButton_clicked(); + +private: + Ui::checkbtn *ui; + int roomNum; + QSqlDatabase db; + bool isused; +}; + +#endif // CHECKBTN_H diff --git a/checkbtn.ui b/checkbtn.ui new file mode 100644 index 0000000..8ea5c95 --- /dev/null +++ b/checkbtn.ui @@ -0,0 +1,48 @@ + + + checkbtn + + + + 0 + 0 + 400 + 300 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 12 + + + + 查看 + + + + + + + + diff --git a/customer.ui b/customer.ui index f1af272..1acc359 100644 --- a/customer.ui +++ b/customer.ui @@ -99,6 +99,9 @@ 14 + + border-radius:15px; + @@ -188,7 +191,8 @@ color: rgb(255, 255, 255); - background-color: rgb(108, 162, 162); + border-radius:15px; +background-color: rgb(108, 162, 162); color: rgb(255, 255, 255); @@ -264,7 +268,7 @@ background-color: rgba(0, 0, 0, 0); 0 0 1920 - 18 + 17 diff --git a/customerinfo.cpp b/customerinfo.cpp new file mode 100644 index 0000000..80527c6 --- /dev/null +++ b/customerinfo.cpp @@ -0,0 +1,22 @@ +#include "customerinfo.h" +#include "ui_customerinfo.h" + +customerinfo::customerinfo(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::customerinfo) +{ + ui->setupUi(this); +} + +customerinfo::~customerinfo() +{ + delete ui; +} + +void customerinfo::setroomNum(int roomNum){ + this->roomNum = roomNum; +} + +void customerinfo::setDB(QSqlDatabase db){ + this->db = db; +} diff --git a/customerinfo.h b/customerinfo.h new file mode 100644 index 0000000..df1df78 --- /dev/null +++ b/customerinfo.h @@ -0,0 +1,28 @@ +#ifndef CUSTOMERINFO_H +#define CUSTOMERINFO_H + +#include +#include +#include + +namespace Ui { +class customerinfo; +} + +class customerinfo : public QMainWindow +{ + Q_OBJECT + +public: + explicit customerinfo(QWidget *parent = nullptr); + ~customerinfo(); + void setDB(QSqlDatabase db); + void setroomNum(int roomNum); + +private: + Ui::customerinfo *ui; + QSqlDatabase db; + int roomNum; +}; + +#endif // CUSTOMERINFO_H diff --git a/customerinfo.ui b/customerinfo.ui new file mode 100644 index 0000000..0b61ffd --- /dev/null +++ b/customerinfo.ui @@ -0,0 +1,24 @@ + + + + + customerinfo + + + + 0 + 0 + 800 + 600 + + + + MainWindow + + + + + + + + diff --git a/login.cpp b/login.cpp index 49dd4ce..f17b156 100644 --- a/login.cpp +++ b/login.cpp @@ -127,6 +127,7 @@ void login::on_btn_login_clicked() void login::on_btn_register_clicked() { registers *reg = new registers; + reg->settype(1); reg->show(); } diff --git a/login.ui b/login.ui index 959c172..8bb8452 100644 --- a/login.ui +++ b/login.ui @@ -62,6 +62,9 @@ 16 + + + 登录 @@ -83,6 +86,9 @@ 16 + + radius:15px; + 注册 @@ -143,6 +149,9 @@ 15 + + border-radius:15px; + @@ -158,6 +167,9 @@ 15 + + border-radius:15px; + diff --git a/orderoom.ui b/orderoom.ui index 064403e..d503af3 100644 --- a/orderoom.ui +++ b/orderoom.ui @@ -31,6 +31,9 @@ 41 + + border-radius:15px; + diff --git a/receptionist.cpp b/receptionist.cpp index 17302a3..c8fbc79 100644 --- a/receptionist.cpp +++ b/receptionist.cpp @@ -1,6 +1,7 @@ #include "receptionist.h" #include "ui_receptionist.h" #include "cellstatus.h" +#include "checkbtn.h" receptionist::receptionist(QWidget *parent) : QMainWindow(parent), @@ -73,14 +74,21 @@ void receptionist::showall(){ connect(cell,&cellstatus::flash,this,&receptionist::onflash); cell->setDB(db); cell->setroomNum(query.value(0).toInt()); + checkbtn* cbtn = new checkbtn; + cbtn->setroomNum(query.value(0).toInt()); + cbtn->setDB(db); + cell->setcbtn(cbtn); if(QString::compare(ui->tableWidget->model()->index(i,4).data().toString(),"使用")==0){ cell->setisused(true); + cbtn->setisused(true); }else{ cell->setisused(false); + cbtn->setisused(false); } cell->setbtn(); + ui->tableWidget->setCellWidget(i,7,cell); - ui->tableWidget->setCellWidget(i,6,new QPushButton("查看")); + ui->tableWidget->setCellWidget(i,6,cbtn); i++; } } diff --git a/receptionist.ui b/receptionist.ui index 69bd92b..a63729f 100644 --- a/receptionist.ui +++ b/receptionist.ui @@ -34,8 +34,8 @@ 10 20 - 711 - 181 + 1211 + 201 @@ -43,6 +43,9 @@ 70 + + Qt::LeftToRight + color: rgb(85, 255, 255); @@ -101,6 +104,9 @@ color: rgb(255, 255, 255); 14 + + border-radius:15px; + @@ -116,6 +122,9 @@ color: rgb(255, 255, 255); 12 + + + 查找 diff --git a/registers.cpp b/registers.cpp index 1d9657a..22fc780 100644 --- a/registers.cpp +++ b/registers.cpp @@ -39,58 +39,110 @@ registers::~registers() void registers::paintEvent(QPaintEvent*) { bg->resize(ui->widget->size()); + if(type==2){ + ui->label->setText("账号(工号):"); + ui->label_4->hide(); + ui->label_5->hide(); + ui->label_6->hide(); + ui->lineEdit_id->hide(); + ui->lineEdit_name->hide(); + ui->frame_2->hide(); + } +} + +void registers::settype(int i){ + type = i; } bool registers::verify(int x){ - if(x==1){//账号(手机号)判别 - if(ui->lineEdit_account->text().size()!=11){ - return false; - }else{ - QString str = ui->lineEdit_account->text(); - for(int i=0;i<11;i++){ - if(str.at(i)!='1'&&str.at(i)!='2'&&str.at(i)!='3'&&str.at(i)!='4'&&str.at(i)!='5'&&str.at(i)!='6'&&str.at(i)!='7'&&str.at(i)!='8'&&str.at(i)!='9'&&str.at(i)!='0'){ - return false; + if(type==1){ + if(x==1){//账号(手机号)判别 + if(ui->lineEdit_account->text().size()!=11){ + return false; + }else{ + QString str = ui->lineEdit_account->text(); + for(int i=0;i<11;i++){ + if(str.at(i)!='1'&&str.at(i)!='2'&&str.at(i)!='3'&&str.at(i)!='4'&&str.at(i)!='5'&&str.at(i)!='6'&&str.at(i)!='7'&&str.at(i)!='8'&&str.at(i)!='9'&&str.at(i)!='0'){ + return false; + } } + return true; } - return true; - } - }else if(x==2){//密码判别 - if(ui->lineEdit_password->text().size()<6||ui->lineEdit_password->text().size()>16){ - return false; - }else{ - QString str = ui->lineEdit_password->text(); - int num = str.size(); - for(int i=0;ilineEdit_password->text().size()<6||ui->lineEdit_password->text().size()>16){ + return false; + }else{ + QString str = ui->lineEdit_password->text(); + int num = str.size(); + for(int i=0;ilineEdit_password->text(),ui->lineEdit_password_r->text())==0){ + return true; + }else{ + return false; + } + }else if(x==4){//姓名判别 + if(ui->lineEdit_name->text().size()>14||ui->lineEdit_name->text()==NULL){ + return false; + }else{ + return true; + } + }else if(x==5){//身份证号判别 + if(ui->lineEdit_id->text().size()!=18){ + return false; + }else{ + QString str = ui->lineEdit_id->text(); + int num = str.size(); + for(int i=0;ilineEdit_password->text(),ui->lineEdit_password_r->text())==0){ - return true; }else{ return false; } - }else if(x==4){//姓名判别 - if(ui->lineEdit_name->text().size()>14||ui->lineEdit_name->text()==NULL){ - return false; - }else{ - return true; - } - }else if(x==5){//身份证号判别 - if(ui->lineEdit_id->text().size()!=18){ - return false; - }else{ - QString str = ui->lineEdit_id->text(); - int num = str.size(); - for(int i=0;ilineEdit_account->text().size()!=12){ + return false; + }else{ + QString str = ui->lineEdit_account->text(); + for(int i=0;i<12;i++){ + if(str.at(i)!='1'&&str.at(i)!='2'&&str.at(i)!='3'&&str.at(i)!='4'&&str.at(i)!='5'&&str.at(i)!='6'&&str.at(i)!='7'&&str.at(i)!='8'&&str.at(i)!='9'&&str.at(i)!='0'){ + return false; + } } + return true; } - return true; + }else if(x==2){//密码判别 + if(ui->lineEdit_password->text().size()<6||ui->lineEdit_password->text().size()>16){ + return false; + }else{ + QString str = ui->lineEdit_password->text(); + int num = str.size(); + for(int i=0;ilineEdit_password->text(),ui->lineEdit_password_r->text())==0){ + return true; + }else{ + return false; + } + }else{ + return false; } }else{ return false; @@ -99,31 +151,51 @@ bool registers::verify(int x){ void registers::on_pushButton_clicked() { - if(!verify(1)){ - QMessageBox::warning(this, tr("提示"), tr("请检查账号是否符合规范,目前仅限中国大陆用户注册,手机号应为+86 11位号码!")); - }else if(!verify(2)){ - QMessageBox::warning(this, tr("提示"), tr("请检查密码是否符合规范,密码应由6-16位字母或数字组成!")); - }else if(!verify(3)){ - QMessageBox::warning(this, tr("提示"), tr("两次输入密码不相同,请重新输入!")); - }else if(!verify(4)){ - QMessageBox::warning(this, tr("提示"), tr("姓名字数为空或超出,请重新输入!")); - }else if(!verify(5)){ - QMessageBox::warning(this, tr("提示"), tr("请检查身份证信息是否符合规范并重新输入!\n请注意X为大写字母")); + if(type== 1){ + if(!verify(1)){ + QMessageBox::warning(this, tr("提示"), tr("请检查账号是否符合规范,目前仅限中国大陆用户注册,手机号应为+86 11位号码!")); + }else if(!verify(2)){ + QMessageBox::warning(this, tr("提示"), tr("请检查密码是否符合规范,密码应由6-16位字母或数字组成!")); + }else if(!verify(3)){ + QMessageBox::warning(this, tr("提示"), tr("两次输入密码不相同,请重新输入!")); + }else if(!verify(4)){ + QMessageBox::warning(this, tr("提示"), tr("姓名字数为空或超出,请重新输入!")); + }else if(!verify(5)){ + QMessageBox::warning(this, tr("提示"), tr("请检查身份证信息是否符合规范并重新输入!\n请注意X为大写字母")); + }else{ + sign_in(); + QMessageBox::information(this, tr("提示"), tr("注册成功!")); + this->hide(); + } }else{ - sign_in(); - QMessageBox::information(this, tr("提示"), tr("注册成功!")); - this->hide(); + if(!verify(1)){ + QMessageBox::warning(this, tr("提示"), tr("请检查账号是否符合规范,账号应为12位纯数字工号!")); + }else if(!verify(2)){ + QMessageBox::warning(this, tr("提示"), tr("请检查密码是否符合规范,密码应由6-16位字母或数字组成!")); + }else if(!verify(3)){ + QMessageBox::warning(this, tr("提示"), tr("两次输入密码不相同,请重新输入!")); + }else{ + sign_in(); + QMessageBox::information(this, tr("提示"), tr("注册成功!")); + this->hide(); + } } } void registers::sign_in(){ - QString gender; - if(ui->radioButton_M->isChecked()){ - gender = "男"; + if(type==1){ + QString gender; + if(ui->radioButton_M->isChecked()){ + gender = "男"; + }else{ + gender = "女"; + } + QString sql = QString("INSERT INTO customer VALUES('%1','%2','%3','%4','%5',NULL);").arg(ui->lineEdit_account->text()).arg(ui->lineEdit_password->text()).arg(ui->lineEdit_name->text()).arg(gender).arg(ui->lineEdit_id->text()); + QSqlQuery query; + query.exec(sql); }else{ - gender = "女"; + QString sql = QString("INSERT INTO employee VALUES('%1','%2');").arg(ui->lineEdit_account->text()).arg(ui->lineEdit_password->text()); + QSqlQuery query; + query.exec(sql); } - QString sql = QString("INSERT INTO customer VALUES('%1','%2','%3','%4','%5',NULL);").arg(ui->lineEdit_account->text()).arg(ui->lineEdit_password->text()).arg(ui->lineEdit_name->text()).arg(gender).arg(ui->lineEdit_id->text()); - QSqlQuery query; - query.exec(sql); } diff --git a/registers.h b/registers.h index d26df2e..82946cb 100644 --- a/registers.h +++ b/registers.h @@ -20,6 +20,7 @@ class registers : public QMainWindow public: explicit registers(QWidget *parent = nullptr); ~registers(); + void settype(int i); protected: void paintEvent(QPaintEvent*); @@ -33,6 +34,7 @@ private: Ui::registers *ui; QLabel *bg; QSqlDatabase db; + int type; }; #endif // REGISTERS_H