JLU—Restaurant~吉大餐厅

项目模块介绍:

1.登录页面

2.前台或选桌页面

3.点餐页面

4.结算页面

5.后厨端页面

具体步骤:

登录页面:基于数据库sqlite实现和UI的注册登录页面,必须先注册后登录,用户信息存储在user.db中。

必须先注册后登录否则会出现如下页面:

注册后的数据都存在user.db里,生成的db文件一般不在工程文件下,而在一个同级的build文件下,可以通过Navicat打开实时查看,下面就是我注册过的用户名,只有这些用户才能登入。

登录代码:

#include "logindialog.h"
#include "restmap.h"
#include "ui_logindialog.h"#include <QDialogButtonBox>
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QPixmap>LoginDialog::LoginDialog(QWidget *parent) ://构造函数QDialog(parent),ui(new Ui::LoginDialog)
{ui->setupUi(this);//设置背景this->setStyleSheet("QWidget {background-image:url(:/new/bj/19.png)}");
}LoginDialog::~LoginDialog()//析构函数
{delete ui;
}void LoginDialog::on_pushButton_clicked()
{//添加数据库驱动QSqlDatabase db;if(QSqlDatabase::contains("qt_sql_default_connection"))//默认的连接名是否存在db = QSqlDatabase::database("qt_sql_default_connection");else //默认连接名不存在,头次连接db = QSqlDatabase::addDatabase("QSQLITE");//设置数据库名称db.setDatabaseName("user.db");//打开数据库if(!db.open()){//打开失败QMessageBox::critical(this, "错误", "数据库访问错误!");return;}//以下执行相关sql语句QSqlQuery query;//判断user表是否存在if(!IsTableExist(query, "user")){//        //新建user表,id设置为主键
//        query.exec("create table user(_id INTEGER PRIMARY KEY AUTOINCREMENT, username varchar, password varchar, name varchar)");QMessageBox::critical(this, "错误", "没有注册用户,请先注册再登录!");return;}//查找用户名及密码query.exec("select * from user where username='" + ui->lineEdit->text() + "' and password='" + ui->lineEdit_2->text() + "'");if(query.next()){RestMap *m = new RestMap();m->show();  //跳到RestMap页面this->hide();}else{QMessageBox::critical(this, "错误", "没有注册用户,请先注册再登录!");}
}void LoginDialog::on_pushButton_2_clicked()//注册用户
{QDialog dialog(this);QFormLayout layout(&dialog);QLabel usernameLabel(&dialog);usernameLabel.setText("用户名");QLabel passwordLabel(&dialog);passwordLabel.setText("密码");QLabel nameLabel(&dialog);nameLabel.setText("姓名");QLineEdit usernameLineEdit(&dialog);QLineEdit passwordLineEdit(&dialog);QLineEdit nameLineEdit(&dialog);QDialogButtonBox box(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, &dialog);layout.addRow(&usernameLabel, &usernameLineEdit);layout.addRow(&passwordLabel, &passwordLineEdit);layout.addRow(&nameLabel, &nameLineEdit);layout.addRow(&box);connect(&box, SIGNAL(accepted()), &dialog, SLOT(accept()));connect(&box, SIGNAL(rejected()), &dialog, SLOT(reject()));if(dialog.exec() == QDialog::Accepted){//添加数据库驱动QSqlDatabase db;if(QSqlDatabase::contains("qt_sql_default_connection"))//默认的连接名是否存在db = QSqlDatabase::database("qt_sql_default_connection");else //默认连接名不存在,头次连接db = QSqlDatabase::addDatabase("QSQLITE");//设置数据库名称db.setDatabaseName("user.db");//打开数据库if(!db.open()){QMessageBox::critical(this, "错误", "数据库访问错误!");return;}//以下执行相关sql语句QSqlQuery query;//判断user表是否存在if(!IsTableExist(query, "user")){//新建user表,id设置为主键query.exec("create table user(_id INTEGER PRIMARY KEY AUTOINCREMENT, username varchar, password varchar, name varchar)");}// 添加记录query.exec("insert into user values(null,'" + usernameLineEdit.text() + "','" + passwordLineEdit.text() + "','" + nameLineEdit.text() + "')");}
}
bool LoginDialog::IsTableExist(QSqlQuery &query,QString table) //判断user表是否存在
{QString sql = QString("select * from sqlite_master where name='%1'").arg(table);query.exec(sql);return query.next();
}

前台(选桌)页面:可以实时观看餐桌使用情况,空闲的餐桌才能点击使用,点击处于使用中餐桌将弹窗告知,并再次选桌。


这里有一个细节,点击空闲的餐桌后,餐桌会变成使用中,我是过修改setText函数修改push_button中的字符串实现的。

//截取餐桌状态QString str = ui->pushButton_1->text().section('\n',1,1);if(str == tr("空闲"))//下单{//更改餐桌状态ui->pushButton_1->setText("一号桌\n使用");QTimer *timer = new QTimer(this);connect(timer, SIGNAL(timeout()), this, SLOT(update()));timer->start(5000);Menu* m = new Menu(1);m->show();}else{//再次选桌QMessageBox msgBox;msgBox.setText("此餐桌正在使用,请另选餐桌!");msgBox.exec();}

点餐页面:点餐实时更新数量和金额,可以生成订单或者清楚购物车,并可以跳转后厨端或者退回登录页面。

结算页面:

后厨页面:方便查看所有餐桌的订单。

**项目网盘:
添加链接描述

基于qt和sqlite实现的简易点餐系统相关推荐

  1. 基于SpringBoot和微信小程序的点餐系统(毕业设计论文)

    声明: 本篇博客是我本科毕设论文,虽然研究课题比较普遍且较为简单,但已达到毕设要求. 考虑到以后的查重问题,顾本篇博客将采用论文局部图片的形式展示,有想研究并想作为毕设的童鞋也可以拿来参考. 需要源码 ...

  2. 基于微信小程序的智能推荐点餐系统

    摘  要 在社会高速发展的过程中,计算机系统在社会生产的过程中大量应用,并且随着相关技术的高速发展,这一过程在不断加速.因此,将智能推荐点餐系统管理与当前的网络相结合,利用计算机构建以微信小程序为基础 ...

  3. 基于QT(C++)实现学本科教务系统(URP系统)【100010528】

    JWCKnife 写着写着代码就几千了 PS:教务处已经改版,Network文件夹下内容需要更新 Introduction 四川大学本科教务系统(URP系统)在访问量较大的时候很容易出现500 Ser ...

  4. 基于qt和opencv实现人脸识别打卡系统

    最近在学习opencv,因此就想着和QT结合起来实现一个人脸识别的系统来.下面我来给大家讲讲这个项目怎么实现的 1.项目源码 https://github.com/SagapoZ/FaceRecogn ...

  5. 基于python下django框架 实现外卖点餐系统详细设计

    前言介绍(开发目的和意义) 本课题主要目标是设计并能够实现一个基于Python在线外卖点餐系统,管理员通过后台添加菜品,用户浏览器登录,查看菜品.购买.下单等.根据需求,本系统采用的是BS(Brows ...

  6. vue.js毕业设计,基于vue.js前后端分离外卖点餐系统(H5移动项目) 开题报告

      毕业论文 基于Vue.js外卖点餐系统(H5) 开题报告 学    院: 专    业: 年    级: 学生姓名: 指导教师: 黄菊华   XXXX大学本科生毕业论文(设计)开题报告书 姓   ...

  7. 基于微信小程序的智能推荐点餐系统的设计与实现.pdf

    近年来,互联网行业飞速发展,许多传统行业开始与互联网结合并通过数字化的改造.转型与升级创造出新的发展生态.尤其在国人最关注的"吃"的方面,餐饮行业通过将点餐.结算等一系列的服务流程 ...

  8. 基于Qt 5.7.0的适合Window XP系统的应用开发

    1. Qt库的编译 Qt官方对XP系统的支持止步于5.7.0版本,从5.7.1开始不再支持XP.但从官网上下载的5.7.0版本的安装包是不支持XP的,需要自己下载源码进行编译,编译的方法参照本博客另外 ...

  9. 基于AndroidStudio+Java+SQLite开发的背单词APP系统

    目 录 第一章 绪论 1 1.1 选题设计开发的应用背景及价值 1 1.2 选题的研究现状 1 1.3 关于本课题 2 第二章 开发环境与主要技术 3 2.1 开发平台 3 2.2 主要技术 4 2. ...

最新文章

  1. 工具库 --- Validator (JS正则)
  2. androidstudio返回之前界面_charles 如何修改服务器返回内容 - Breakpoints
  3. iis php网站500错误原因_因为曾经错误安装过PHP5.2而导致IIS7无法正常工作,显示500错误提示,大家帮忙看看!...
  4. django orm插入一条_如何通过django的ORM远程发布文章?
  5. matlab 高级函数 —— ind2sub、kron
  6. 监听 oracle执行sql语句,oracle SQL语句的监控 - 数据库相关 - 7点测试网
  7. 23007 2017-2018-2 《程序设计与数据结构》第2周学习总结
  8. React项目中使用Dplayer播放FLV格式视频教程(不支持ios)
  9. JQuery验证车牌号(含新能源车牌)
  10. python 100days github_GitHub - 382982408/Python-100-Days: Python - 100天从新手到大师
  11. python爬虫进程和线程的区别_熬了两个通宵写的!终于把多线程和多进程彻底讲明白了!...
  12. python是垃圾?
  13. 今年的目标 --还有两个月 我的21天计划
  14. 英伟达驱动安装(华为makebook13-2018 NVIDIA-GeForce-MX150)
  15. LabVIEW中ActiveX控件、ActiveX服务器和类型库注册
  16. php云仓微商源码_微商云仓APP模式系统开发
  17. Java poi之word文本图片内容提取
  18. Web-Crawler(爬虫基础)
  19. MoCO ——Momentum Contrast for Unsupervised Visual Representation Learning
  20. 小型机和PC服务器到底有什么区别?(摘自走入小型机世界-orian)

热门文章

  1. 七、T100销售管理之估价与报价管理
  2. #统计分析基础-数据统计与图表
  3. 独立制作小游戏发布 《金庸群侠传X》
  4. Word文档:设置从第二页开始显示页码(亲测有效)
  5. 顺序栈十进制转八进制C语言,顺序栈实现十进制跟八进制之间的转换
  6. 【星戈瑞】Sulfo-Cyanine5 mal 磺酸跟水溶性生物标记试剂
  7. WIN10 Rndis 和Wlan同时连接
  8. 行业门户网站、论坛的微信内容运营策划
  9. chrome app之创建第一个开发程序
  10. Ag-Grid Column的定义与更新