C++超市商品管理系统

一、简要介绍

1.本项目为面向对象程序设计的大作业,基于Qt creator进行开发,Qt框架版本6.4.1,编译环境MINGW 11.2.0。

2.项目结构简介:关于系统逻辑部分的代码的头文件在head文件夹中,源文件在s文件夹中。与图形界面相关的代码在项目头文件和源文件的文件夹内。
应用程序内使用的一些图片、动图在rc文件夹内。

3.UML类图:

image

二、使用方式

1.可下载源码使用Qt creator进行构建后运行

2.若无Qt环境,可以直接下载Releases版本运行,无需任何依赖。若需要测试用例,可将文件夹内的测试数据文件夹内的文件移动至可执行程序目录中。
若不移动,则系统无初始数据,需要输入初始密码。

三、关键代码

#include "mainwindow.h"
#include "ui_mainwindow.h"void MainWindow::on_backBtn_released()
{ui->stackedWidget->setCurrentWidget(ui->mainPg);
}void MainWindow::on_backBtn_2_released()
{ui->stackedWidget->setCurrentWidget(ui->mainPg);
}void MainWindow::on_backBtn_3_released()
{ui->stackedWidget->setCurrentWidget(ui->mainPg);
}void MainWindow::on_backBtn_5_released()
{ui->stackedWidget->setCurrentWidget(ui->mainPg);
}
void MainWindow::on_showBtn_released()
{ui->stackedWidget->setCurrentWidget(ui->showPg);
}void MainWindow::on_buyBtn_released()
{ui->stackedWidget->setCurrentWidget(ui->buyPg);
}void MainWindow::on_saleStatBtn_released()
{ui->stackedWidget->setCurrentWidget(ui->saleStatPg);//更新总成本和总收入ui->sumRevenLcd->display(rm.getSumRevenue());ui->sumCostLcd->display(rm.getSumCost());
}void MainWindow::on_comManagerBtn_released()
{ui->stackedWidget->setCurrentWidget(ui->managerPg);
}void MainWindow::on_exitBtn_released()
{this->close();
}

logindia.cpp

#include "logindia.h"
#include "ui_logindia.h"
#include<QInputDialog>
#include<QMessageBox>
#include<fstream>LoginDia::LoginDia(QWidget *parent) :QDialog(parent),ui(new Ui::LoginDia)
{_canLog=false;ui->setupUi(this);this->setWindowIcon(QIcon(":/new/prefix1/rc/n133f35jvek.jpg"));QImage* keyImg=new QImage(":/new/prefix1/rc/key.png");ui->imgLab->setScaledContents(true);ui->imgLab->setPixmap(QPixmap::fromImage(*keyImg));std::ifstream ifs("passWord.pwd");if(ifs.is_open()){std::string buff;ifs>>buff;_passWord = buff.c_str();ifs.close();}else  //不存在密码文件{bool  ok=false;_passWord = QInputDialog::getText(this,"设置密码","请输入新密码:",QLineEdit::Password,"",&ok);if(!ok){this->close();}std::ofstream ofs("passWord.pwd");ofs<<_passWord.toStdString();ofs.close();}}LoginDia::~LoginDia()
{delete ui;std::ofstream ofs("password.pwd");ofs<<_passWord.toStdString();
}bool LoginDia::canLog()
{return _canLog;
}void LoginDia::on_okBtn_released()  //确定密码
{if(ui->pwdEdit->text() ==_passWord&&ui->accountEdit->text()==QString("admin")){_canLog=true;this->close();}else{QMessageBox::critical(this,tr("错误"),tr("密码错误,请重新输入"));}}void LoginDia::on_cancelBtn_released()  //关闭窗口
{this->close();
}void LoginDia::on_chPwdEdit_released() //改密码
{bool ok;auto oriPwd = QInputDialog::getText(this,"输入","请输入旧密码:",QLineEdit::Password,"",&ok);if(ok){if(oriPwd==_passWord){auto newPwd = QInputDialog::getText(this,"输入","请输入新密码:",QLineEdit::Password,"",&ok);if(ok){_passWord = newPwd;QMessageBox::information(this,tr("提示"),tr("修改成功!"));}}else{QMessageBox::critical(this,tr("错误"),tr("原密码错误"));}}
}void LoginDia::on_aboutBtn_released()
{QMessageBox::about(this,tr("关于系统"),tr("制作者:刘家麒 赵鹿均\n\n系统版本:V1.0\n\nQt版本:Qt 6.4.1"));
}

四、运行截图

登录界面

image

商品信息输入窗口

image

主界面

image

库存商品页面

捕获

销售统计

捕获1

收银台界面

捕获3

五、联系与交流

q:969060742 完整代码、程序报告

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/778908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Java仓库管理系统设计与实现(源码+部署文档+论文)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

剑指Offer题目笔记20(在数组范围内二分查找)

面试题72&#xff1a; 问题&#xff1a; ​ 输入一个非负整数&#xff0c;计算它的平方根。 解决方案&#xff1a; 使用二分查找。一个数x的平方根一定小于或等于x&#xff0c;同时&#xff0c;除了0之外的所有非负整数的平方根都大于等于1&#xff0c;故该数的平方根在1到x…

数据库中的约束纯干货——主键约束

目录 &#xff08;一&#xff09;特点&#xff1a; &#xff08;二&#xff09;添加主键约束 2.1格式&#xff1a; 2.2举例&#xff1a; 2.3建立表级约束&#xff1a; 2.4建立表后增加主键约束 &#xff08;三&#xff09;复合主键 3.1格式&#xff1a; 3.2举例&#…

每日一题 --- 快乐数[力扣][Go]

快乐数 题目&#xff1a;202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到…

Pocket 2荧光拍摄的几个有趣玩法

荧光是现象&#xff0c;当某种常温物质经某种波长的入射光&#xff08;通常是或&#xff09;照射&#xff0c;吸收光能后进入&#xff0c;并且立即退激发并发出出射光&#xff08;通常波长比入射光的波长&#xff0c;原先看不见的短波长紫外线&#xff0c;变成在可见光波段的可…

JAVA的NIO和BIO底层原理分析

文章目录 一、操作系统底层IO原理1. 简介2. 操作系统进行IO的流程 二、BIO底层原理1. 什么是Socket2. JDK原生编程的BIO 三、Java原生编程的NIO1. 简介2. NIO和BIO的主要区别3. Reactor模式4. NIO的三大核心组件5. NIO核心源码分析 一、操作系统底层IO原理 1. 简介 IO&#x…

font-spider压缩文字

FZLanTingHei-DB-GBK是我引入的字体包名字 1.安装依赖 建议全局安装但是要注意npm配置 我配成了_globel 真是沙雕 npm install font-spider -g2. 在static文件夹新增一个文件夹font-spider 同时在font-spider文件夹里面新增index.css和index.html index.css font-face {f…

产品推荐 | 基于华为海思ARM+Xilinx FPGA双核的8路SDI高清视频图像处理平台

一、板卡概述 PCIE703 是我司自主研制的一款基于 PCIE 总线架构的高性能综 合视频图像处理平台&#xff0c;该平台采用 Xilinx 的高性能 Kintex UltraScale 系列 FPGA 加上华为海思的高性能视频处理器来实现。 华为海思的 HI3531DV200 是一款集成了 ARM A53 四核处理 器性能强…

Java设计模式—备忘录模式(快照模式)

定义 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便地回到一个特定的历史步骤&#xff0c;当新的状态无效或者存在问题时&#xff0c;可以使用暂时存储起来的备忘录将状态复原&#xff0c;很多软件都提供了撤销&#xff08;Undo&#xff09;操作&#…

什么是DevOps?如何使用DevOps?

无论您是在维持公司基础设施的正常运行&#xff0c;还是在为客户的IT问题管理提供支持&#xff0c;抑或是在构建、测试或修复软件&#xff0c;还是在保护同事免受安全威胁&#xff0c;您都可能接触过 DevOps。 毕竟&#xff0c;这个术语已经出现了 15 年&#xff0c;其采用率也…

基于单片机的二维码LCD显示控制设计

**单片机设计介绍&#xff0c;基于单片机的二维码LCD显示控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的二维码LCD显示控制设计是一个集硬件、软件与通信于一体的综合性项目。此设计的主要目标是实现单片机…

Linux_应用篇(02) 文件 I/O 基础

本章给大家介绍 Linux 应用编程中最基础的知识&#xff0c;即文件 I/O&#xff08;Input、 Outout&#xff09; &#xff0c; 文件 I/O 指的是对文件的输入/输出操作&#xff0c;说白了就是对文件的读写操作&#xff1b; Linux 下一切皆文件&#xff0c;文件作为 Linux 系统设计…

Win11 安装docker 及 WSL2 并更新安装位置及迁移

1 下载并安装运行 Docker Desktop 1.1 下载 Docker Desktop 点击链接下载 Docker Desktop&#xff1a;https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe 下载后得到&#xff1a; 1.2 通过命令行安装 Docker Desktop 在 Docker Desktop Install…

HEVC的Profile和Level介绍

文章目录 HEVCProfile&#xff08;配置&#xff09;&#xff1a;Level&#xff08;级别&#xff09;&#xff1a;划分标准 HEVC HEVC&#xff08;High Efficiency Video Coding&#xff09;&#xff0c;也称为H.265&#xff0c;是一种视频压缩标准&#xff0c;旨在提供比先前的…

云数据仓库Snowflake论文完整版解读

本文是对于Snowflake论文的一个完整版解读&#xff0c;对于从事大数据数据仓库开发&#xff0c;数据湖开发的读者来说&#xff0c;这是一篇必须要详细了解和阅读的内容&#xff0c;通过全文你会发现整个数据湖设计的起初原因以及从各个维度&#xff08;架构设计、存算分离、弹性…

简单的LAMP部署

目录 一、准备环境 二、安装apache组件 三、安装mysql组件 四、安装php组件 五、浏览器访问 一、准备环境 iptables -F #清空防火墙规则 systemctl stop firewalld #关闭防火墙 setenforce 0 …

vue3封装Element表格自适应

表格高度自适应 分页跟随表格之后 1. 满屏时出现滚动条 2. 不满屏时不显示滚动条 坑 表格设置maxHeight后不出现滚动条 解决方案 表格外层元素设置max-height el-table–fit 设置高度100% .table-box {max-height: calc(100% - 120px); } .el-table--fit {height: 100%; }示例代…

MYSQL8.0安装、配置、启动、登入与卸载详细步骤总结

文章目录 一.下载安装包1.方式一.官网下载方式二.网盘下载 二.解压安装三.配置1.添加环境变量 三.验证安装与配置成功四.初始化MYSQL五.注册MySQL服务六.启动与停止MYSQL服务七.修改账户默认密码八.登入MySQL九.卸载MySQL补充&#xff1a;彻底粉碎删除Mysql 一.下载安装包 1.方…

GLTFExporter是一个用于将3D场景导出为glTF格式的JavaScript库。

demo案例 GLTFExporter是一个用于将3D场景导出为glTF格式的JavaScript库。下面我将逐个讲解其入参、出参、属性、方法以及API使用方式。 入参&#xff08;Input Parameters&#xff09;: GLTFExporter的主要入参是要导出的场景对象和一些导出选项。具体来说&#xff1a; s…

PowerBI加权计算权重

1.打开主页&#xff0c;点击快速度量值 2.计算里面 选择计算&#xff1a;每个类别的加权平均值 3.就是添加数据&#xff0c;基值&#xff08;就是你要计算的值&#xff09;粗细&#xff08;就是你要用那个值计算权重&#xff09;类别&#xff08;就是你是要乘以那个类别&#x…