要求:全程一个角色(管理员即用户)
(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_NAMESPACE
class Dialog : public QDialog
{
Q_OBJECT
public:
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);
}