# 超市信息管理系统开发文档
## 文件说明
- Supermarket_system:Qt Creator源文件
- 超市信息管理系统免安装版:拿来即用,有可执行程序(配合mysql使用,否则连接不上数据库无法打开)
- shop.sql:数据库文件
## 一、环境及技术
1、环境
- Qt Creator 5.3
- ODBC Data Sources (32-bit)
- mysql-8.0.28-winx64
- Navicat 15 for MySQL
2、技术
- QT开发
- C++
- mysql
## 二、项目开发流程
1. 数据库设计
2. 界面UI设计
3. 代码逻辑编写
4. 开发文档编写
## 三、流程介绍
### 1、数据库设计
#### 1、1数据库代码
```mysql
/*
Navicat MySQL Data Transfer
Source Server : localhost_3306
Source Server Type : MySQL
Source Server Version : 80028
Source Host : localhost:3306
Source Schema : shop
Target Server Type : MySQL
Target Server Version : 80028
File Encoding : 65001
Date: 06/06/2022 20:30:21
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for goods
-- ----------------------------
DROP TABLE IF EXISTS `goods`;
CREATE TABLE `goods` (
`id` int NOT NULL COMMENT '商品编号',
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '商品名称',
`num` int NOT NULL COMMENT '商品数量',
`price` double(10, 2) NOT NULL COMMENT '商品价格',
`kind` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '商品种类',
`picture` blob NULL COMMENT '商品图片',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of goods
-- ----------------------------
INSERT INTO `goods` VALUES (1, '可乐', 300, 3.00, '饮料', NULL);
INSERT INTO `goods` VALUES (2, '上衣', 20, 99.00, '服装', NULL);
INSERT INTO `goods` VALUES (3, '大豆油', 300, 55.50, '食品', NULL);
-- ----------------------------
-- Table structure for worker
-- ----------------------------
DROP TABLE IF EXISTS `worker`;
CREATE TABLE `worker` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '职工编号',
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '职工姓名',
`phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '职工电话',
`usename` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '职工账号',
`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '职工密码',
`address` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '职工联系地址',
`picture` blob NULL COMMENT '职工照片',
PRIMARY KEY (`id`) USING BTREE,
CONSTRAINT `id` FOREIGN KEY (`id`) REFERENCES `goods` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of worker
-- ----------------------------
INSERT INTO `worker` VALUES (1, '马师傅', '123', '123', '123', '陕西省西安市', NULL);
INSERT INTO `worker` VALUES (2, '石师傅', '1234', '1234', '1234', '陕西省西安市', NULL);
INSERT INTO `worker` VALUES (3, '野球帝', '12345', '12345', '12345', '陕西省西安市', NULL);
SET FOREIGN_KEY_CHECKS = 1;
```
#### 1、2 表设计
- goods表
![image-20220609152628020](https://sx-image799.oss-cn-hangzhou.aliyuncs.com/image/202206091526151.png)
- worker表
![image-20220609152721943](https://sx-image799.oss-cn-hangzhou.aliyuncs.com/image/202206091527988.png)
#### 1、3 视图
![image-20220609152927876](https://sx-image799.oss-cn-hangzhou.aliyuncs.com/image/202206091529928.png)
### 2、界面UI设计
#### 2、1 登录界面
- 效果图
![](https://sx-image799.oss-cn-hangzhou.aliyuncs.com/image/202206091531850.png)
- 结构说明
![image-20220609153543319](https://sx-image799.oss-cn-hangzhou.aliyuncs.com/image/202206091535392.png)
#### 2、2 系统展示界面
### 3、代码逻辑编写
#### 3、1 登录逻辑
**login.h:**
```c++
#ifndef LOGIN_H
#define LOGIN_H
#include <QDialog>
#include<QSqlQuery> //查询mysql数据库
#include<QMessageBox>
#include<QCryptographicHash> //包含MD5算法库
#include <QWidget>
#include<QPoint>
namespace Ui {
class Login;
}
class Login : public QDialog
{
Q_OBJECT
public:
explicit Login(QWidget *parent = 0);
~Login();
//鼠标移动
void mouseMoveEvent(QMouseEvent *event);
//鼠标点击
void mousePressEvent(QMouseEvent *event);
//鼠标拖动
void mouseReleaseEvent(QMouseEvent *event);
private slots:
//关闭窗口
void on_pushButton_clicked();
//登录事件
void on_btn_login_clicked();
private:
Ui::Login *ui;
QPoint z;
};
#endif // LOGIN_H
```
**login.cpp:**
```c++
#include "login.h"
#include "ui_login.h"
#include<QWidget>
#include<QPoint>
#include<QMouseEvent>
#include<QGraphicsDropShadowEffect>
Login::Login(QWidget *parent) :
QDialog(parent),
ui(new Ui::Login)
{
ui->setupUi(this);
//去掉系统无边框
this->setWindowFlags(Qt::FramelessWindowHint);
//阴影边框效果
QGraphicsDropShadowEffect *shadow =new QGraphicsDropShadowEffect();
shadow->setBlurRadius(20);
shadow->setColor(Qt::black);
shadow->setOffset(0);
ui->showwidget->setGraphicsEffect(shadow);
//设置父窗口为透明
this->setAttribute(Qt::WA_TranslucentBackground);
//用户名焦点
ui->Username->setFocus();
}
Login::~Login()
{
delete ui;
}
//鼠标移动
void Login::mouseMoveEvent(QMouseEvent *event)
{
QWidget::mouseMoveEvent(event);
//鼠标相对于桌面左上角的位置,鼠标的全局位置
QPoint y = event->globalPos();
QPoint x =y-this->z;
this->move(x);
}
//鼠标点击
void Login::mousePressEvent(QMouseEvent *event)
{
QWidget::mousePressEvent(event);
//鼠标相对于桌面左上角的位置,鼠标的全局位置
QPoint y = event->globalPos();
//窗口左上角相对于桌面左上角的位置
QPoint x =this->geometry().topLeft();
this->z = y-x; //定值
}
//鼠标释放
void Login::mouseReleaseEvent(QMouseEvent *event)
{
QWidget::mouseReleaseEvent(event);
//清空
this->z=QPoint();
}
//关闭窗口
void Login::on_pushButton_clicked()
{
this->close();
}
//登录事件
void Login::on_btn_login_clicked()
{
if(!ui->Password->text().isEmpty()){
QSqlQuery query;
query.exec("select password from worker where usename='" + ui->Username->text()+"'");
query.next();
if(query.value(0).toString()==ui->Password->text()){
//验证通过
QDialog::accept();
}else{
//信息错误弹出警告
QMessageBox::warning(this,tr("密码或账号错误!"),tr("请输入正确的信息"),QMessageBox::Ok);
//清空输入框
ui->Username->clear();
ui->Password->clear();
}
}else{
ui->Password->setFocus();
}
}
```
#### 3、2 系统功能逻辑
**mainwindow.h:**
```c++
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QMessageBox>
#include<QFileDialog>
#include<QBuffer>
#include<QSqlDatabase> //mysql数据库类
#include<QSqlTableModel> //mysql表模型库
#include<QSqlQuery> //mysql查询类库
#include<QSqlQueryModel>
#include<QTime>
#include<QPixmap> //图形处理类库
#include <QWidget>
#include<QPoint>
#include <QTableView>
#include <QStandardItemModel>
#include<QString>
#include<QTableWidgetItem>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
/*鼠标事件*/
//鼠标移动
void mouseMoveEvent(QMouseEvent *event);
//鼠标点击
void mousePressEvent(QMouseEvent *event);
//鼠标拖动
void mouseReleaseEvent(QMouseEvent *event);
/*数据库事件*/
没有合适的资源?快使用搜索试试~ 我知道了~
C++实现毕业设计项目基于QT的商场超市信息管理系统源码(开发文档+演示视频).zip
共96个文件
dll:29个
o:18个
cpp:12个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 21 下载量 22 浏览量
2022-06-15
06:13:17
上传
评论 37
收藏 157.71MB ZIP 举报
温馨提示
C++实现毕业设计项目基于QT的商场超市信息管理系统源码,(开发文档+演示视频),操作无难度,新手也可自己动手。 文件说明 Supermarket_system:Qt Creator源文件 超市信息管理系统免安装版:拿来即用,有可执行程序(配合mysql使用,否则连接不上数据库无法打开) shop.sql:数据库文件 开发流程如下: 数据库设计 界面UI设计 代码逻辑编写 开发文档编写 各功能详解 主函数 程序先调用mainwindow.cpp中连接数据库中的静态方法连接数据库,若初次连接失败,弹出提示框:请排查故障后连接;用户确认后,自行排查问题;同时程序自动打开mysql的服务进程;进行第二次连接,若失败则直接退出程序;反之,成功则直接进入登录界面
资源推荐
资源详情
资源评论
收起资源包目录
基于QT的超市信息管理系统.zip (96个子文件)
Supermarket_system-master
Supermarket_system
Supermarket_system.pro.user 18KB
Makefile.Debug 63KB
image
关闭.png 426B
login.png 7.25MB
res.qrc 401B
ui_login.h 5KB
ion
客服.png 1KB
用户登录 .png 1KB
close.png 440B
超市商品-变.png 1KB
minus-bold.png 252B
订单.png 1KB
add.png 332B
Makefile.Release 63KB
ui_mainwindow.h 45KB
main.cpp 649B
mainwindow.ui 52KB
debug
qrc_res.cpp 37.12MB
qrc_res.o 7.28MB
moc_mainwindow.cpp 7KB
moc_login.cpp 3KB
moc_mainwindow.o 352KB
moc_login.o 182KB
Supermarket_system.exe 9.36MB
mainwindow.o 1MB
main.o 322KB
login.o 405KB
Supermarket_system.pro 477B
mainwindow.cpp 24KB
mainwindow.h 3KB
Makefile 17KB
login.h 729B
login.cpp 2KB
login.ui 5KB
release
qrc_res.cpp 37.12MB
qrc_res.o 7.26MB
moc_mainwindow.cpp 7KB
moc_login.cpp 3KB
moc_mainwindow.o 12KB
moc_login.o 9KB
Supermarket_system.exe 7.39MB
mainwindow.o 152KB
main.o 5KB
login.o 21KB
LICENSE 34KB
超市信息管理系统免安装版
qt_fi.qm 165KB
qrc_res.cpp 37.12MB
qrc_res.o 7.26MB
qt_ru.qm 166KB
iconengines
qsvgicon.dll 39KB
moc_mainwindow.cpp 7KB
moc_login.cpp 3KB
moc_mainwindow.o 12KB
accessible
qtaccessiblewidgets.dll 174KB
moc_login.o 9KB
Qt5Svg.dll 293KB
Supermarket_system.exe 7.39MB
qt_de.qm 171KB
qt_uk.qm 164KB
imageformats
qwbmp.dll 26KB
qjpeg.dll 237KB
qtiff.dll 414KB
qtga.dll 27KB
qjp2.dll 498KB
qico.dll 31KB
qgif.dll 31KB
qicns.dll 42KB
qsvg.dll 27KB
qmng.dll 355KB
qdds.dll 50KB
qwebp.dll 334KB
icuin52.dll 3.19MB
icudt52.dll 22.45MB
platforms
qwindows.dll 1.22MB
libstdc++-6.dll 1.95MB
qt_hu.qm 163KB
mainwindow.o 152KB
qt_sk.qm 164KB
sqldrivers
qsqlmysql.dll 66KB
qsqlodbc.dll 103KB
qsqlpsql.dll 77KB
qsqlite.dll 732KB
qt_cs.qm 148KB
Qt5Core.dll 4.56MB
qt_ja.qm 138KB
icuuc52.dll 1.9MB
libgcc_s_dw2-1.dll 1012KB
main.o 5KB
Qt5Widgets.dll 5.61MB
Qt5Sql.dll 232KB
qt_it.qm 170KB
login.o 21KB
Qt5Gui.dll 4.38MB
shop.sql 3KB
演示视频.mp4 66.6MB
README.md 42KB
共 96 条
- 1
程序员张小妍
- 粉丝: 1w+
- 资源: 3474
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 操作系统实验ucore lab3
- DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 这段程序是一个改进的粒子群算法,主要用于解决电力系统中的优化问题 下面我将对程序进行详
- final_work_job1(1).sql
- 区块链与联邦学习结合:FedChain项目详细复现指南
- 西门子S7 和 S7 Plus 协议开发示例
- 模块化多电平变流器 MMC 的VSG控制 同步发电机控制 MATLAB–Simulink仿真模型 5电平三相MMC,采用VSG控制 受端接可编辑三相交流源,直流侧接无穷大电源提供调频能量 设置频率
- 微电网(两台)主从控制孤岛-并网平滑切的分析 分析了: 1.孤岛下VF控制 2.并网下PQ控制 3.孤岛下主从控制 4.孤岛到并网的平滑切控制 5.除模型外还对分布式发电与主动配电网一些常见问题做了
- 第四组二手产品.zip
- 基于小程序的智慧物业平台源代码(java+小程序+mysql+LW).zip
- MVIMG_20241222_194113.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页