#include "admcustomer.h"
#include "ui_admcustomer.h"
#include <QFileDialog>
#include <QMessageBox>
#include <QSql>
#include <QSqlQuery>
#include "admdialog1.h"
void admcustomer::openTableA()
{
qryModel->setQuery("SELECT RoomNo,Name,Gender,PhoneNo,Square,RoomType,Number,"
"Time,ReserveNo,Price,TotalPrice FROM dingdan ORDER BY RoomNo");
if(qryModel->lastError().isValid())
{
QMessageBox::information(this,"error","error info:"+qryModel->lastError().text());
return;
}
qryModel->setHeaderData(0,Qt::Horizontal,"房间号");
qryModel->setHeaderData(1,Qt::Horizontal,"姓名");
qryModel->setHeaderData(2,Qt::Horizontal,"性别");
qryModel->setHeaderData(3,Qt::Horizontal,"手机号");
qryModel->setHeaderData(4,Qt::Horizontal,"房间面积(m²)");
qryModel->setHeaderData(5,Qt::Horizontal,"房间类型");
qryModel->setHeaderData(6,Qt::Horizontal,"订单号");
qryModel->setHeaderData(7,Qt::Horizontal,"预订时间");
qryModel->setHeaderData(8,Qt::Horizontal,"预订天数");
qryModel->setHeaderData(9,Qt::Horizontal,"价格");
qryModel->setHeaderData(10,Qt::Horizontal,"付款总额");
ui->tableView->resizeColumnsToContents();
ui->tableView->horizontalHeader()->setStretchLastSection(true);
ui->actOpenDB->setEnabled(false);
ui->actRecInsert->setEnabled(true);
ui->actRecDelete->setEnabled(true);
ui->actRecEdit->setEnabled(true);
ui->actScan->setEnabled(true);
ui->groupBoxFilter->setEnabled(true);
}
void admcustomer::getFileNames()
{
}
admcustomer::admcustomer(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::admcustomer)
{
ui->setupUi(this);
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("bishe.db");//数据库名称
db.open();
if(!db.open())
{
QMessageBox::information(this,tr("错误"),tr("打开数据库失败!"));
return;
}
qryModel=new QSqlQueryModel;
theSelection=new QItemSelectionModel(qryModel);
ui->tableView->setModel(qryModel);
ui->tableView->setSelectionModel(theSelection);
ui->tableView->setAlternatingRowColors(true);
DB=QSqlDatabase::addDatabase("QSQLITE");
DB.setDatabaseName("bishe.db");
if(!DB.open())
{
QMessageBox::warning(this,"错误","打开数据库失败");
return;
}
qryModel->setQuery("SELECT RoomNo,Name,Gender,PhoneNo,Square,RoomType,Number,"
"Time,ReserveNo,Price,TotalPrice,RoomState FROM dingdan ORDER BY RoomNo");
if(qryModel->lastError().isValid())
{
QMessageBox::information(this,"error","error info:"+qryModel->lastError().text());
return;
}
qryModel->setHeaderData(0,Qt::Horizontal,"房间号");
qryModel->setHeaderData(1,Qt::Horizontal,"姓名");
qryModel->setHeaderData(2,Qt::Horizontal,"性别");
qryModel->setHeaderData(3,Qt::Horizontal,"手机号");
qryModel->setHeaderData(4,Qt::Horizontal,"房间面积(m²)");
qryModel->setHeaderData(5,Qt::Horizontal,"房间类型");
qryModel->setHeaderData(6,Qt::Horizontal,"订单号");
qryModel->setHeaderData(7,Qt::Horizontal,"预订时间");
qryModel->setHeaderData(8,Qt::Horizontal,"预订天数");
qryModel->setHeaderData(9,Qt::Horizontal,"价格");
qryModel->setHeaderData(10,Qt::Horizontal,"付款总额");
qryModel->setHeaderData(11,Qt::Horizontal,"预订状态");
ui->tableView->resizeColumnsToContents();
ui->tableView->horizontalHeader()->setStretchLastSection(true);
ui->actRecDelete->setEnabled(true);
ui->actRecInsert->setEnabled(true);
ui->actRecEdit->setEnabled(true);
ui->groupBoxFilter->setEnabled(true);
connect(ui->tableView,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(on_TableViewDoubleClicked(QModelIndex)));
//房间预订情况
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("bishe.db");//数据库名称
db.open();
if(!db.open())
{
QMessageBox::information(this,tr("错误"),tr("打开数据库失败!"));
return;
}
QSqlQuery query;
float size=0,totalSize=0;
query.exec("select COUNT(RoomState) From dingdan WHERE RoomState='已预订'");
// 获取查询结果中记录的个数
query.next();
size=query.value(0).toInt();
query.exec("select COUNT(RoomNo) From dingdan");
query.next();
totalSize=query.value(0).toInt();
qDebug()<<size;
qDebug()<<totalSize;
ui->progressBar->setValue(size/totalSize*100);
//新加的
}
admcustomer::~admcustomer()
{
delete ui;
}
void admcustomer::on_actOpenDB_triggered()
{
QString aFile=QFileDialog::getOpenFileName(this,"选择数据库","","SQLITE数据库(*.db *.db3)");
if(aFile.isEmpty()) return;
DB=QSqlDatabase::addDatabase("QSQLITE");
DB.setDatabaseName(aFile);
if(!DB.open())
{
QMessageBox::warning(this,"错误","打开数据库失败");
return;
}
openTableA();
}
void admcustomer::on_actRecInsert_triggered()
{
QSqlQuery query;
query.exec("select * from dingdan where RoomNo=-1");
QSqlRecord curRec=query.record();
admdialog1 *dataDlg=new admdialog1;
Qt::WindowFlags flags=dataDlg->windowFlags();
dataDlg->setWindowFlags(flags|Qt::MSWindowsFixedSizeDialogHint);//固定大小
dataDlg->setInsertRecord(curRec);
int ret=dataDlg->exec();
if(ret==QDialog::Accepted)
{
QSqlRecord recData=dataDlg->getRecordData();
query.prepare("INSERT INTO dingdan (RoomNo,Name,Gender,PhoneNo,Square,RoomType,Number,"
"Time,ReserveNo,Price,TotalPrice) "
"VALUES(:RoomNo,:Name,:Gender,:PhoneNo,:Square,:RoomType,:Number,"
":Time,:ReserveNo,:Price,:TotalPrice)");
query.bindValue(":RoomNo",recData.value("RoomNo"));
query.bindValue(":Name",recData.value("Name"));
query.bindValue(":Gender",recData.value("Gender"));
query.bindValue(":PhoneNo",recData.value("PhoneNo"));
query.bindValue(":Square",recData.value("Square"));
query.bindValue(":RoomType",recData.value("RoomType"));
query.bindValue(":Number",recData.value("Number"));
query.bindValue(":Time",recData.value("Time"));
query.bindValue(":ReserveNo",recData.value("ReserveNo"));
query.bindValue(":Price",recData.value("Price"));
query.bindValue(":TotalPrice",recData.value("TotalPrice"));
if(!query.exec())
{
QMessageBox::critical(this,"err","information:"+query.lastError().text());
}
else {
// qryModel->setQuery("SELECT RoomNo,Name,Gender,PhoneNo,Square,RoomType,Number,"
// "Time,ReserveNo,Price,,TotalPrice From dingdan order by RoomNo");
QString sqlstr=qryModel->query().executedQuery();
qryModel->setQuery(sqlstr);
}
}
delete dataDlg;
}
void admcustomer::on_actRecDelete_triggered()
{
//删除当前记录
int curRecNo=theSelection->currentIndex().row();
QSqlRecord curRec=qryModel->record(curRecNo); //获取当前记录
if (curRec.isEmpty()) //当前为空记录
return;
int RoomNo=curRec.value("RoomNo").toInt();//获取房间号
QSqlQuery query;
query.prepare("delete from dingdan where RoomNo = :ID");
query.bindValue(":ID",RoomNo);
if (!query.exec())
QMessageBox::critical(this, "错误", "删除记录出现错误\n"+query.lastError().text(),
QMessageBox::Ok,QMessageBox::NoButton);
else //插入,删除记录后需要重新设置SQL语句查询
{
QString sqlStr
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本管理系统使用Qt软件作为开发工具,并结合SQlite这种轻型的数据库,开发了一套酒店管理系统,其中包含:1.登录注册模块;2.管理员端的客房信息管理模块、客户信息模块、订单管理模块、订餐系统相关模块、客户留言查看模块;3.顾客端的预订服务模块、点餐模块、留言模块。在设计过程中还根据实际使用场景,对应用程序的实现逻辑进行了相应的优化,提升了用户体验。此外,还进行了统一的UI设计以及样式设计,提升了应用界面的舒适度。本系统使用起来简约便捷,可以方便管理员和用户的操作,节约了操作时间,提升了便利性。
资源推荐
资源详情
资源评论
收起资源包目录
基于QT的酒店管理系统设计 (268个子文件)
616.bmp 1KB
314.bmp 1KB
316.bmp 1KB
320.bmp 1KB
618.bmp 1KB
300.bmp 1KB
103.bmp 1KB
exit.bmp 1KB
706.bmp 1KB
812.bmp 1KB
628.bmp 1KB
ubdo.bmp 1KB
318.bmp 1KB
delfold1.bmp 1KB
312.bmp 1KB
107.bmp 1KB
310.bmp 1KB
save1.bmp 1KB
306.bmp 1KB
326.bmp 1KB
304.bmp 1KB
124.bmp 1KB
delete1.bmp 1KB
630.bmp 1KB
308.bmp 1KB
324.bmp 1KB
704.bmp 1KB
open3.bmp 1KB
322.bmp 1KB
up.bmp 578B
admcustomer.cpp 16KB
admmanage.cpp 10KB
admfood.cpp 7KB
admroom.cpp 7KB
cusfood.cpp 5KB
admin.cpp 5KB
cusreserve.cpp 5KB
admdialog1.cpp 3KB
logregistration.cpp 2KB
admdialog.cpp 2KB
cusreserveinfo.cpp 2KB
login.cpp 2KB
admlivestate.cpp 2KB
admfoodorder.cpp 2KB
admroomdialog.cpp 1KB
admcomment.cpp 1KB
cuscomment.cpp 1KB
main.cpp 876B
customer.cpp 771B
admreserve.cpp 233B
admorder.cpp 219B
lightblue.css 16KB
blacksoft.css 16KB
flatgray.css 16KB
bishe.db 32KB
admcustomer.h 1KB
admfood.h 1KB
admroom.h 1KB
admin.h 798B
admmanage.h 785B
cusreserve.h 666B
admcomment.h 584B
admdialog.h 550B
admfoodorder.h 547B
cusfood.h 532B
admroomdialog.h 519B
admdialog1.h 497B
customer.h 421B
logregistration.h 400B
cusreserveinfo.h 393B
login.h 373B
admlivestate.h 369B
cuscomment.h 367B
admreserve.h 313B
admorder.h 297B
00.JPG 1KB
Font Awesome Cheatsheet.png 968KB
btn_ok.png 2KB
btn_close.png 2KB
msg_question.png 2KB
zhucedenglu.png 2KB
tuichu_1.png 2KB
xinxi.png 2KB
shipin.png 2KB
exit.png 2KB
caidanlan-kehu-kehulianxiren.png 2KB
tuichudenglu_2.png 2KB
customer.png 2KB
radiobutton_checked_disable.png 2KB
radiobutton_checked_disable.png 2KB
radiobutton_checked_disable.png 2KB
msg_info.png 2KB
radiobutton_checked.png 1KB
radiobutton_checked.png 1KB
radiobutton_checked.png 1KB
exit-full.png 1KB
radiobutton_unchecked_disable.png 1KB
radiobutton_unchecked_disable.png 1KB
radiobutton_unchecked_disable.png 1KB
tuichudenglu_1.png 1KB
共 268 条
- 1
- 2
- 3
资源评论
&_&
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Map2ShpPro-Demo.zip
- vue3 的 main.ts 文件,包含了 elementui-plus 注册,icon 全局注册等常用注册
- Socket通讯验证工具 可验证本机端口是否被占用 验证服务端端口是否开通或可访问 查看服务端与客户端的socket发送信息
- 宠物购物网站代码,功能有购物功能,留言板功能等
- PCB制图3d元件库,适用于ALTIUM软件
- PLC资源程序: PLC程序,电梯实用程序,多层复制,自动扶梯
- 利用gTTS或ChatTTS实现文本转语音
- 2Kw直驱电机 2Kw直驱电机
- 微软Office2007官方精简版SP2
- 三层别墅图纸编号D099-三层-13.80&10.40米-效果图.dwg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功