C++的商品管理系统

一、系统简要介绍

采用C++语言设计实现一个适合超市使用的进出货商品管理系统,实现商品的进货、销售、商品分类、营收管理、订单管理、管理员等功能。

image-20211119013042724

二、系统分层数据流图

img

image-20211119013129952

image-20211119013142826

image-20211119013155587

image-20211119013207495

三、系统结构图

image-20211119013225689

image-20211119013239340

image-20211119013250090

四、数据库设计

根据商品管理系统的概念设计,采用关系模型设计。系统共有3个实体对象表,并使用存储过程、函数和触发器等内容对数据库进行操作。分别是users表、goods表、indent表。

根据用户的属性,users表共包含四个字段,其字段名、属性、类型和约束如下表。用户对象中,用户编号id为主键isAdmin字段表示改用户是否是管理员,只能取两个值,1表示是管理员,0表示普通顾客。

字段名属性类型约束
Id用户编号intPrimary key
username用户名Varchar(30)not null
password密码Varchar(30)not null
isAdmin是否管理员intCheck(isAdmin in(0,1))

根据商品的属性,goods商品信息表包含9个字段,其字段名、属性、类型和约束如下表。商品编号id作为主键。

字段名属性类型约束
id商品编号IntPrimary key
name商品名称varchar(255)not null
brand生产厂商varchar(255)not null
purprice进价double(10)not null
saleprice售价double(10)not null
type商品类型varchar(255)not null
num商品库存intnot null
salesnum商品销量intnot null
date入库时间varchar(255)not null

根据订单的属性,indent订单信息表共包含7个字段,其字段名、属性、类型和约束如下表。其中订单编号id作为主键,商品编号和商品名称只能取goods表中已有的数据。username只能取users表中的数据。

字段名属性类型约束
id订单编号varchar(20)Primary key
username下单人姓名varchar(255)not null
goodid商品编号intnot null
goodname商品名称varchar(255)not null
price商品售价double(10)not null
num购买数量intnot null
sum_price订单总价double(20)not null
五、关键代码展示
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<Windows.h>
#include<WinSock.h>
#include<mysql.h>
#include<string.h>
#include<conio.h>
#include<ctime>
#include<stdio.h>
#include<iomanip>
#include "menu.h"

using namespace std;
#pragma comment(lib,"libmysql.lib")
#pragma comment(lib,"wsock32.lib")
MYSQL* mysql = new MYSQL; //mysql连接  
MYSQL_FIELD* fd;    //字段列数组  
char field[32][32];    //存字段名二维数组  
MYSQL_RES* res; //这个结构代表返回行的一个查询结果集  
MYSQL_ROW column; //一个行数据的类型安全(type-safe)的表示,表示数据行的列  
char query[150]; //查询语句  
//定义用户的用户名和密码
string username = "";
string password = "";
// 定义是否是管理员的标志,默认不是
bool isAdmin = false;
//定义商品类型
enum GoodsType//商品类别
{
    Food = 1,  //食品
    Cosmetic,  //化妆品
    Commodity,  //日用品
    Drink,  //饮料
    Stationery  //文具
};

//商品基本类型
struct Goods//商品基本信息
{
    int code;//商品编号
    string name;//商品名称
    string brand;//生产厂家
    double pur_price;//商品售价
    double price;//商品售价
    int num;//商品库存
    int salenum;//销量
    string type;//商品类别
    string date;//入库时间
};

//商品订单基本类型
struct OrderGoods//商品基本信息
{
    string code;//订单编号
    string username; //下单人
    string goodname; //商品名称
    int goodid;//商品编号
    int num; //该商品的购买数量
    double price;//售价
    double sum_mony;//单品总价
    int salesum;//商品销量,更新销量时要用到
    string date;//入库时间
    double sum_price;//订单总价
};


//连接数据库的函数
bool ConnectDatabase();
//顾客的主菜单,主要是展示商品,购买商品等功能
void CustomerMenu();
//仓库管理员的主菜单
void AdministratorMenu();
//选择登录角色
void ChooseLoginCharacter(string &,bool &);
//顾客登录页面
string CustormerLogin(void);
//顾客选择操作的主函数
void CustormerOperation();
//顾客浏览商品函数
void BrowseGoods();
//顾客购买商品函数
void BuyGoods();

//管理员的登录页面
string AdministratorLogin(void);
//管理员选择操作的主函数
void AdministratorOperation();
//管理员添加商品的函数
void AddGoodsInfo();
//管理员修改商品信息的函数
void EditGoodsInfo();
//管理员删除商品的函数
void DeleteGoodsInfo();
//管理员查询商品的主函数
void SelectGoodsMain();
//管理员选择订单操作方式函数
void SelectOrderOperation();
//管理员查询订单函数
void SelectOrder();
//管理员删除订单函数
void DeleteOrder();
//选择查询方式的函数
void SelectMethod();
//查询商品通过id
void SelectGoodsById();
//查询商品通过商品名称
void SelectGoodsByName();
//查询商品通过生产厂商
void SelectGoodsByBrand();
//查询商品通过商品类型
void SelectGoodsByType();
//查询商品通过价格排序
void SelectGoodsByPriceSort();
//查询商品通过销量排序
void SelectGoodsBySaleSort();
//营收统计菜单
void RevenueMenu();
//选择营收统计方式
void SelectRevenue();
//单个商品营收统计
void RevenueById();
//所有商品营收统计
void RevenueAll();
//管理员订单管理函数
void OrderManagementMenu();
//修改用户的密码函数
void ChangePassword();

部分函数:

image-20211119013716642

image-20211119013728043

image-20211119013738060

image-20211119013746848

六、获取代码

该项目已开源至GitHub,欢迎star。

https://github.com/weiyuexin/CMS

C++商品管理系统50页报告+源码。代码详细并且功能完善。 本系统要求实现商品管理、用户管理、商品购买/退货管理等日常管理工作,以提高工作效率和管理水平。 系统合法普通用户分为用户(买家)和系统管理员,其中,系统管理员负责用户管理和商品管理,用户可以购买/退货管理。本设计要求实现的功能较多,所以将它们分为三个部分来叙述。 商品库存管理系统分为三个主要的功能模块: (1)商品管理模块:包括6个子模块,分别是商品入库模块、商品出库模块、删除商品模块、修改商品模块、查询商品模块和显示商品模块; I商品入库模块:首先自动显示系统中已有的商品信息,如果还没有商品,显示没有记录。提示用户是否需要入库,用户输入需要入库的商品编号,系统自动判断该商品是否已经存在,若存在则无法入库;若不存在,则提示用户输入商品的相关信息,一条商品的所有信息均输入完成之后,系统还会询问是否继续进行其他商品的入库操作。 II商品出库模块:首先自动显示系统中已有的商品信息,并提示用户输入需要出库的商品编号,系统自动判断该商品是否已经存在,若存在则提示用户输入出库的数量;若不存在,则提示用户找不到该商品,无法进行出库操作。I III删除商品模块:首先自动显示系统中已有的商品信息,并提示用户输入需要删除的商品编号,系统自动判断该商品是否已经存在,若存在则提示用户是否删除该商品;若不存在则提示无法找到该商品。 IV修改商品模块:首先自动显示系统中已有的商品信息,并提示用户输入需要修改的商品编号,系统自动判断该商品是否已经存在,若存在则提示用户输入新的商品信息;若不存在则提示无法找到该商品。 V查询商品模块:该模块通过用户输入的商品编号来查找商品,若存在则提示用户是否显示商品所有信息,若不存在则提示无法找到该商品。 VI显示商品模块:该模块负责将所有商品的信息列表显示出来。 (2)用户管理模块:包括5个子模块,分别是新增用户信息模块、删除用户信息模块、修改用户信息模块、查找用户信息模块和显示用户信息模块; I增加用户模块:首先自动显示系统中已有的用户信息,如果还没有用户,显示没有记录。提示管理员是否需要增加,管理员输入需要增加的用户编号,系统自动判断该用户是否已经存在,若存在则无法增加;若不存在,则提示管理员输入要增加用户的相关信息,一条要增加用户的所有信息均输入完成之后,系统还会询问是否继续进行增加其他用户的操作。 II删除用户模块:首先自动显示系统中已有的用户信息,并提示管理员输入需要删除的用户编号,系统自动判断该用户是否已经存在,若存在则提示管理员是否删除该用户;若不存在则提示无法找到该用户。 III修改用户模块:首先自动显示系统中已有的用户信息,并提示管理员输入需要修改的用户编号,系统自动判断该用户是否已经存在,若存在则提示管理员输入新的用户信息;若不存在则提示无法找到该用户。 IV查询用户模块:该模块通过管理员输入的用户编号来查找用户,若存在则提示管理员是否显示用户所有信息,若不存在则提示无法找到该用户。 V显示用户模块:该模块负责将所有用户的信息列表显示出来。 (3)用户购买/退货管理模块:包括2个子模块,分别是用户购买管理模块和用户退货管理模块
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值