图书管理系统
1 概要设计
一个系统的功能框架和人机交互的感官框架的形成,其目的主要反映在人机交互的界面。系统界面的功能分组、页面布局和整体样式格局,这是用户习惯和系统设计之间的纽带。系统研究和用户的目标和需求的无缝集成的设计是转化为具体的界面设计的一个重要阶段。
概要设计的主要目的是根据需求分析将系统的整体功能体系架构和各个模块的联系进行规划。设计出软件的整体结构有助于系统的框架功能的开发并在前期给客户展示一些系统涵盖的功能范围。数据结构的设计包括数据的分享,设计出数据结构,数据库的生成与优化。
图书管理系统管理子系统包含如下几大模块:管理员可以进行用户管理、图书管理、读者管理、数据管理、数据统计,用户可以进行图书借阅、借阅查询等。各个模块相互协作共同完成企业的业务流程。系统框架如图2-1所示。
各个模块功能介绍:
(1) 用户管理,包括添加普通用户、查询普通用户、重置用户密码等。
(2) 图书管理,包括图书类别管理如增改查图书类别,图书信息管理如增删改查图书信息等。
(3) 读者管理,包括读者类别管理如增改查读者类别,读者信息管理如增删改查读者信息等。
(4) 数据统计,包括图书查询等。
(5) 数据管理,包括删除借阅记录。
2.2 详细设计
详细设计主要是对算法和数据结构和特定的计算机语言实现各模块的实现初步描述。定义各个模块直接通信的接口,与数据库连接的统一接口和实现,为正式开发制定规范。
更改详细设计方案,不能对概要设计方案造成影响;详细设计阶段要出几篇文档,包括详细设计文档和模块设计方案。每个模块的详细设计文档都应该形成规范并以文档的形式公布。
详细设计的任务包括:
(1) 确定每个模块的算法的使用,一个合适的工具来表达算法的过程中选择,掌握每个算法的优缺点;
(2) 为模块内的数据结构进行设计。将需求分析、概要设计阶段确定的概念性的数据类型进行确切的定义;
(3)这个阶段我们将设计出系统开发中使用的大量的接口,接口的规范有助于开发人员程序书写的条理性和一致性的约束。采用接口还有助于我们本套系统与其他遗留系统的整合与集成。对于后期的维护和功能修改,采用统一的接口的方式将会使后期的开发方便快捷。
2.2.1用户管理详细设计
用户可以修改用户密码,管理员可以增加、修改、查看用户的信息。
2.2.2 图书管理详细设计
用户可以进行借阅书籍和归还书籍,管理员可以增加、删除、查询图书类别,增加、删除、查询图书信息。
2.2.3 读者管理详细设计
管理员可以增加、删除、查询读者类别,增加、删除、查询读者信息。
2.3 数据库设计
管理员表记录管理员的用户id、用户密码、用户身份。如表2-1所示。
表2-1 管理员表(Manager)
字段名 |
中文含义 |
数据类型 |
允许空 |
约束条件 |
managerid |
用户id |
char(20) |
N |
主键 |
managerPassword |
用户密码 |
char(12) |
N |
无 |
mIdentity |
用户身份 |
bit |
N |
无 |
读者表记录读者的基本信息,包括读者id、读者姓名、id、电话、数字。如表2-2所示。
表2-2 读者表(Reader)
字段名 |
中文含义 |
数据类型 |
允许空 |
约束条件 |
Rid |
读者id |
char(19) |
N |
主键 |
Rname |
读者姓名 |
nchar(10) |
N |
无 |
Phone |
电话 |
char(11) |
Y |
无 |
Rblnum |
数字 |
Int |
N |
无 |
读书信息表用于记录供应商的基本信息,包括编号、姓名、Id、作者、地址、时间、类型、数量、借出数量、价钱。如表2-3所示。
表2-3 读书信息表(company)
字段名 |
中文含义 |
数据类型 |
允许空 |
约束条件 |
ISBN |
编号 |
char(25) |
N |
主键 |
BookName |
姓名 |
nchar(30) |
N |
无 |
bCategoryid |
Id |
Int |
N |
无 |
author |
作者 |
nchar(20) |
N |
无 |
Publisher |
地址 |
nchar(30) |
N |
无 |
Publishertime |
时间 |
Int |
N |
无 |
Bookstate |
类型 |
Bit |
N |
无 |
Num |
数量 |
Int |
N |
无 |
Lendnum |
借出数量 |
Int |
N |
无 |
Price |
价钱 |
float |
N |
无 |
借书表用于记录商品进货的到货信息,包括身份证号、编号、借阅时间、还书日期、金额、是否归还、是否为新。如表2-4所示。
表2-4借书表(PurchasedMaterialList)
字段名 |
中文含义 |
数据类型 |
允许空 |
约束条件 |
Rid |
身份证号 |
Char(19) |
N |
主键/外键 |
ISBN |
编号 |
Char(25) |
N |
主键/外键 |
LendTime |
借阅时间 |
datetime |
N |
无 |
BookTime |
还书日期 |
datetime |
N |
无 |
Money |
金额 |
fLoat |
N |
无 |
Isback |
是否归还 |
bit |
N |
无 |
Renew |
是否为新 |
Bit |
N |
无 |
图书类别表用于记录售货信息,包括id、类别名。如表2-5所示。
表2-5 图书类别表(SaledMaterialList)
字段名 |
中文含义 |
数据类型 |
允许空 |
约束条件 |
bCategoryid |
Id |
Int |
N |
主键/外键 |
bCategoryname |
类别名 |
nchar(16) |
N |
无 |
读者借阅表用于储存登陆用户的信息,包括Id、用户名、借阅数量、借阅天数。如表2-6所示。
表2-6 读者借阅表(userLogin)
字段名 |
中文含义 |
数据类型 |
允许空 |
约束条件 |
Rcategoryid |
Id |
Int |
N |
主键 |
Rcategoryname |
用户名 |
char(10) |
N |
无 |
Rbnum |
借阅数量 |
Int |
N |
无 |
Rday |
借阅天数 |
Int |
N |
无 |
2.4 界面设计(界面设计采用WinForm)
WinForm自身包含了大量的窗体控件,当然,设计者也可以通过给定的接口来设计自己的窗体控件。本着简洁方便的原则,通过使用微软提供的窗体控件使得程序风格统一并且与用户日常接触的习惯一致。通过为按钮等控件赋予一些声音和颜色特性,给用户更好的反馈效果。
2.4.1登录页面
系统登录页面分为两个部分,一个是管理员登录,一个是普通用户登录。