c++的商品管理系统(可用做课程设计报告)

#include <iostream>
#include <list>
#include "Goods.h"
#include "ShoppingCar.h"
#include "InitialGoods.h"
#include "Master.h"

/**
 * C++项目:原创级超市系统
 * ShopSystem
 *
 * 技术的应用:
 * 面向对象,list集合排序,泛型,封装,继承,
 * 覆盖,遍历,exit()应用,系统年月日时分秒应用
 *
 * 功能:
 * 管理员登入功能,
 * 管理员对商品的增、删、改、查功能,
 * 商品排序功能,商品库存及时更新功能
 * 用户购买商品功能,记录库存功能,
 * 支付系统功能,打印票据功能
 */
int main()
{
    //创建集合,里面放超市里的商品
    list<Goods> L;
    //创建集合,里面放用户购买的商品
    list<ShoppingCar> listCar;
    //加载最初的超市商品,放入ArrayList<List>里面
    InitialGoods initialGoods;
    initialGoods.initialGoods(L);
    //创建管理员对象
    Master master;
    //创建购物车对象
    ShoppingCar shoppingCar;
    while (true) {
        cout<<"你是管理员还是消费者?请输入管理员或消费者 若输入exit则退出超市系统\n";
        string str;
        cin >> str;
        if (str.compare("exit") == 0) {
            cout << "系统已经安全退出,再见";
            return 0;
        } 
        if (str.compare("管理员") == 0) {
            //管理员的登入方法
            master.SignIn();
            //展示超市商品清单的方法
            master.displayGoods(L);
            //展示管理员操作商品的方法
            master.displayFounction();
            //管理员对商品的增、删、改、查方法
            master.displayFounctionCase(L);

        }
        else if (str.compare("消费者") == 0) {
            cout<<"欢迎光临,下表为商品信息\n";
            //展示超市商品清单的方法
            master.displayGoods(L);
            /**
             * 该方法是一个庞大的系统,模拟现实购物及结账过程,
             * 它负责用户将购买的商品,
             * 放入购物车和支付价钱的大系统.
             */
            shoppingCar.addGoodsOfCarAndCountPriceSystem(L, listCar);
            //打印最终的购物票据
            shoppingCar.PrintFinalGoodsMessage(listCar);
            //用户购买商品后,商品库存会及时更新,管理员可以随时增加商品库存
            cout<<"商品的库存已更新,如下\n";
            master.displayGoods(L);
            return 0;
        }
        else
        {
            cout<<"非法输入,请重新输入\n";
        }
    }
}

#pragma once
#include <string>
using namespace std;
class Goods
{
public:
    //商品编号
    string id;
    //商品名字
    string name;
    //商品单价
    double price;
    //商品库存
    int number;
    //创建有参无参构造方法
    Goods();
    Goods(string id, string name, double price, int number);
        
   
};

#pragma once
#include "Goods.h"
#include<list>
class InitialGoods
{
public:
	//初始化商品
	void initialGoods(list<Goods> &L);
};
#pragma once
#include <string>
#include "Goods.h"
#include<list>
using namespace std;
class Master
{
public:
	//管理员姓名
	string name;
	//管理员密码
	string password;

	Master();
	Master(string name, string password);
	//登入方法
	void SignIn();
	//添加商品方法
	void addGoods(list<Goods>& L);
	//删除商品功能
	void deleteGoods(list<Goods>& L);
	//修改商品功能
	void setGoods(list<Goods>& L);
	//查询商品功能
	void seekGoods(list<Goods>& L);
	//展示商品信息功能
	void displayGoods(list<Goods>& L);
	//展示管理员的管理功能
	void displayFounction();
	//实现管理员的功能
	void displayFounctionCase(list<Goods>& L);

};

#pragma once
#include <string>
#include<list>
#include "Goods.h"
using namespace std;
class ShoppingCar
{
public:
	//购物车商品编号
	string id;
	//购物车商品名字
	string name;
	//购物车商品单价
	double price;
	//购物车商品数量
	int amount;
	ShoppingCar();
	ShoppingCar(string id, string name, double price, int amount);
	//展示购物车商品功能
	void displayGoodsCar(list<ShoppingCar> &listCar);
	//打印商品票据
	void PrintFinalGoodsMessage(list<ShoppingCar> &listCar);
	/**
	 * 该方法是一个庞大的系统,模拟现实购物及结账过程,
	 * 它负责用户将购买的商品,
	 * 放入购物车和支付价钱的大系统.
	 */
	void addGoodsOfCarAndCountPriceSystem(list<Goods>& L, list<ShoppingCar>& listCar);
};

#include "Goods.h"

//无参有参构造函数
Goods::Goods()
{
	
}

Goods::Goods(string id, string name, double price, int number)
{
	this->id = id;
	this->name = name;
	this->price = price;
	this->number = number;

}
#include "InitialGoods.h"

//初始化商品
void InitialGoods::initialGoods(list<Goods>& L)
{
	Goods g1("105", "苹果", 2.3, 814);
	Goods g2("107", "葡萄", 3.7, 546);
	Goods g3("104", "草莓", 4.5, 438);
	Goods g4("108", "菠萝", 1.4, 936);
	Goods g5("106", "旺仔", 5.2, 833);
	Goods g6("109", "伊利", 5.6, 783);
	Goods g7("112", "方便面", 2.1, 642);
	Goods g8("110", "小面包", 1.6, 754);
	Goods g9("115", "牛皮糖", 1.0, 358);
	Goods g10("113", "火腿肠", 4.3, 521);
	Goods g11("114", "散龙卫", 1.5, 249);

	L.push_back(g1);
	L.push_back(g2);
	L.push_back(g3);
	L.push_back(g4);
	L.push_back(g5);
	L.push_back(g6);
	L.push_back(g7);
	L.push_back(g8);
	L.push_back(g9);
	L.push_back(g10);
	L.push_back(g11);

}
#include "Master.h"
#include<string>
#include<list>
#include <iostream>
using namespace std;

//管理员默认登入账号密码
Master::Master()
{
	this->name = "123";
	this->password = "123";
}

Master::Master(string name, string password)
{
	this->name = name;
	this->password = password;
}

//登入功能
void Master::SignIn()
{
    cout << "欢迎进入超市系统,请注意,你只有三次登入的机会\n";
    int count = 3;
    while (true) {
        count--;
        cout << "请输入账号:";
        string str1;
        cin >> str1;

        cout << "请输入密码:";
        string str2;
        cin >> str2;
        Master master;
        Master master1(str1, str2);

        if (master.name == master1.name && master.password == master1.password) {
            cout << "登入成功,欢迎进入超市系统\n";
            break;
        }
        else if (count != 0) {
            cout << "账号或密码错误,请重新输入,你还有" << count << "次机会\n";
        }
        else {
            cout << "三次机会用完,退出系统\n";
            exit(0);
        }
    }
}


//添加商品
void Master::addGoods(list<Goods>& L)
{
    cout<<"-----添加商品-----\n";
    cout<<"输入商品编号:";
    string id;
    cin >> id;

    for (list<Goods>::iterator it = L.begin(); it != L.end(); it++) {
        if (id.compare(it->id) == 0) {
            cout << "该商品存在,请添加其他商品\n";
            return;
        }

    }
    cout << "输入商品名字:";
    string name;
    cin >> name;

    cout << "输入商品单价:";
    double price;
    cin >> price;

    cout << "输入商品库存:";
    int number;
    cin >> number;

    Goods g(id,name,price,number);
  
    L.push_back(g);
    cout<<"添加成功\n";

}
//删除商品
void Master::deleteGoods(list<Goods>& L)
{
    Master master ;
    cout<<"-----删除商品-----\n";
    cout<<"如下是商品清单\n";
    master.displayGoods(L);
    cout<<"请输入商品编号:";
    string str ;
    cin >> str;
    
    for (list<Goods>::iterator it = L.begin(); it != L.end(); it++) {
        if (str.compare(it->id) == 0) {
            L.erase(it);
            cout << "删除成功\n";
            return;
        }

    }
    cout << "该商品不存在,请删除其他商品\n";

}
//修改商品
void Master::setGoods(list<Goods>& L)
{
    Master master;
    cout << "-----修改商品-----\n";
    cout << "如下是商品清单\n";
    master.displayGoods(L);
    cout << "请输入要修改的商品编号:";
    string str;
    cin >> str;

    for (list<Goods>::iterator it = L.begin(); it != L.end(); it++) {
        if (str.compare(it->id) == 0) {
            L.erase(it);

            cout << "输入修改后商品名字:";
            string name;
            cin >> name;

            cout << "输入修改后商品单价:";
            double price;
            cin >> price;

            cout << "请输入修改后商品库存:";
            int number;
            cin >> number;

            Goods g(str, name, price, number);
            L.push_back(g);
            cout << "修改成功\n";
            return;
        }

    }
    cout << "该商品不存在,请修改其他商品\n";

}

//查询商品
void Master::seekGoods(list<Goods>& L)
{
    cout << "-----查找商品-----\n";
    cout << "请输入编号或商品名字:";
    string str;
    cin >> str;

    for (list<Goods>::iterator it = L.begin(); it != L.end(); it++) {
        if (str.compare(it->id) == 0 || str.compare(it->name) == 0) { 
            cout << "商品信息如下所示\n";
            cout << it->id << "     " << it->name << "     " << it->price << "     " << it->number << endl;
            return;
        }

    }
    cout << "该商品不存在,请查找其他商品\n";
}

//展示商品信息功能
bool compare(Goods& g1, Goods& g2) {
    return g1.id < g2.id;
}
void Master::displayGoods(list<Goods>& L)
{
    cout<<"编号     商品     单价     库存\n";
    //将集合里的商品按照编号由小到大排序
    L.sort(compare);
    for (list<Goods>::iterator it = L.begin(); it != L.end(); it++) {
        
            cout << it->id << "     " << it->name << "     " << it->price << "     " << it->number << endl;
       
    }
}


















void Master::displayFounction()
{
    cout << "增加商品请输入1" << endl;
    cout << "删除商品请输入2" << endl;
    cout << "修改商品请输入3" << endl;
    cout << "查询商品请输入4" << endl;
    cout << "展示商品请输入5" << endl;
    cout << "退出管理商品系统请输入0" << endl;
}

void Master::displayFounctionCase(list<Goods>& L)
{
    //创建管理员对象
    Master master ;
    while (true) {
       cout<<"请输入0/1/2/3/4/5:";
        int n ;
        cin >> n;
        if (n == 0) {
            break;
        }
        switch (n) {
        case 1: {
            //增加商品
            master.addGoods(L);
            break;
        }
        case 2: {
            //删除商品
            master.deleteGoods(L);
            break;
        }
        case 3: {
            //修改商品
            master.setGoods(L);
            break;
        }
        case 4: {
            //查询商品
            master.seekGoods(L);
            break;
        }
        case 5: {
            //展示商品信息
            master.displayGoods(L);
            break;
        }
        default:
           cout<<"无效数字,请重新输入\n";
        }
    }
}
#include "ShoppingCar.h"
#include<iostream>
#include<Windows.h>
using namespace std;

ShoppingCar::ShoppingCar()
{
}

ShoppingCar::ShoppingCar(string id, string name, double price, int amount)
{
	this->id = id;//购物车商品编号
	this->name = name;//商品名
	this->price = price;//商品单价
	this->amount = amount;//购买商品数量
}

//展示购物车商品功能
bool compare2(ShoppingCar& s1, ShoppingCar& s2) {
	return s1.id < s2.id;
}
void ShoppingCar::displayGoodsCar(list<ShoppingCar>& listCar)
{
	cout<<"编号     商品     单价     购买数量\n";
	//对购物车集合里的商品按照id进行由小到大排序
	listCar.sort(compare2);
	for (list<ShoppingCar>::iterator it = listCar.begin(); it != listCar.end(); it++) {

		cout << it->id << "     " << it->name << "     " << it->price << "       " << it->amount << endl;

	}



}
//打印商品票据
void ShoppingCar::PrintFinalGoodsMessage(list<ShoppingCar>& listCar)
{
	ShoppingCar shoppingCar;
	cout << "你的打印单:\n";
	//展示购物车美食信息
	shoppingCar.displayGoodsCar(listCar);
	//获取系统时间
	SYSTEMTIME sys;
	GetLocalTime(&sys);
	printf("打印于:%4d/%02d/%02d %02d:%02d:%02d\n", sys.wYear, sys.wMonth, sys.wDay, sys.wHour, sys.wMinute, sys.wSecond);
	cout << "购物愉快,欢迎下次光临\n";
}
/**
     * 该方法是一个庞大的系统,模拟现实购物及结账过程,
     * 它负责用户将购买的商品,
     * 放入购物车和支付价钱的大系统.
     */
void ShoppingCar::addGoodsOfCarAndCountPriceSystem(list<Goods>& L, list<ShoppingCar>& listCar)
{
    ShoppingCar shoppingCar;
    double sum = 0;
    cout << "请选择你要购买的商品名字及数量,输入格式:\n商品编号 \n数量\n输入0表示不再购物,进入结账系统,请按格式输入:\n";
    while (true) {
        string id;
        cin >> id;

        if (id.compare("0") == 0) {
            break;
        }
        int amount;
        cin >> amount;

        for (list<Goods>::iterator it = L.begin(); it != L.end(); it++) {
            if (id.compare(it->id) == 0) {
                if (it->number >= amount) {
                    //如果购买的数量在库存内,可以购买该数量的商品,
                    //否则提示库存不足,重新输入
                    ShoppingCar s(it->id, it->name, it->price, amount);
                    listCar.push_back(s);
                    //计算此商品的价钱
                    sum += it->price * amount;
                    //更新此商品的库存
                    it->number = it->number - amount;

                }
                else {
                    cout << "库存不足,请重新输入\n";
                    break;
                }
            }
            
        }
    }

    cout << "您买的商品信息如下\n";
    //展示购物车商品信息
    shoppingCar.displayGoodsCar(listCar);
    printf("需要支付%.1f元,请支付:", sum);
    double money;
    cin >> money;

    if (money > sum) {
        printf("支付成功,找你%.1f元\n", money - sum);
    }
    else if (money == sum) {
        cout << "支付成功\n";
    }
    else {
        double ca = sum - money;
        while (ca > 0) {
            printf("你支付钱过少,你需要再支付%.1f元,请支付", ca);
            double money1;
            cin >> money1;
            ca = ca - money1;
            if (ca == 0.0) {
                cout << "支付成功\n";
                break;
            }
            if (ca < 0) {
                printf("支付成功,找你%.1f元\n", -1 * ca);
            }

        }

    }

}

摘要

科技水平发展日新月异,人们深刻认识到计算机的强大功能,如今,我们生活的地方到处都充斥着计算机的身影,计算机信息管理是计算机学科的重要组成部分,与传统的纸张记录相比有着相当大的优势。目前对于超市这种大型企业,拥有一个计算机超市商品信息管理系统是非常有必要的。因此本文开发了一个针对商品信息管理的软件来提高信息的传递效率。

该系统名为超市商品信息管理系统,系统开发环境基于C++语言,借助于 vs2022进行开发。该系统由一个包Shop System和Goods、Master、InitialGoods、ShoppingCart组成,各司其职,完成系统要求。该系统应用了十一项c++技术并有十二项功能。这些技术有面向对象,集合排序,实现接口,泛型,封装,继承,覆盖,遍历,系统时间应用等。功能有管理员登入功能,管理员对商品的增、删、改、查功能,商品排序功能,商品库存及时更新功能,用户购买商品功能,记录库存功能,支付系统功能,打印票据功能,修复输入环节故障功能。

网上超市购物管理系统,具体功能如下: 1、商品基本信息 1)商品代码,商品名称,商品价格,商品库存。 2)设计约定:可以假定超市有 N 种商品,在系统启动时将这些商品信息加载到商品库中。 2、顾客信息 1)普通顾客属性:ID(顾客代码)(随机生成或流水号) 2)普通会员:ID(会员代码),会员姓名,会员电话,会员积分。 3)高级会员:ID(会员代号),会员姓名,会员电话,会员积分,副卡 ID。 3、购物管理 1)为每一个普通顾客生成临时顾客代码。 2)普通会员购买商品时,可享受 9.8 折,普通顾客在单次购物满 1000 元,添加个人基本信息后,可成为普通会员。 3)高级会员购买商品时,可享受 9.5 折,普通顾客在单次购物满 2000 元,添加个人基本信息后,或普通会员单次购物满 1000 元可成为高级会员。普通会员和高级会员可查询 1 年内的购物详单,会员购物积分按照 1 元 1 分计。 4)每次购物后,输出购物清单。包括顾客代号(会员代码)、商品的名称、代号、单价、折扣、数量、价格以及合计价格、购买时间。 4、店铺管理 1)实现商品信息的添加、修改、删除、查询的功。可查询库存少于一定数量的商品。 2)实现会员资料的查询、修改、删除;实现会员整理的功能,对于 1 年内无购物的会员,进行自动删除。 3)可以按照时间区间统计,包括:销售总额;分类统计商品的销售情况;统计对会员的让利情况。
c++网上购物系统(免积分下载)功能描述如下: 设计一个简易的网购系统,利用单链表来处理买家信息、卖家信息与商品信息,要求实现如下功能。 (1)初始化菜单 程序开始运行后显示菜单,要求菜单能完全展示本系统的功能:提示三种用户身份(买家、卖家、管理员),并输出每项身份的功能权限。尽力到设计美观。 (2)选择用户身份权限 考虑到本系统有用户身份,需要提示用户输入来选择此时的身份是买家、卖家、还是管理员。 (3)买家查询商品 选择买家身份。查询需要购买的商品名称或者店铺名称,如果相应商品有库存,输出满足要求的商品信息。如果没有此商品或者库存为0,输出提示信息。 可输出全部商品信息,若当前没有商品,输出提示信息。 (4)买家购买商品 选择买家身份。买家首先输入自己的编号,而后输入要购买的商品,如果没有库存,提示请更换商品,如果有库存,买家信息中购买商品处增加此商品编号,商品文件中,商品库存减小一份。 (5)卖家发布商品 选择卖家身份。卖家首先输入自己的卖家编号,买家用户输入待增加的商品的编号,如果编号存在,则判断商品是否是该卖家所售,如果是,修改库存,如果不是,输出提示信息,如果编号不存在,逐项录入新增商品信息。 (6)卖家修改商品 选择卖家身份。卖家首先输入自己的卖家编号,输入自己要修改商品编号,若商品不存在或不是该买家所售卖,输出提示信息。如果商品存在,则提示选择要修改的内容,并输出修改后的此商品信息。 (7)卖家删除商品 选择卖家身份。卖家首先输入自己的卖家编号,输入自己要删除的商品编号,若编号不存在或不是该卖家所售,输出提示信息。如果商品存在,则删除该商品并提示删除成功。 (8)管理员删除买家信息、卖家信息 选择管理员身份后,选择管理员删除买家信息功能。输入要删除的买家的编号,如果买家存在,删除买家信息并提示;如果不存在,输出提示信息。 (9)保存信息到文件 选择管理员身份后,可将买家信息、卖家信息、商品信息分别保存到txt文件中。 (10)退出系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值