🎈 作者:Linux猿
🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
🎈 关注专栏:C/C++/Java课程设计100例 优质好文持续更新中……🚀🚀🚀
🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬
目录
一、设计思路
二、主要功能
2.1 图书管理
2.2 供应商管理
2.3 采购管理
2.4 员工管理
2.5 会员管理
2.6 销售管理
三、功能实现
2.1 图书管理
2.2 供应商管理
2.3 采购管理
2.4 员工管理
2.5 会员管理
2.6 销售管理
四、MySQL 表
4.1 图书表
4.2 供应商表
4.3 采购表
4.4 员工表
4.5 会员表
4.6 销售表
本篇文章主要对基于 MySQL 存储的书店管理系统进行详细的讲解,包括对设计思路、主要功能、主要功能实现以及 MySQL 存储的表的讲解。
一、设计思路
本文的设计思路如下所示。
在上图中,显示主界面后,输入对应的参数进入对应的功能,包括:图书管理、供应商管理、采购管理、员工管理、会员管理、销售管理等,因为具体的小功能比较多,进一步详细的功能未在上图中展示。
主界面如下所示。
二、主要功能
2.1 图书管理
图书管理实现对图书的管理操作,包括:添加图书、更新价格、查询、更新状态、显示所有图书等,界面如下所示。
2.2 供应商管理
供应商管理实现的功能包括:添加、移除和搜索,界面如下所示。
2.3 采购管理
采购管理实现的功能包括:新建订单、显示所有订单、取消订单、收到的订单等,界面如下所示。
2.4 员工管理
员工管理实现的功能包括:新建员工、查询员工、变更为管理者、查看所有员工、更新工资等,界面如下所示。
2.5 会员管理
会员管理实现的功能包括:添加会员、查询会员等,界面如下所示。
2.6 销售管理
销售管理实现的功能包括:添加新账单、本年度总账单等,界面如下所示。
三、功能实现
2.1 图书管理
图书管理实现对图书的管理操作,包括:添加图书、更新价格、查询、更新状态、显示所有图书等,界面如下所示。
其中,添加图书代码如下所示。
//添加图书
void books::add()
{
//接收输入
cout << "请输入书名 : " ;
cin >> name;
cout << "请输入作者 : ";
cin >> auth;
cout << "请输入价格 : ";
cin >> price;
cout << "请输入库存数量 : ";
cin >> qty;
//插入数据
stmt.str("");
stmt << "Insert into books(name,auth,price,qty) values('" << name << "','" << auth << "'," << price << "," << qty << ");";
query = stmt.str();
q = query.c_str();
mysql_query(conn, q);
res_set = mysql_store_result(conn);
if (!(res_set))
cout << endl << endl << "更新图书信息成功" << endl << endl << endl;
else
cout << endl << endl << "更新失败!请检查数据库!" << endl << endl << endl;
}
管理员需要输入书名、作者、价格、库存数量,然后组织成 SQL 语句,执行插入操作,最后根据插入返回结果,输出插入是否成功。
其它功能类似添加逻辑,不再详细展开叙述。
2.2 供应商管理
供应商管理实现的功能包括:添加、移除和搜索,界面如下所示。
供应商管理的子菜单如下所示。
void sup_menu()
{
int c;
suppliers s;
cout << "*************************************************" << endl;
cout << " 供应商菜单" << endl;
cout << "*************************************************" << endl;
cout << " 1. 添加" << endl;
cout << " 2. 移除" << endl;
cout << " 3. 搜索" << endl;
cout << " 4. 返回主菜单" << endl << endl << endl;
cout << "请输入你的选择 : ";
cin >> c;
switch (c)
{
case 1:
s.add_sup();
break;
case 2:
s.remove_supplier();
break;
case 3:
s.search_id();
break;
case 4:
return;
default:
cout << "输入错误!" << endl;
break;
}
}
通过用户输入来判断执行哪个操作,其中 add_sup 、remove_supplier、search_id 分别对应添加、移除和搜索。
2.3 采购管理
采购管理实现的功能包括:新建订单、显示所有订单、取消订单、收到的订单等,界面如下所示。
新建订单如下所示。
void purchases::new_ord()
{
cout << "请输入图书 ID : ";
cin >> book_id;
cout << "请输入供应商 ID : ";
cin >> sup_id;
cout << "请输入数量 : ";
cin >> qty;
cout << "预计交付量(天) : ";
cin >> eta;
stmt.str("");
stmt << "Insert into purchases (book_id,sup_id,qty,dt_ord,eta) values ( " << book_id << "," << sup_id << "," << qty << ",curdate(),Date_add(curdate(), INTERVAL " << eta << " DAY)" << ";";
query = stmt.str();
q = query.c_str();
mysql_query(conn,q);
cout << "添加订单成功!";
}
管理员需要输入图书 ID、供应商 ID、数量、预计交付量,然后组织为 SQL 语句,执行对应 SQL 语句即可。
2.4 员工管理
员工管理实现的功能包括:新建员工、查询员工、变更为管理者、查看所有员工、更新工资等,界面如下所示。
将普通员工变更为管理者的代码实现如下所示。
void employees::assign_mgr_stat()
{
cout << "请输入 ID : ";
cin >> id ;
stmt.str("");
stmt << "Select mgr_stat from employees where id = " << id << ";";
query = stmt.str();
q = query.c_str();
mysql_query(conn,q);
res_set = mysql_store_result(conn);
if ((row = mysql_fetch_row(res_set)) == NULL)
{
cout << "员工未发现!!" << endl << endl << endl;
return;
}
else
{
mgr_status = (char*) row[0];
if (mgr_status == "T")
{
cout << "你没有管理员权限!!!" << endl << endl ;
return;
}
}
cout << "请输入授权为管理员的 ID : ";
cin >> id;
stmt.str("");
stmt << "update employees set mgr_stat = 'T' where id = " << id << ";";
query = stmt.str();
q = query.c_str();
mysql_query(conn,q);
cout << endl << endl << endl;
cout << "授权管理员成功!";
cout << endl << endl << endl;
}
首先,需要输入 ID,验证员工是否存在,同时需要具备管理员权限,然后执行 SQL 语句,修改指定员工为管理员。
2.5 会员管理
会员管理实现的功能包括:添加会员、查询会员等,界面如下所示。
void members::search_mem()
{
cout << "请输入会员 ID : ";
cin >> id;
stmt.str("");
stmt << "Select * from members where id = " << id << ";";
query = stmt.str();
q = query.c_str();
mysql_query(conn,q);
res_set = mysql_store_result(conn);
if ((row = mysql_fetch_row(res_set)) != NULL)
{
cout << "会员详情:" << endl ;
cout << "姓名 : " << row[1] << endl;
cout << "地址 : " << endl << row[2] << endl << row[3] << endl << row[4] << endl;
cout << "国家 : " << row[5] << endl;
cout << "联系方式 : " << row[6] << endl;
cout << "开始日期 : " << row[7] << endl;
cout << "结束日期 : " << row[8] << endl;
cout << "当前状态 : " << row[9] << endl << endl << endl;
}
else
{
cout << "没有查询到会员信息!" << endl << endl << endl;
}
}
输入会员 ID 后查询对应的员工,然后输入员工的详细信息。
2.6 销售管理
销售管理实现的功能包括:添加新账单、本年度总账单等,销售菜单界面代码实现如下所示。
void sal_menu()
{
int c;
sales s;
cout << "*************************************************" << endl;
cout << " 销售菜单" << endl;
cout << "*************************************************" << endl;
cout << " 1. 添加新账单" << endl;
cout << " 2. 本年度总账单" << endl;
cout << " 3. 返回主菜单" << endl << endl << endl;
cout << "请输入 : ";
cin >> c;
switch (c)
{
case 1:
s.add();
break;
case 2:
s.find_total_sales();
break;
case 3:
return;
default:
cout << "输入错误!" << endl;
break;
}
}
输入操作对应的数字,执行对应的函数,其中,add 对应添加新账单,find_total_sales 对应本年度总账单。
四、MySQL 表
4.1 图书表
图书表包括字段如下所示。
int id // Primary Key
string name
string auth
int price
int qty
4.2 供应商表
供应商表包含的字段如下所示。
int id //Primary Key
string name
long int phn
string addr_line1
string addr_line2
string addr_city
string addr_state
4.3 采购表
采购表包含的字段如下所示。
int ord_id //Primary Key
int book_id //FK ref (books)
int sup_id //FK ref (suppliers)
int qty
date dt_ordered
int eta
char received // Check(T or C or F) def (F)
int inv
4.4 员工表
员工表包含的字段如下所示。
int id //Primary Key
string name
string addr_line1
string addr_line2
string addr_city
string addr_state
long int phn
date date_of_joining
long int salary
string mgr_status //check(T or F) def f
4.5 会员表
会员表包含的字段如下所示。
int id //Primary Key
string name
string addr_line1
string addr_line2
string addr_city
string addr_state
long int phn
date date_of_joining
long int salary
string mgr_status //check(T or F) def f
4.6 销售表
销售表包含的字段如下所示。
int invoice_id //Primary key
int member_id //FK ref member(id)
int book_id //FK ref books(id)
int qty
int amount
date date_s
🍓🍓🍓 如果需要源码请订阅专栏C/C++/Java课程设计100例 后联系获取🎉🎉🎉
🎈 感觉有帮助记得「一键三连」支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章」回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞