模拟超市商品结算系统

要求:全程一个角色(管理员即用户)

(1)需要管理员注册与登录

(2)管理员登录之后,可以进行上架新的商品(商品名称和单价)

(3)管理员登录之后,也可以下架商品

(4)在节假日有优惠活动,可以对其中的一些商品修改相应的单价(价格提高和价格降低都可以)

(5)用户选择需要购买的商品,存放到自己的购物车中

(6)用户结算商品时(清空购物车),计算购物车中的商品的总价

(7)用户也可以移除掉购物车中指定的商品

Supermarket

dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QDebug>
#include <QSpinBox>QT_BEGIN_NAMESPACE
namespace Ui { class Dialog; }
QT_END_NAMESPACEclass Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent = nullptr);~Dialog();private slots:void on_upadre_jiage_clicked();void on_shangpin_shagnjia_clicked();void on_jiesuan_clicked();void on_del_clicked();void on_shangpin_xiajia_clicked();public slots:void rece1_fruit(const QString& text);void rece1_vagetable(const QString& text);void rece1_car(const QString& text);private:Ui::Dialog *ui;//实例化QSpinBox* update_money = new QSpinBox(this);//更新商品价格自旋框QSpinBox* submit_money = new QSpinBox(this);//商家商品价格自旋框};
#endif // DIALOG_H

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"//要求:全程一个角色(管理员即用户)
//(1)可以进行上架新的商品(商品名称和单价)
//(3)也可以下架商品
//(4)在节假日有优惠活动,可以对其中的一些商品修改相应的单价(价格提高和价格降低都可以)
//(5)用户选择需要购买的商品,存放到自己的购物车中
//(6)用户结算商品时(清空购物车),计算购物车中的商品的总价
//(7)用户也可以移除掉购物车中指定的商品Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{ui->setupUi(this);//更新商品价格自旋框this->update_money->move(480,160);this->update_money->resize(100,30);//设置更新自旋框显示内容的前缀this->update_money->setPrefix("单价:");//设置更新自旋框显示内容的后缀this->update_money->setSuffix("元");//上架商品自旋框this->submit_money->move(480,410);this->submit_money->resize(100,30);//设置更新自旋框显示内容的前缀this->submit_money->setPrefix("单价:");//设置更新自旋框显示内容的后缀this->submit_money->setSuffix("元");//绑定商品展示区的水果类、蔬菜类、汽车类的被选中信号connect(ui->fruit,SIGNAL(activated(QString)),this,SLOT(rece1_fruit(QString)));connect(ui->vagetable,SIGNAL(activated(QString)),this,SLOT(rece1_vagetable(QString)));connect(ui->car,SIGNAL(activated(QString)),this,SLOT(rece1_car(QString)));}Dialog::~Dialog()
{delete ui;
}//管理员上架下架更新功能区
void Dialog::on_upadre_jiage_clicked()//更新商品价格
{//得到更新商品类别QString update_leibie = ui->update_leibie->text();qDebug()<<update_leibie<<endl;//得到更新商品名称QString update_shangpin = ui->update_shangpin->text();qDebug()<<update_shangpin<<endl;//获取更新自旋框显示数值int money = this->update_money->value();qDebug()<<money<<endl;//拼接商品和价格QString shangpin = update_shangpin+" "+QString::number(money)+" 元";if(update_leibie=="水果类"){int num = ui->fruit->count();//获取水果列表中有多少项for(int i=0;i<num;i++){//循环遍历出列表项QString wupin = ui->fruit->itemText(i);//取出商品列表项的内容QStringList shangpin_list = wupin.split(" ");//以空格分割字符串QString shangpin_ = shangpin_list[0];//取出商品名称//检验商品if(update_shangpin == shangpin_){int index = ui->fruit->findText(wupin);//找到这个商品的下标ui->fruit->setItemText(index,shangpin);//更新}}}else if(update_leibie=="蔬菜类"){int num = ui->vagetable->count();//获取水果列表中有多少项for(int i=0;i<num;i++){//循环遍历出列表项QString wupin = ui->vagetable->itemText(i);//取出商品列表项的内容QStringList shangpin_list = wupin.split(" ");//以空格分割字符串QString shangpin_ = shangpin_list[0];//取出商品名称//检验商品if(update_shangpin == shangpin_){int index = ui->vagetable->findText(wupin);//找到这个商品的下标ui->vagetable->setItemText(index,shangpin);//更新}}}else if(update_leibie=="汽车类"){int num = ui->car->count();//获取水果列表中有多少项for(int i=0;i<num;i++){//循环遍历出列表项QString wupin = ui->car->itemText(i);//取出商品列表项的内容QStringList shangpin_list = wupin.split(" ");//以空格分割字符串QString shangpin_ = shangpin_list[0];//取出商品名称//检验商品if(update_shangpin == shangpin_){int index = ui->car->findText(wupin);//找到这个商品的下标ui->car->setItemText(index,shangpin);//更新}}}}void Dialog::on_shangpin_shagnjia_clicked()//上架商品价格
{//得到上架商品类别QString submit_leibie = ui->submit_leibie->text();qDebug()<<submit_leibie<<endl;//得到上架商品名称QString submit_shangpin = ui->submit_shangpin->text();qDebug()<<submit_shangpin<<endl;//获取更新自旋框显示数值int money = this->submit_money->value();qDebug()<<money<<endl;//拼接商品和价格QString shangpin = submit_shangpin+" "+QString::number(money)+" 元";//将商品类别,名称,单价获得后,存入商品展示区if(submit_leibie=="水果类"){ui->fruit->addItem(shangpin);//将商品添加进组合框}else if(submit_leibie=="蔬菜类"){ui->vagetable->addItem(shangpin);}else if(submit_leibie=="汽车类"){ui->car->addItem(shangpin);}}//管理员下架商品
void Dialog::on_shangpin_xiajia_clicked()
{//得到上架商品类别QString xiajia_leibie = ui->xiajia_leibie->text();qDebug()<<xiajia_leibie<<endl;//得到上架商品名称QString xiajia_shangpin = ui->xiajia_shangpin->text();qDebug()<<xiajia_shangpin<<endl;//下架商品展示区的商品if(xiajia_leibie=="水果类"){int num = ui->fruit->count();//获取水果列表中有多少项for(int i=0;i<num;i++){//循环遍历出列表项QString wupin = ui->fruit->itemText(i);//取出商品列表项的内容QStringList shangpin = wupin.split(" ");//以空格分割字符串QString xiajia_ = shangpin[0];//取出商品名称//检验商品if(xiajia_shangpin == xiajia_){int index = ui->fruit->findText(wupin);//找到这个商品的下标ui->fruit->removeItem(index);//移除}}}else if(xiajia_leibie=="蔬菜类"){int num = ui->vagetable->count();//获取蔬菜列表中有多少项for(int i=0;i<num;i++){//循环遍历出列表项QString wupin = ui->vagetable->itemText(i);//取出商品列表项的内容QStringList shangpin = wupin.split(" ");//以空格分割字符串QString xiajia_ = shangpin[0];//取出商品名称//检验商品if(xiajia_shangpin == xiajia_){int index = ui->vagetable->findText(wupin);//找到这个商品的下标ui->vagetable->removeItem(index);//移除}}}else if(xiajia_leibie=="汽车类"){int num = ui->car->count();//获取蔬菜列表中有多少项for(int i=0;i<num;i++){//循环遍历出列表项QString wupin = ui->car->itemText(i);//取出商品列表项的内容QStringList shangpin = wupin.split(" ");//以空格分割字符串QString xiajia_ = shangpin[0];//取出商品名称//检验商品if(xiajia_shangpin == xiajia_){int index = ui->car->findText(wupin);//找到这个商品的下标ui->car->removeItem(index);//移除}}}
}//商品展示区
//当商品展示区的水果类中的商品被选中触发
void Dialog::rece1_fruit(const QString &text){qDebug()<<text<<endl;//将选中的商品添加金用户的商品列表ui->user_shop->addItem(text);}
//当商品展示区的蔬菜类中的商品被选中触发
void Dialog::rece1_vagetable(const QString &text){qDebug()<<text<<endl;//将选中的商品添加金用户的商品列表ui->user_shop->addItem(text);}
//当商品展示区的汽车类中的商品被选中触发
void Dialog::rece1_car(const QString &text){qDebug()<<text<<endl;//将选中的商品添加金用户的商品列表ui->user_shop->addItem(text);}//结算功能
void Dialog::on_jiesuan_clicked()
{int sum = 0;int num = ui->user_shop->count();//获取用户商品列表中有多少项for(int i=0;i<num;i++){//循环遍历出列表项QString wupin = ui->user_shop->itemText(i);//取出用户商品列表项的内容QStringList shangpin = wupin.split(" ");//以空格分割字符串int money = shangpin[1].toInt();//取出商品价格sum+=money;//总价}ui->zongjia->setText(QString::number(sum));//QString::number(sum)转为字符串ui->user_shop->clear();
}//删除用户商品列表里的项功能
void Dialog::on_del_clicked()
{int index = ui->user_shop->currentIndex();ui->user_shop->removeItem(index);
}

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

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

相关文章

如何使用CentOS系统中的Apache服务器提供静态HTTP服务

在CentOS系统中&#xff0c;Apache服务器是一个常用的Web服务器软件&#xff0c;它可以高效地提供静态HTTP服务。以下是在CentOS中使用Apache提供静态HTTP服务的步骤&#xff1a; 1. 安装Apache服务器 首先&#xff0c;您需要确保已安装Apache服务器。可以使用以下命令安装Ap…

关于burpsuite设置HTTP或者SOCKS代理

使用burpsuite给自己的浏览器做代理&#xff0c;抓包重发这些想必大家都清除 流量请求过程&#xff1a; 本机浏览器 -> burpsuite -> 目标服务器 实质还是本机发出的流量 如果我们想让流量由其他代理服务器发出 实现&#xff1a; 本机浏览器 -> burpsuite -> 某…

Blazor中使用impress.js

impress.js是什么&#xff1f; 你想在浏览器中做PPT吗&#xff1f;比如在做某些类似于PPT自动翻页&#xff0c;局部放大之类&#xff0c;炫酷无比。 在Blazor中&#xff0c;几经尝试&#xff0c;用以下方法可以实现。写文不易&#xff0c;请点赞、收藏、关注&#xff0c;并在转…

Python基础知识:整理9 文件的相关操作

1 文件的打开 # open() 函数打开文件 # open(name, mode, encoding) """name: 文件名&#xff08;可以包含文件所在的具体路径&#xff09;mode: 文件打开模式encoding: 可选参数&#xff0c;表示读取文件的编码格式 """ 2 文件的读取 文…

web缓存代理

缓存代理的概述 wed代理的工作机制 缓存网页对象&#xff0c;减少重复请求 web缓存代理作用 1.存储一些之前被访问的&#xff0c;且可能将要被再次访问的静态网络资源对象&#xff0c;使用户可以直接从缓存代理服务器获取资源&#xff0c;从而减少上游原始服务器的负载压力…

分享7款前端CSS动画特效源码(附在线演示)

精选7款前端CSS动画特效源码 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 CSS飞行的荷包蛋 CSS荷包蛋动画 荷包蛋会向右前方加速飞行 期间还能看到周围的气流匆匆飞过 以下图片只是简单的模型没有具体的动画效果最终动画…

IPv6路由协议---IPv6动态路由(OSPFv3-5)

OSPFv3各链路状态通告类型 4.Inter-Area-Router-LSA区域间路由器(4类LSA) 边界路由器(ABR)产生的第4类LSA,在Area 范围内泛洪,描述了到本AS内其他区域的ASBR路由器信息; 每各Inter-Area-Router-LSA包含一个ASBR路由器信息,LSA中的能力选项(Options)与所描述的ASBR …

满足ITOM需求的网络监控工具

IT 运营管理&#xff08;ITOM&#xff09;可以定义为监督 IT 基础架构的各种物理和虚拟组件的过程;确保其性能、运行状况和可用性;并使它们能够与基础架构的其他组件无缝协作。IT 运营管理&#xff08;ITOM&#xff09;在大型 IT 管理模型中也发挥着积极作用&#xff0c;包括 I…

强化学习求解TSP(四):Qlearning求解旅行商问题TSP(提供Python代码)

一、Qlearning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于奖励的决策问题。它是一种无模型的学习方法&#xff0c;通过与环境的交互来学习最优策略。Q-learning的核心思想是通过学习一个Q值函数来指导决策&#xff0c;该函数表示在给定状态下采取某个动作所获…

vue配置qiankun及打包上线

项目结构 基座&#xff1a;vue3 子应用A&#xff1a;vue3 子应用B&#xff1a; react 子应用C&#xff1a;vue3vite 项目目录&#xff1a; 配置基座 首先下载qiankun yarn add qiankun # 或者 npm i qiankun -S 所有子应用也要安装&#xff0c;vue-vite项目安装 cnpm ins…

蓝桥杯练习题(三)

&#x1f4d1;前言 本文主要是【算法】——蓝桥杯练习题&#xff08;三&#xff09;的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 …

[C#]winform部署PaddleOCRV3推理模型

【官方框架地址】 https://github.com/PaddlePaddle/PaddleOCR.git 【算法介绍】 PaddleOCR是由百度公司推出的一款开源光学字符识别&#xff08;OCR&#xff09;工具&#xff0c;它基于深度学习框架PaddlePaddle开发。这款工具提供了一整套端到端的文字检测和识别解决方案&a…

PyQt5零基础入门(二)——QLabel控件

前言 QLabel控件可以视为是一个标签项&#xff0c;具有显示文本、图像的作用。在本篇文章中将介绍QLabel控件的常见用法。 例子 显示文本 import sys from PyQt5.QtWidgets import *if __name__ "__main__":app QApplication([])label QLabel(Hello world!)la…

Zookeeper 和 naocs的区别

Nacos 和 ZooKeeper 都是服务发现和配置管理的工具&#xff0c;它们的主要区别如下&#xff1a;功能特性&#xff1a;Nacos 比 ZooKeeper 更加强大&#xff0c;Nacos 支持服务发现、动态配置、流量管理、服务治理、分布式事务等功能&#xff0c;而 ZooKeeper 主要用于分布式协调…

【天龙怀旧服】攻略day4

关键字&#xff1a; 快捷鉴定手工、组队跟随兔子、九州店铺 1】快捷鉴定手工 可以把鉴定符拖到快捷技能栏&#xff0c;例如f1然后鼠标选到未鉴定手工&#xff0c;快捷键即可鉴定 2】组队跟打手&#xff0c;兔子队 队长给小号&#xff0c;组队跟随&#xff1b; 打手退跟随打…

UM2004 一款低功耗、高性能、即插即用型 OOK 射频接收器芯片

UM2004 是一款低功耗、高性能、即插即用型 OOK 射频接收器&#xff0c;该芯片具有 2.5V ~ 5.5V 较宽的输入电压范围&#xff0c;灵敏度高达到-109dBm&#xff0c;工作频段为 300MHz ~ 480MHz&#xff0c;支持 1Kbps~ 5Kbps 的数据率传输。采用 SOP8 封装类型&#xff0c;应用时…

容器扫描Trivy及Trivy-db数据库研究

trivy介绍 Trivy是一个镜像容器扫描工具&#xff0c;用于扫描漏洞和配置错误。 它是一款相当全面且多功能的安全扫描器&#xff0c;支持多种扫描目标&#xff0c;能够弥补市面上常见Web 漏洞扫描工具的不足。 Trivy 可以轻松地通过安装并将二进制文件添加到项目中&#xff0c;…

Edge浏览器设置自动刷新详细步骤分享

Edge浏览器自动刷新设置方法详细教学分享。在电脑上访问一些动态网页的时候&#xff0c;用户发现网页的内容滚动之后&#xff0c;内容无法进行刷新。这个情况是我们的浏览器没有开启自动刷新功能。那么这个功能设置怎么开启呢&#xff1f;一起来看看以下的操作方法教学吧。 操…

AI 在医学中的三个关键作用;联想 AI PC 全阵容亮相 CES 2024

近日&#xff0c;在接受 Northwestern 采访时&#xff0c;著名心脏病学教授 Sanjiv Shah 谈及了 AI 和医学结合所带来的三个关键作用。 Sanjiv Shah 说道&#xff1a;「首先是诊断。有许多疾病&#xff0c;无论是常见的还是罕见的&#xff0c;都容易被误诊或漏诊。AI 可以提醒临…

Farad capacitor法拉电容优点及缺点

Farad capacitor 法拉电容又称Electrical Double-Layer Capacitor双电层电容器、Gold capacitor黄金电容、Super capacitor 超级电容器&#xff0c;是一种化学元件。Super capacitor 超级电容器通过极化电解质来储能&#xff0c;但不发生化学反应&#xff0c;而且储能过程是可逆…