目录
1 系统概述 (2)
2需求分析 (2)
3 系统设计 (4)
3.1 界面设计 (4)
3.2 数据库设计 (4)
3.2.1 概念设计 (4)
3.2.2 逻辑设计 (4)
3.2.3 物理设计 (4)
3.2.4 存储过程 (4)
3.2.5 视图 (4)
3.3 系统核心类库设计 (4)
3.4功能模块设计 (5)
4 系统实现 (5)
4.1 系统开发环境与运行环境 (5)
4.2 首页(default.aspx) (5)
4.3登录页面(login.aspx) (5)
4.4 ….......................................................................................... 错误!未定义书签。
1 系统概述
图书管理包括的图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书管理系统都是初步开始使用,甚至尚未使用计算机进行信息管理。以前对信息管理的主要方式是基于文本,表格等纸介质的手工处理,对于图书借阅情况的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限,以及借阅天数等用人工计算,手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用信息管理,没有发挥他的效力,资源闲置比较突出,这就是图书管理系统开发所要解决的问题,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时准确有效的进行查询和修改图书情况等图书管理操作。
本系统主要针对以上图书馆图书管理当中遇到的问题,我们开始尝试做图书馆管理系统,具体能实现的功能概述如下:首先,可以对学生,老师,管理员三个不同群体的登陆进行管理,不同身份的群体有不同的操作权限。其次,学生可以登陆用户界面,可以查看自己已借阅图书的信息,超级管理员可以对所有用户的信息进行统一管理,如及时添加或更新书库里的图书信息,方便不同群体进行查询和借阅。最后,应用数据库对书库所有书目按类别归类存储,对注册信息进行实时动态存储更新。
2需求分析
首先,对登陆的学生、老师、游客等应该有以下模块功能的实现。
对于注册用户(学生、老师)的管理:老师,学生可以凭借自己的证件账号登陆,此用户群体可以对自己账号密码进行找回和修改功能。
书目查询功能模块:登陆用户或者游客可以对图书馆藏书进行需求性的搜索和查找,其中可以优化自己的检索条件,可以设置输入字符的匹配模式,如“前方一致”,“完全匹配”,“任意匹配”,也可以根据图书馆藏位置来进行检索。在此模块下,还包含一些如热门图书,热门图书,考试常用数目等的检索链接等等。
新书公告模块:此模块下,老师、学生、游客等可以查看目前新到书情况
电子资料查询:此模块下,老师、学生、游客等可以查找所需相关电子资料,有各大名校图书馆网址的链接,方便查询。
其次,对与管理员,要实现“上传新书信息(包括馆藏位置,书目编号等)”,“维护数目信息”,”用户的管理”,“电子资料的更新”等
最后,对于系统本身而言,可统计登陆学生用户人数,老师用户人数,馆藏书目信息统计等。
(USE CASE图如下)
3 系统设计
3.1 界面设计
介绍界面设计的原则,包括页面大小、布局、母版页、CSS、色彩等,不能省略。3.2 数据库设计
概论描述本项目的数据库设计,并分别填写概念设计、逻辑设计和物理设计,说明数据库选型。
不能省略。
自己查阅书籍,分清楚各个概念的不同。
3.2.1 概念设计
3.2.2 逻辑设计
3.2.3 物理设计
3.2.4 存储过程
如果使用了存储过程,请在此给出其名称和相关代码。
3.2.5 视图
如果使用了视图,请在此给出其名称和相关代码。
3.3 系统核心类库设计
3.4功能模块设计
根据用户需求,划分系统模块,描述每个模块包括的功能。不能省略。
4 系统实现
4.1 系统开发环境与运行环境
4.2 首页(d efault.aspx)
逐个页面描述Web页面布局设计、页面效果图、主要控件的属性、主要实现代码。
必须文字、图片和代码结合在一起写。
4.3登录页面(l ogin.aspx)
数据库设计
该系统一共用到7张表。分别是:
User:用户表,存放用户基本注册信息
Book:书目表,存放书目基本信息,设置rtDate(归还日期)和brDate(借出日期)实现过期查询。
Manager:管理员表。放置两个密码。实现二次鉴权
LendBook:用户借阅历史和借阅查询数据
Message:用户留言
Overdue:过期书籍信息和赔偿数额。
News:新闻更新板块
3 程序设计说明
程序按照系统规定的约束条件设计,正确把握其中的逻辑关系。整个系统总体划分为9个模块。各个模块都要按照该模块的数据流程图设计。下面列举其中关键模块的逻辑实现。
3.1 用户登录模块
3.1.1登录模块流程图
3.1.2 登录实现
1. 通过JSP 页面获取username 和password
2. User 业务类 通过XML 获取username 和password
3. User 业务实现类(UserServiceImpl.java)通过DBconnection 连接数据库执行Query 操作,如图
:
3.1.3 注册的实现
如果存在返回登录成功。如果失败,提示失败,并提醒注册。 注册过程与此类似。下图是注册的业务实现:
用户注册的业务实现
该过程对时间要求较高。
3.2 用户赔偿模块
3.2.1数据流程图
3.2.2 赔偿功能的实现
创建并获取业务实现类:
通过DBConnectionPool获取流程图中的i值和损坏丢失的图书列表
最后通过xml配置文件传赔偿金额和图书信息到用户页面
3.3输入项
1. login.jsp在登录页面有输入接口
2. UserdetQuery.jsp 管理员查询用户界面
3. UserQuery.jsp用户书籍查询页面
3.4 算法
赔偿金额返回:
定义3个变量A(赔偿总价)=0, M(丢失赔偿)=0,S(损坏总价)=0。定义3个定值. 书籍原价P值从BOOK表获取,i
(事件次数)污损赔偿D
If i !=0
i=i-1
If dirty
S=S+D
Else
M=M+P
A=M+S+A
return A
Else return A=0
书籍过期判断:
获取BOOK表rtDate和bdDate。用select now()获取数据库当前时间(注意,一定要用数据库当前时间)
if rtDate>now()
return TURE
else
return FALSE
续期的实现:
获取rtDate.用JA V A函数,获取month 在month+1后,执行SQL语句。返回到数据库。
sql="select rtDate from Book,where book.id= "+id;
set(Calendar.month,getCalendar.month+1) //获取月份并+1
sql="update Book set rtDate="'+Calendar.get()+''';//执行插入
实现续期功能
3.5 存储分配
数据库设计
3.6测试计划
软件测试是软件质量保证的关键步骤,本系统采用采用软件工程的方法进行软件测试。尽量发现本系统BUG并即时改正,以避免在运行过程中造成损失。
1.测试步骤
测试过程应采用综合测试策略;即先作静态分析,再作动态测试。
2. 模块测试
以设计说明书为指导,测试模块内部重要控制路径
3.集成测试
将各个模块组装,对系统进行统一测试,确保系统常见的功能没有问题。
4.系统测试
将该系统放在服务器上进行封闭测试。
5.验收测试
将系统交给图书馆,并在使用中发现并改正问题。
3.7 尚未解决的问题
一.图书馆管理系统概述
1.开发背景及意义
图书馆是同学借阅书籍的地方,每天都会有好多同学来还书借书。学校有很多学生,图书馆有很多不同的书籍,人工管理不仅工作效率低而且还浪费人力资源。这是一
个信息化社会,信息技术的发展给图书管理带来了新的力量,通过图书馆管理系统
对图书进行全程管理,不仅使工作人员摆脱人工管理带来的一系列问题,更重要的
是提高了工作效率,为图书馆的管理提供了大量的数据。
2.系统目标
通过对图书借阅管理过程的研究和分析,在设计时系统应该实现以下目标:
1.实现书库管理:新书的登记,借书,还书,书籍挂失
2.实现借阅证管理:借阅证办理,借阅证信息查询,借阅证挂失
3.实现管理员添加,密码修改功能
二.系统分析
1.系统功能:
本系统是一个小型图书馆的管理系统,包括以下三个部分:
1)书库管理
书库管理中包括新书的登记,须登记新书的基本信息,数量等。借书/还书模块需
登记书籍号和借阅证号。
2)借阅证管理
借阅证管理中包含办理借阅证,查询借阅证信息,挂失等功能
3)管理员
管理员账号注册,密码修改等功能
2.系统结构图
3.管理流图
4.开发工具的选择
开发数据库管理系统需要选择两种工具,即前台开发语言和后台数据库。选择开发工具时,应考虑客户需求、系统功能和性能要求以及开发人员的习惯等因素。与其他开发工具相比,Visual C++具有功能强大、通用性强、和易于扩充等特点,越来越多的被用作客户/服务器应用程序的前台开发工具,与后台的SQL Server数据库相结合,能够提供一个性能比较高的管理信息系统解决方案。因此本实例选择的前台开发语言是Visual C++ 6.0.后台数据库选择了SQL Server。
5.开发实例所需的实用技术
开发数据库管理信息系统需要掌握的技术如下:
1.所选开发工具的基本编程方法;
2.基本的后台数据库管理方法,例如:创建数据库、创建表、创建视图、备份、和
还原数据库等。
3.常用的SQL语句的使用。
4.数据库访问技术
三.数据库设计
1)本系统中所以的数据项
2.数据库概念设计
1)管理员E-R图
2)图书信息E-R图
3)借阅证信息E-R图
4)赔偿单信息E-R图
5) 局部E-R图
有这种关系可以建立一个关系表:借书信息表
表中包括数据项为(借书日期、借书编号、书号、借阅证号)
6)总体的E-R图
图书馆管理系统的总E-R图
3.数据库结构设计
数据库结构设计是总体设计阶段非常重要的环节,好的数据库结构可以简化开发过程,使
系统功能更加清晰明确。因为数据库结构的变化会造成编码的改动,所以必须认真设计数据库结构后再进行编码,从而避免了无谓的重复工作。
数据库中包含5个表,分别为管理员信息表Admin_info、图书信息表Book_Info、借书信息表Borrow_Info、借阅证信息表Proof_Info、罚款单信息表Punish_Info。下面分别介绍这些表的结构
(1).管理员信息表Admin_Info,用来保存管理员信息。表中包括的数据项有(用户名、
密码、工作编号)满足BC范式
(2).图书信息表Book_Info,用来存放图书的信息。表中包括的数据项有(书号、书名、
作者、出版社、定价、入库时间、总存量、现存量)满足第一范式因为现存量不
(3).借书信息表Borrow_Info,用来保存借书记录。表中包括的数据项有(借书编号、借阅证号、书号、借书日期)满足BC范式
(4).借阅证信息表Proof_Info,用来存放借阅证的基本信息。表中包括的数据项有(借
阅证号、姓名、性别、出生日期、家庭住址、身份证号、电话号码、借书量)满足BC 范式
(5).罚款单信息表Punish_Info,用来存放还书记录。表中包括的数据项有
(挂失编号、借阅证号、书号、借书日期、还书日期、赔偿金额)满足第一范式。因为赔偿金额依赖于书号。书号不是候选键,所以不属于第二范式,也不属于BC范式
4.下面是各表之间的关系:主键与外键的外键的建立
(1).借书信息表Borrow_Info与借阅证信息表Proof_Info的关系
借书信息表Borrow_Info与图书信息表Book_Info的关系
(2).罚款单信息表Punish_Info与借阅证信息表Proof_Info的关系
罚款单信息表Punish_Info与图书信息表Book_Info的关系
5. SQL Server语句
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Borrow_Info_Book_Info]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Borrow_Info] DROP CONSTRAINT FK_Borrow_Info_Book_Info
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Borrow_Info_Proof_Info]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Borrow_Info] DROP CONSTRAINT FK_Borrow_Info_Proof_Info
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Admin_Info]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Admin_Info]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Book_Info]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)