模拟超市商品结算系统

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

(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.hqwc.cn/news/339770.html

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

相关文章

如何充分发挥HubSpot CRM优势,优化销售流程?

在竞争激烈的商业环境中&#xff0c;销售流程的优化对企业至关重要。HubSpot CRM作为一款全面而强大的工具&#xff0c;为企业提供了实现销售优化的完美平台。让我们深入了解如何最大程度地利用HubSpot CRM&#xff0c;提高销售效率。 1.建立清晰的销售流程 HubSpot CRM的第一…

MySQL的三种存储引擎 InnoDB、MyISAM、Memory

InnoDB 1). 介绍 InnoDB是一种兼顾高可靠性和高性能的通用存储引擎&#xff0c;在 MySQL 5.5 之后&#xff0c;InnoDB是默认的MySQL 存储引擎。 2). 特点 DML操作遵循ACID模型&#xff0c;支持事务&#xff1b; 行级锁&#xff0c;提高并发访问性能&#xff1b; 支持外键F…

爱情视频相册怎么做?2.14情人节表白/活动视频模板PR剪辑素材

美好爱情故事&#xff0c;情人节表白视频相册怎么做&#xff1f;粉色浪漫的PR情人节表白/活动视频模板剪辑素材mogrt下载。 特征&#xff1a;可编辑文字和调整颜色&#xff0c;通过智能对象替换图像&#xff0c;RGB颜色模式&#xff0c;易于自定义&#xff0c;无需插件&#xf…

【深入浅出JVM原理及调优】「搭建理论知识框架」全方位带你认识和了解Java虚拟机的特性和本质

全方位带你认识和了解Java虚拟机的特性和本质 专栏介绍前提准备面向人群知识脉络背景介绍Java虚拟机定义抽象规范多种平台实现 JVM和JRE、JDK的关系JVM实例和JVM执行引擎实例JVM的基本结构类加载子系统Bootstrap ClassLoaderExtension ClassLoaderApp ClassLoaderCustom ClassL…

Linux第24步_安装windows下的VisualStudioCode软件

Windows下的VSCode安装后&#xff0c;还需要安装gcc编译器和g编译器。 gcc&#xff1a;编译C语言程序的编译器&#xff1b; g&#xff1a;编译C代码的编译器&#xff1b; 1、在Windows下安装VSCode&#xff1b; 双击“VSCodeUserSetup-x64-1.50.1.exe”,直到安装完成。 2、…

如何在群辉NAS使用Docker搭建容器魔方并实现无公网ip远程访问

文章目录 1. 拉取容器魔方镜像2. 运行容器魔方3. 本地访问容器魔方4. 群辉安装Cpolar5. 配置容器魔方远程地址6. 远程访问测试7. 固定公网地址 本文主要介绍如何在群辉7.2版本中使用Docker安装容器魔方&#xff0c;并结合Cpolar内网穿透工具实现远程访问本地网心云容器魔方界面…

用可视化案例讲Rust编程2. 编码的核心组成:函数

从第一天学习编程&#xff0c;可能大家就听说这样的组成公式&#xff1a; 程序算法数据结构 ——该公式出自著名计算机科学家沃思(Nikiklaus Wirth) 实际上&#xff0c;程序除了以上两个主要要素之外&#xff0c;还应当采用结构化程序设计方法进行程序设计&#xff0c;并且用…

Salesforce生态系统2024年就业趋势

对于Salesforce专业人士来说&#xff0c;新一年的开始都是激动人心的。但2023年仍存在显著挑战&#xff0c;经济技术低迷导致裁员&#xff0c;以及Salesforce生态系统增长放缓等等&#xff0c;这些挑战将延续到2024年。 回顾2023年 2023年&#xff0c;Salesforce生态系统以及…

回顾2023,立2024flag

文章目录 回顾2023与CSDN相识专栏整理数据回顾 立2024flag 回顾2023 在过去的一年里&#xff0c;前端技术不断演进和创新。新技术、新框架层出不穷&#xff0c;给前端工程师提供了更多选择和挑战。2023年已经成为过去&#xff0c;回首这一年&#xff0c;我们也经历了许多挑战和…

1.11寒假集训

A: 解题思路&#xff1a; 这题看示例不难发现&#xff0c;答案就是a * b的每一项的和&#xff0c;例如111 111就是111*&#xff08;1 1 1&#xff09; 333,知道后此题就迎刃而解了 下面是c代码&#xff1a; #include<iostream> using namespace std; int main() {in…

比亚迪:从低谷中涅槃,内功造就辉煌

修炼内功才能绽放光芒吗? 比亚迪用自己的奋斗史证明~ 只有经历低谷的洗礼&#xff0c;才能铸就属于自己的辉煌。 比亚迪这家公司的发展历程可谓是一部从战略转型到今天这个行业翘楚的奋斗史&#xff0c;真是跌宕起伏令人唏嘘。早期比亚迪从一个传统企业转型到汽车行业&#xf…

华为常用display命令合辑,真香!

下午好&#xff0c;我的网工朋友。 今天给你做了个命令整合&#xff0c;华为设备提供了多条display命令用于查看硬件部件、接口及软件的状态信息。 通常这些状态信息可以为用户故障处理提供定位思路。 需要的收藏起来哈。 今日文章阅读福利&#xff1a;《网工必备华为网络交…