资源下载地址:https://download.csdn/download/sheziqiong/86764488
资源下载地址:https://download.csdn/download/sheziqiong/86764488

开发环境与开发工具

开发语言:C++MySQL

操作系统:macOS Mojave Version 10.14.5

开发工具:Xcode IDEiTerm 命令行终端

终端环境:iTerm + zshXcode 终端调试台

MySQL Server 版本:5.7.25 MySQL Community Server (GPL)

运行方式:cd 到目录下 make 可完成编译连接,而后直接 ./bsms 即可运行

系统需求分析

  当今的图书销售行业有数据量大、数据结构复杂、数据变化和流动频繁的特点,加上如今的网商平台越来越发达,各行各业的电子化信息化管理的趋势非常明显,图书销售的管理将是一个非常具有实用性的工具系统。有了这样的系统,我们可以通过事务命令的封装、提供比较友好的用户界面,使管理人员便于使用和操作,便捷地实现以往繁琐的图书销售管理操作。

  设计实现中要完成的数据库管理系统,要实现几个功能模块,方便管理人员对图书的销售进行比较全面的管理。具体来说大致具有以下的功能:

  • 基本管理
    • 打印图书完整库存信息,包括编号、名称、作者、库存量、销售量、单价、供应商、供应商单价;
  • 进货
    • 可以显示当前所有图书的库存量、销售情况、供应商单价情况等基本信息;
    • 支持管理员通过信息录入对具体图书进行进货操作,自动更新数据库,打印进货单;
  • 退货
    • 支持管理员通过信息录入对具体图书进行退货操作,自动更新数据库,打印退货单;
  • 统计
    • 可以根据销售情况输出统计报表,具体内容有每月销售总额、总量和排行榜;
  • 销售
    • 支持管理用通过信息录入输入用户要购买书籍的信息,自动更新数据库,打印购买情况;

系统功能模块图

见 repo.pdf

系统设计

数据概念结构设计

根据需求分析和系统设计,管理系统的系统 ER 图

数据库关系模式设计

加粗下划线 的属性为主码,加粗斜体 的属性为外码

  • 图书库存编号,名称,作者,库存量,销售量,单价,供应商,供应商单价 )

    books ( bno, bname, bauthor, bamount, bsaled, bprice, bsupplier, boffer )

  • 图书进货订单号,编号,数量,供应商,供应商单价 )

    purchase ( pno, bno, pnum, bsupplier, boffer )

  • 图书销售销售单号,编号,数量 )

    sale ( sno, bno, snum)

  • 图书退货退货单号,编号,数量)

    refund ( rno, bno, rnum)

数据库物理结构设计

该系统的数据库物理结构设计通过创建表的各个操作的 SQL 语句命令呈现。

数据库创建

create database bsms character set=utf8; /* bsm for book sales management */
use bsms;

表的创建

创建图书库存表
create table books (
bno varchar(16) NOT NULL,
bname varchar(64) NOT NULL,
bauthor varchar(64),
bamount int NOT NULL,
bsaled int NOT NULL,
bprice int NOT NULL,
bsupplier varchar(64),
boffer int,
primary key(bno),
index (bno)
) engine=innodb default charset=utf8;

/* test insert */
insert into books(bno,bname,bauthor,bamount,bsaled,bprice,bsupplier,boffer)
value("testnum","testname","testauth",99,9,9999,"testpbls",1);
创建图书进货表
create table purchase (
pno varchar(16) NOT NULL,
bno varchar(16) NOT NULL,
pnum int NOT NULL,
bsupplier varchar(64),
boffer int,
primary key(pno),
foreign key(bno) references books(bno)
) engine=innodb default charset=utf8;

/* test insert */
insert into purchase(pno,bno,pnum,bsupplier,boffer)
value("testpurchase","testnum",123,"testsupplier",99);

运行界面

下面演示正常操作下的用户操作流程,因为错误处理的运行分支过多,这里不进行详细演示。实际系统中已对各个步骤可能产生的错误进行妥善处理和用户提示。




资源下载地址:https://download.csdn/download/sheziqiong/86764488
资源下载地址:https://download.csdn/download/sheziqiong/86764488

更多推荐

基于C++、MySQL的图书销售管理系统