要求:全程一个角色(管理员即用户)
(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);
}