资源描述
图书管理系统详细设计方案
目录
图书管理系统详细设计方案ﻩ3
1.ﻩ引言ﻩ3
1。1系统开发背景ﻩ3
1。2系统设计目标 4
1。3系统设计原则ﻩ4
2。ﻩ系统总体分析 5
2.1功能说明 5
2.2系统总体体结构ﻩ6
2。3系统的流程图、PAD图及N-S图ﻩ7
2。3。1管理员、读者登录账户ﻩ7
2.4 CDM和PDM的生成 14
3。 物理设计ﻩ16
3.1建立索引以及存储结构 16
4.ﻩ数据库设计 17
4。1数据库建立ﻩ17
4。2数据库用户权限管理ﻩ22
4.3建立触发器,存储过程ﻩ22
5.ﻩ系统实现ﻩ24
5。1系统功能模块图:ﻩ24
5。2开发平台ﻩ25
5.3图书管理模块的实现ﻩ27
5.4系统硬件需求 34
图书管理系统详细设计方案
1. 引言
本系统主要实现对图书馆信息的管理,主要功能为管理有关读者,书籍,借阅和管理者的信息等 。本系统结构分为读者信息管理模块,书籍信息管理模块,借阅信息管理模块,管理者信息管理模块。读者信息管理部分有两方面的功能,可以浏览读者的信息,可以对读者信息进行维护。书籍信息管理可以浏览书籍的信息,可以对书籍信息进行维护.借阅信息管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。管理者信息管理可以显示数据库中管理者的情况,可以对管理者信息进行维护。
1.1系统开发背景ﻩ
近年来,随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理.
另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。
图书管理工作面对大量的可模块化处理的信息,是当今信息革命的一个重要阵地.本公司图书管理系统就是采用现代化的信息管理方式代替手工管理方式,提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。从以前的手工管理的记录中我们可以发现这样的问题:
检索速度慢、效率低
因为图书馆的藏书种类多、数量多,将藏书准确地分门别类,快速检索,手工进行非常困难往往是终于查到了书的信息,馆中没有此书或已被别人借走。图书馆的规模越大,这个问题越突出.
借书、还书工作量大
借书、还书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、 还书登记、实存图书的更新以及借出图书超期、遗失等的处理,其工作量之大,往 往是人工操作所难以胜任的。而且经常会出现这样那样的差错。
图书统计工作难、藏书更新不能及时完成
图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制。
1。2系统设计目标
具体目标为:
持有效卡人能很方便的借还图书。
图书管理人员也能很方便的为借阅者办理手续。
管理人员能随时查询和打印图书信息和借阅信息等。
读者也能随时查询到自己的借阅情况及历史记录。
经济合理的运营成本。
1。3系统设计原则
先进性:采用当前先进成熟的技术和设备;
安全性:避免非法人员冒借图书,造成图书的丢失。
实用性:合理配置和选取合适的产品型号,使整个系统稳定、可靠和成本最省.
方便性:完善的管理系统,软件操作清晰,管理人员和持卡用户都能方便的使用系统。
可扩展性及易维护性原则:系统在容量和功能上考虑了用户将来的需求增长,可以随意地增加新的设备或新的系统,并保证使用的一致性.
开放性:为保证各供应商产品的协同运行,同时考虑到投资者的长远利益,本系统必须是开放系统,并结合相关的国际标准或工业标准执行。
2. 系统总体分析
2。1功能说明
图书馆管理信息系统需要完成功能主要有:
1) 读者基本信息的输入,包括借书证编号、读者姓名、读者性别等。
2) 读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。
3) 书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。
4) 书籍类别信息的查询、修改,包括类别编号、类别名称。
5) 书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。
6) 书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。
7) 借书信息的输入,包括读者借书证编号、书籍编号、借书日期。
8) 借书信息的查询、修改,包括借书证编号、借书证编号、读者姓名、书籍编号、书籍名称、借书日期等.
9) 还书信息的输入,包括借书证编号、书籍编号、还书日期。
10) 还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。
11) 超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额.
12) 超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等
13) 管理员管理:包括创建读者用户信息、删除读者用户信息、添加图书信息、删除图书信息。
14) 超级管理员管理:包括创建管理员用户信息、删除管理员用户信息、创建读者用户信息、删除读者用户信息、添加图书信息、删除图书信息。
2.2系统总体体结构
2-1总体体结构图
2.3系统的流程图、PAD图及N—S图
2.3。1管理员、读者登录账户
1管理员、读者登录账户——流程
账号登陆界面
验证账号是否存在
判断是否管理员
管理员界面
读者界面
退出
是否注册
否
是
否
否
是
是
用户注册
图2-2流程图
2管理员、读者登录账户-—PAD图
P1:输入账号
C1:判断是账号是否
C2: 判断是否是管理者还是读者
P2:登陆管理员界面
P3:登陆读者界面
P4:使用者注册账号
P1
P2
P3
C1
P4
C2
图2-3 PAD图
3管理员、读者登录账户—-N—S图
P1:输入账号
C1:判断是账号是否
C2: 判断是否是管理者还是读者
P2:登陆管理员界面
P3:登陆读者界面
P4:使用者注册账号
图2—4管理员N—S图
查看用户资料
修改书籍类型
设定借书数量
增加书籍类型
删除会员账号
收到会员借书申请
同意会员借书成功
注销退出
增加书籍
修改书籍
报损书籍
修改成功
管理员登陆界面
登陆成功
是
验证
核对是否超期
修改密码
是
否
图2—5流程图
X=
P2
def
P5
P6
P7
P8
P9
P10
P11
P12
P13
P14
P15
P16
P17
P18
C3
P19
P20
P2-登陆管理员界面
P5-个人资料
P6-书籍类型管理界面
P7-书籍管理界面
P8-读者管理界面
P9-修改密码
P10-查询类型
P11-修改类型
P12-设定图书数量
P13-增加书籍类型
P14-报损图书
P15-删除会员信息
P16-修改图书
P17-增加图书
P18-删除图书
P19-同意读者借书
P20-返回借阅不合格
C3-核对是否符合借书要求
图2—6 PAD图
P3-登陆读者界面 P21-搜索书籍信息 P22-申请借阅权利
P23-修改个人信息 P24-返回个人信息 P25-修改成功提示
P26-返回借阅界面 P27-管理员验证 P28-返回借阅界面
P29-借阅成功提示 C4-验证信息符合要求 C5-系统验证
C6-核对是否有借阅权利
图2-7N-S图
会员登陆界面
登陆成功
查看书籍信息
搜索书籍
申请阅书籍
借阅成功
注销退出
修改个人信息
修改成功
是
是
否
否
否
是
系统验证
系统验证
管理员验证
图2-8流程图
X=
P3
def
P22
P21
P23
C4
C5
P24
P25
P26
P27
C6
P28
P29
P3-登陆读者界面 P21-搜索书籍信息 P22-申请借阅权利
P23-修改个人信息 P24-返回个人信息 P25-修改成功提示
P26-返回借阅界面 P27-管理员验证 P28-返回借阅界面
P29-借阅成功提示 C4-验证信息符合要求 C5-系统验证
C6-核对是否有借阅权利
图2—9 PAD图
P2-登陆管理员界面 P5-个人资料 P6-书籍类型管理界面
P7-书籍管理界面 P8-读者管理界面 P9-修改密码
P10-查询类型 P11-修改类型 P12-设定图书数量
P13-增加书籍类型 P14-报损图书 P15-删除会员信息
P16-修改图书 P17-增加图书 P18-删除图书
P19-同意读者借书 P20-返回借阅不合格 C3-核对是否符合借书要求
图2—10
2.4 CDM和PDM的生成
1.启动PowerDesign,弹出主对话框,依次选择“file-new—Conceptual Data Model”,单击“OK”按钮,出现CDM工作区,如图2—1所示.
图2—11 CDM窗口
2.绘制实体
①打开CDM工作区,选中工具选项板上“实体图标".
②在CDM工作区中单击任意处,产生实体图形。
③双击CDM工作区中的实体图形,出现定义实体特征的窗口。
④输入Name、Code内容。这里Name表示实体的描述名称,一般最好用中文描述(如:部门), Code表示实体的代码名称,最好用简化的英文描述(如:depart).
⑤需要的话,输入实体表中可能存放的记录数(Number),这个数字用于统计数据库的尺寸。
⑥需要的话,可以定义实体的规则(Rules)、描述(Description)、注释(Annotation)、属性(Attributes).
⑦单击“确定"按钮,当前CDM工作区就定义了一个实体。
按要求建立完实体和实体间的联系后,生成CDM实体模型,如图2-12所示。
图2—12 CDM实体模型
3. 物理设计
数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。主要体现在后者。
3.1建立索引以及存储结构
(1)建立索引:
①对book_style表在bookstyleno属性列上建立聚集索引,在bookstyle属性列上建立非聚集索引。
②对System_book表在bookid上建立聚集索引,在bookname、bookstyleno、boookauther、bookpub上建立非聚集索引。
③对return_record表在bookid上建立聚集索引,在readerid上建立非聚集索引
④对reader_fee表在bookid上建立聚集索引,在readerid上建立非聚集索引。
⑤对system_reader表在readerid列上建立聚集索引
⑥对boorow_record表在bookid上建立聚集所以,在readerid上建立非聚集索引
⑦对system_Administrator表在administratorid列上建立聚集索引。
⑧对system_Super_Administrator表在superadministratorid 上建立聚集索引。
(2)存储结构
确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置.
将日志文件和数据库对象(表、索引等)分别放在不同的磁盘可以改进系统的性能。所以系统将日志文件和数据文件存放在不同磁盘上。
4. 数据库设计
4。1数据库建立
1数据库及数据库表的建立
(1)创建数据库
USE master
GO
CREATE DATABASE librarysystem
ON
( NAME = librarysystem,
FILENAME = 'd:\librarysystem.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = ’library',
FILENAME = ’e:\librarysystem.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GO
(2)书本类别表建立
use librarysystem
go
create table book_style
(
bookstyleno varchar(30) primary key,
bookstyle varchar(30)
)
go
(3)创建书库表
create table system_books
(
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookstyleno varchar(30) Not null,
bookauthor varchar(30),
bookpub varchar(30) ,
bookpubdate datetime,
bookindate datetime ,
isborrowed bit,
foreign key (bookstyleno) references book_style (bookstyleno),
)
go
(4)借书证表建立
create table system_readers
(
readerid varchar(9)primary key,
readername varchar(9)not null ,
readersex varchar(2) not null,
readertype varchar(10),
regdate datetime,
booktotal int,
borrowednum int,
overduenoreturnnum int
)
go
(5)借书记录表建立
create table borrow_record
(
bookid varchar(20) primary key,
readerid varchar(9),
borrowdate datetime,
foreign key (bookid) references system_books(bookid),
foreign key (readerid) references system_readers(readerid),
)
go
(6)还书记录表建立
create table return_record
(
bookid varchar(20) primary key,
readerid varchar(9),
returndate datetime,
foreign key (bookid) references system_books(bookid),
foreign key (readerid) references system_readers(readerid)
)
go
(7)罚款单表建立
create table reader_fee
(
readerid varchar(9)not null,
readername varchar(9)not null ,
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookfee smallmoney,
borrowdate datetime,
foreign key (bookid) references system_books(bookid),
foreign key (readerid) references system_readers(readerid)
)
go
(8) 管理员表建立
create table system_Administrator
(
administratorid varchar(9)primary key,
administratorname varchar(9)not null ,
administratorpassword varchar(2) not null,
administratorpermission varchar(10)
)
go
(9)超级管理员表建立
create table system_super_Administrator
(
superadministratorid varchar(9) primary key,
superadministratorname varchar(9) not null ,
superadministratorpassword varchar(2) not null,
superadministratorpermission varchar(10)
)
go
(10)索引的创建
use librarysystem
go
create index bookstyle_index_style on book_style(bookstyle)
create index borrow_record_index_readerid on borrow_record(readerid)
create index reader_fee_index_readerid on reader_fee (readerid)
create index return_record_index_readerid on return_record(readerid)
create index system_books_index_bookname on system_books(bookname)
create index system_books_index_styleno on system_books(bookstyleno)
create index system_books_index_bookauthor on system_books(bookauthor)
2 数据初始化
(1)将书籍类别加入表book_style中
insert into book_style(bookstyleno,bookstyle)values(’1','人文艺术类’)
insert into book_style(bookstyleno,bookstyle)values('2',’自然科学类’)
insert into book_style(bookstyleno,bookstyle)values(’3’,’社会科学类’)
insert into book_style(bookstyleno,bookstyle)values(’4','图片艺术类’)
insert into book_style(bookstyleno,bookstyle)values('5’,’政治经济类')
insert into book_style(bookstyleno,bookstyle)values('6',’工程技术类')
insert into book_style(bookstyleno,bookstyle)values(’7',’语言技能类')
(2)将已有的图书加入system_books表中(定义相同的作者出版社的书本编号不一样)
insert into system_books(bookid,bookname,bookstyleno,bookauthor,bookpub,
bookpubdate,bookindate,isborrowed )values(’00125415152’,'计算机组成原理','6’,’王爱英’,'清华大学出版社’,'2001—01-03’,’2003—11—15',’1');
insert into system_books(bookid ,bookname,bookstyleno,bookauthor,bookpub,
bookpubdate,bookindate, isborrowed )values(’00125415153','计算机组成原理','6’,’王爱英’,’清华大学出版社',’2001-01-03','2003—11-15’,’1');
insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values(’00456456’,'数据库原理’,’6’,’萨师煊’,’高等教育出版社','2007-07—02’,’2007—09—15',’1’);
insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )values(’12215121',’C程序设计',’6',’谭浩强',’清华大学出版社’,’2002-04—02’,’2004—03—14','1’);
insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('9787308020558’,'计算机体系结构’,'6',’石教英’,’浙江大学出版社’,'2004-10—03',’2006-11—15’,'1’);
insert into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )values('45456141414','数据结构(C语言版)',’6’,’吴伟民,严蔚敏',’清华大学出版社','2002—06—28','2004-01—21','1');
4。2数据库用户权限管理
该系统设置四种类型的用户
超级管理员(superadministrator) 即系统管理员拥有所有的权限。
管理员(administrator) 可以进行借还书处理;
教师(teacher) :只能浏览图书信息,可借书数为10本,借书时间长为2个月。
学生(student):只能浏览图书信息,可借书5本,借书时间长为1个月。
4.3建立触发器,存储过程
——---———---—--建立借书记录存贮过程
CREATE PROCEDURE SP_BORROWBOOK @BOOKID CHAR(20),
@READERID CHAR(9)
AS
INSERT INTO BORROW_RECORD (BOOKID,READERID,BORROWDATE)
VALUES(@BOOKID,@READERID,GETDATE())
GO
-—-————-——-——建立还书记录存贮过程
CREATE PROCEDURE SP_RETURNBOOK @BOOKID CHAR(20),@READERID CHAR(9)
AS
DELETE FROM RETUN_RECORD
WHERE BOOKID=@BOOKID AND READERID=@READERID
GO
—-—-—-——--—--建立罚款单存贮过程
CREATE PROCEDURE SP_ READERFEE @READERID, @borrowdate
AS
UPDATE reader_fee
SET bookfee=0。1*(day(getdate())-day(@borrowdate))
Where @reader=@readerid
And borrowdate=@borrowdate
—---—-—---—-—建立借书记录表增加触发器
CREATE TRIGGER [TR_ADDLEND] ON [dbo].[ BORROW_RECORD]
FOR INSERT
AS
update system_books
set isborrowed =1
WHERE BOOKID IN (SELECT BOOKID
FROM inserted)
UPDATE READER
SET borrowednum = borrowednum +1
WHERE READERID IN (SELECT READERID
FROM inserted)
--—-—-———-———建立还书记录删除触发器
CREATE TRIGGER [TR_DELLEND] ON [dbo].[ return_record]
FOR DELETE
AS
update system_books
set isborrowed =0
WHERE BOOKID IN (SELECT BOOKID
FROM deleted)
UPDATE system_readers
SET borrowednum = borrowednum —1
WHERE READERID IN (SELECT READERID FROM deleted)
—————---—--——建立删除图书触发器
CREATE TRIGGER [TR_DELLENDBOOK] ON [dbo]。[system_books]
FOR DELETE
AS
Delete reader_fee
WHERE BOOKID IN (SELECT BOOKID
FROM deleted)
Delete return _record
WHERE bookID IN (SELECT bookID FROM deleted)
5. 系统实现
5.1系统功能模块图:
图书管理系统
登陆子系统
查询子系统
借还书子系统
管理子系统
帮助子系统
直接查询
多条件查询
借书
还书
图书类管理
逾期图书管理
管理员管理
读者管理
图书管理
图5-1
五个子系统的功能如下:
①登录子系统:
可以实现图书管理员和超级管理员登录管理
②查询子系统:
主要用于读者查询图书,其中直接查询包括按图书编号直接查询,按书名查询,按作者查询,按出版社查询(可选模糊查询).多条件查询可以按读者的要求选取所需要的图书。
③借还子系统:
主要由图书管理员进行借书还书记录的登记和清除.
④管理子系统:
由图书管理员和超级管理员管理系统,分别是由图书管理员管理图书(包括图书信息的修改,新图书的增加,旧图书的删除),超级管理员管理图书分类,管理读者信息,管理管理员登录帐户,管理逾期未还。
⑤帮助子系统:
主要提供用户的使用本系统的操作手册。
5.2开发平台
前台开发平台的选择:VB.NET
VB.NET与数据库的连接
ADO.NET是VB。NET访问数据库的主要方式。
①ADO。NET的数据访问方式
ADO.NET 的数据存取API 提供3 种数据访问方式:
a) 通过ODBC 相连,访问支持早期ODBC 协议的数据库。
b) 通过OLEDB 相连,访问SQL Server6。5, MicrosoftAccess, Oracle 或者其他有提供OLE DB 连接能力的数据库
c) 使用SqlConnection 直接与SQL Server7.0以及SQL Server2000 相连
②VB。NET访问数据库的具体过程
a) 创建数据库连接
ADO。NET 中使用sqlConnection 类对SQL Server7。0 以及更高版本进行连接, 这个类的构造函数接受一个可选参数, 称为连接字符串, 该字符串用于定义正在连接的数据库的类型、位置以及其他信息, 这些属性用分号分隔, 通常该字符串包含如下信息:①Data Source 特性: 指定SQL Server 数据库所在计算机名称; ② Initial Catalog 特性: 指定连接的SQL Server 数据库的名称;③ User ID 和Pass—Word 特性: 指定用SQL SERVER登录方式的有效帐户名和密码或设置为:Integrated Security=True设置为Windows 登录方式。
b ) 填充数据
创建数据源连接以后, 接下来创建数据适配器,适配器在创建过程中需要向其传递两个要素: 用于包含结构化查询语句的数据描述和用于指明数据库连接信息的连接描述, 创建后可利用Fill 方法, 将所需的数据填充在一个数据集(DataSet)中。
c ) 关闭数据库的连接
由于DataSet采用是断开连接的方式,所以当把数据填充到数据集后即可断开与数据库的连接.
d) 为控件指定数据源
数据填充到数据集后,要在窗体上显示出来,则必须把相应的数据表绑定到数据控件上。
具体实现代码如下:
Imports System。Data
Imports System。Data。SqlClient
Public dataConnection As SqlConnection
Public dataAdapter As SqlDataAdapter
Public dbSet As DataSet
Public connstr As String ="Data Source=mysql;Initial Catalog= librarysystem;Integrated Security=True”
Dim sqlstr=”Select * from system_books ”
Try
dataConnection = New SqlConnection ' 对象实例化
dataConnection.ConnectionString = connstr ' 设置连接字符串
dataAdapter = New SqlDataAdapter(sqlstr, dataConnection)
’ 实例化数据适配器,并设置查询字符串
dataConnection.Open()
dbSet = New dataSet
dbSet。Clear()
dataAdapter。Fill(dbSet, ”system_books”) ’ 填充数据集
dataConnection。Close() ' 关闭连接
Catch ex As Exception
MsgBox(ex.Message)
dataConnection.Close()
End Try
if dbset.Tables.Item(0)。Rows。Count=0 then
Msgbox(“没有任何记录”)
Else
DAtaGrid1.DataSource=dbset。Tables(0) '若找到相应的数据,则把数据表绑定到数据控件上
End if
5。3图书管理模块的实现
①图书管理系统登录界面如下图所示:
图5—2
②图书管理系统主界面如下图所示:
图5-3
③查找界面如下图所示:
图5—4
④添加图书运行界面如下图所示:
图5—5
⑤删除图书运行界面如下图所示:
图5-6
⑥修改图书运行界面如下图所示:
图5-7
下面给出图书的查询、插入、删除、更新模块的代码:
查找代码如下:
Dim dataCommand As SqlCommand
Dim MyReader As SqlDataReader
Private Sub BtnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSearch.Click
If ChkBookName.Checked = True Then
findByName()
Else
If ChckAuthor。Checked = True Then
findBybookauthor ()
Else
If ChkISDN。Checked = True Then
findByISDN()
Else
End If
End If
End If
End Sub
Sub findByName()
dbset.Clear()
dataConnection.Open()
datacommand = New SqlCommand("Select * from System_books WHERE BookName LIKE ’” & TxtCondition。Text & ”%’”, dataConnection)
dataAdapter = New SqlDataAdapter(datacommand)
dataAdapter。fill(d
展开阅读全文