书店管理系统(基于MySQL存储)

Posted Linux猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了书店管理系统(基于MySQL存储)相关的知识,希望对你有一定的参考价值。

🎈 作者: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 图书管理

图书管理实现对图书的管理操作,包括:添加图书、更新价格、查询、更新状态、显示所有图书等,界面如下所示。

图1 图书菜单

2.2 供应商管理

供应商管理实现的功能包括:添加、移除和搜索,界面如下所示。

图2 供应商菜单

2.3 采购管理

采购管理实现的功能包括:新建订单、显示所有订单、取消订单、收到的订单等,界面如下所示。

图3 采购菜单

 

2.4 员工管理

员工管理实现的功能包括:新建员工、查询员工、变更为管理者、查看所有员工、更新工资等,界面如下所示。

图4 员工菜单

 

2.5 会员管理

会员管理实现的功能包括:添加会员、查询会员等,界面如下所示。

图5 会员菜单

 

2.6 销售管理

销售管理实现的功能包括:添加新账单、本年度总账单等,界面如下所示。

图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例 后联系获取🎉🎉🎉


🎈 感觉有帮助记得「一键三连支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞


以上是关于书店管理系统(基于MySQL存储)的主要内容,如果未能解决你的问题,请参考以下文章

网上书店web项目中书籍的图片应该放在哪里?

基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践-架构篇

SQL Server 数据库课程设计某书店图书进货、销售管理系统(Myeclipse和mysql)

Java项目:在线书城书店系统(java+jdbc+Servlet+mysql)

基于mysql+php094电子商务图书销售考研网上书店

使用Eclipse开发一个基于Jsp+JavaBean+Servlet的网上书店web应用程序,数据库要求使用MySQL。