C++的商品管理系统

一、系统简要介绍

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

C++的商品管理系统_第1张图片

二、系统分层数据流图

C++的商品管理系统_第2张图片

C++的商品管理系统_第3张图片

C++的商品管理系统_第4张图片

C++的商品管理系统_第5张图片

C++的商品管理系统_第6张图片

三、系统结构图

C++的商品管理系统_第7张图片

C++的商品管理系统_第8张图片

C++的商品管理系统_第9张图片

四、数据库设计

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

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

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

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

字段名 属性 类型 约束
id 商品编号 Int Primary 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 商品库存 int not null
salesnum 商品销量 int not null
date 入库时间 varchar(255) not null

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

字段名 属性 类型 约束
id 订单编号 varchar(20) Primary key
username 下单人姓名 varchar(255) not null
goodid 商品编号 int not null
goodname 商品名称 varchar(255) not null
price 商品售价 double(10) not null
num 购买数量 int not null
sum_price 订单总价 double(20) not null
五、关键代码展示
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include
#include
#include
#include
#include
#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();

部分函数:

C++的商品管理系统_第10张图片

C++的商品管理系统_第11张图片

C++的商品管理系统_第12张图片

C++的商品管理系统_第13张图片

六、获取代码

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

https://github.com/weiyuexin/CMS

你可能感兴趣的:(C++,mysql,centos,数据库,c++,软件工程师)