admin 管理员组文章数量: 887019
2024年2月28日发(作者:mysql引擎的区别)
分类号 密级
题 目
基于Java Web的图书管理
系统的设计与实现
指导老师
******
专业班级
姓 名
*******
学 号
*****
年 月*日
页脚内容0
分类号 密级
摘 要:计算机信息处理系统的引进已彻底改变了许多系统的经营管理模式。图书管理系统是学校管理机制中的重要组成部分,通过对图书管理系统的运行管理机制进行调查研究,开发了此图书系统。本系统中解决了学校图书管理事务中的常用基本问题以及相关统计工作。本系统中包含6个功能模块:系统设置,读者管理,图书管理,图书借还,系统查询和更改口令。本系统使有Jsp进行网页界面的设计,使用MVC设计模式,采用了开源框架Struts,它采用了当今软件设计的最新技术,具有开发效率高、设计灵活、生成的软件界面友好美观等特点。本系统中通过JDBC驱动和数据库进行无缝连接,后端的数据库是Sql Server,也是一个开源的数据库系统,该数据库具有较高的完整性,一致性和安全性。
关键词:图书管理;管理事务;Jsp;Struts;MVC设计模式
页脚内容0
分类号 密级
目 录
引言 .............................................................................. 0
1 系统概述 ........................................................................ 0
1.1
项目任务 ....................................................................... 0
1.2
课题意义 ....................................................................... 0
1.3
论文的工作和安排 ............................................................... 1
2 图书借阅管理需求分析 ............................................................ 1
2.1
可行性分析 ..................................................................... 1
2.1.1 技术可行性 .................................................................. 2
2.1.2 经济可行性 .................................................................. 2
2.2
图书借阅管理系统需求概述 ....................................................... 2
2.2.1 系统目标 .................................................................... 2
2.2.2 用户类和用户特性 ............................................................ 2
2.3
图书借阅管理系统需求模型 ....................................................... 3
2.3.1 功能描述 .................................................................... 3
2.3.2 图书管理员详细功能描述 ...................................................... 4
2.3.3 读者详细功能描述 ............................................................ 5
3 总体设计 ........................................................................ 5
3.1
数据库设计 ..................................................................... 5
3.1.1 数据库设计概述 .............................................................. 5
3.1.2 图书信息表结构设计 .......................................................... 6
3.1.3 图书类型信息表结构设计 ...................................................... 7
3.1.4 读者信息表结构设计 .......................................................... 7
3.1.5 读者类型信息表结构设计 ...................................................... 8
3.1.6 图书借阅信息表结构设计 ...................................................... 8
3.1.7 图书归还信息表结构设计 ...................................................... 9
3.1.8 用户信息表结构设计 .......................................................... 9
3.1.9 图书馆信息表结构设计 ....................................................... 10
3.2
系统总体结构设计 .............................................................. 10
3.2.1 图书管理系统总体结构图 ..................................................... 10
3.3
系统详细设计 .................................................................. 11
3.3.1 系统管理员模块 ............................................................. 11
3.3.2 读者管理模块 ............................................................... 12
3.3.3 图书管理模块 ............................................................... 13
页脚内容1
分类号 密级
3.3.4 图书借还模块 ............................................................... 15
3.3.5 系统查询模块 ............................................................... 17
4 系统实现 ....................................................................... 19
4.1
系统管理员功能模块的实现 ...................................................... 19
4.2
读者管理功能模块的实现 ........................................................ 21
4.3
图书管理功能模块的实现 ........................................................ 23
4.4
图书借还功能模块的实现 ........................................................ 27
4.5
查询功能模块的实现 ............................................................ 30
5 系统测试 ....................................................................... 34
5.1
软件测试的方法与步骤 .......................................................... 34
5.2
测试用例设计与测试用例的运行过程及测试结果分析 ................................ 35
5.2.1 模块测试 ................................................................... 35
5.2.2 集成测试 ................................................................... 37
5.3
评价.......................................................................... 37
总结 ............................................................................. 39
参考文献 ......................................................................... 40
页脚内容2
分类号 密级
引言
计算机信息处理系统的引进已彻底改变了许多系统的经营管理模式。图书管理系统是学校管理机制中的重要组成部分,通过对图书管理系统的运行管理机制进行调查研究,开发了此图书系统。本系统中解决了学校图书管理事务中的常用基本问题以及相关统计工作。本系统中包含6个功能模块:系统设置,读者管理,图书管理,图书借还,系统查询和更改口令。本系统使有jsp进行网页界面的设计,使用MVC设计模式,采用了开源框架Struts,它采用了当今软件设计的最新技术,具有开发效率高、设计灵活、生成的软件界面友好美观等特点。本系统中通过JDBC驱动和数据库进行无缝连接,后端的数据库是sqlserver,也是一个开源的数据库系统,该数据库具有较高的完整性,一致性和安全性。
1 系统概述
1.1 项目任务
(1)实现图书馆对所藏图书的按类别、书名等多方面的查询,最大的方便读者和图书馆工作人员对所需图书的查询;
(2)建立图书馆外借读者数据库,方便工作人员对读者进行有效管理;
(3)建立图书馆工作人员数据库,限定每个工作人员对软件操作的权限,最大限度的保护数据库;
(4)实现图书馆对新书入库,旧书注销的简单处理,并且建立书籍档案,方便进货;
1.2 课题意义
图书馆或者一些企业内部,甚至是书店,在正常运行过程中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的单据进行及时的处理,为了提高图书馆或者企业内部对图书存销的自动化的管页脚内容0
分类号 密级
理,能够更快速的满足读者的要求,现对其设计相应的系统,以达到上述的目的。
图书管理系统的主要功能是实现图书馆图书借阅和归还的管理的自动化。围绕这一主要功能,本系统涉及到以下核心功能:借阅管理,归还管理。除了这些核心功能外,还包括一些基本和辅助功能,它们是:用户管理、图书馆参数管理、图书管理、统计查询。
1.3 论文的工作和安排
本次设计的目标是,开发一个图书馆借阅管理系统。借助该系统,管理员通过快捷可靠的数据库管理,方便的管理图书馆的信息资料,规范化的管理读者用户,设定不同用户权限,并能通过互联网向读者提供更为方便的在线查询服务,方便读者的使用,最终达到提高图书馆资源利用效率的目的。
论文设计和实现了图书借阅管理系统系统,可以根据用户的不同权限,对图书馆的的各种信息进行添加、删除、修改或查询操作。论文分为五个部分:
第一部分即系统概述,简述图书馆借阅管理系统这个课题的背景情况以及开发本系统的意义。
第二部分为需求分析,本章中明确了系统需要实现的功能,分析了系统的用例,并介绍根据系统的需求选择的开发工具和技术的概况。
第三部分是总体设计,详细描述了本系统中数据库的设计情况,并给出了系统总体界面的设计方案。
第四部分为程序设计与编码各主要功能模块的实现方法和部分关键代码,同时提供了个主要界面运行的参考图片,以更直观了解系统的实现情况。
第五部分是软件测试,测试系统功能实现并对测试结果进行记录分析
最后为总结,为此次毕业设计做一个总结,总结所获得的经验和体会。
2 图书借阅管理需求分析
2.1 可行性分析
采用现代化统一的计算机信息网站系统,能够有效优化图书馆管理系统,使其高效页脚内容1
分类号 密级
的发挥最大作用,能够迅捷的为读者提供相应的服务。开发本系统的可行性研究如下:
2.1.1 技术可行性
技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。本系统采用JSP开发出友好美观的人机界面,便于用户理解、操作。数据库管理系统采用MySQL,它能够处理大量数据,同时保持数据的完整性、安全性。因此本系统的开发平台已成熟可行。硬件方面,在科技飞速发展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越便宜,因此硬件平台也能够满足本系统所需。
2.1.2 经济可行性
鉴于计算机技术发展异常迅猛,在硬件软件配置以及开发技术均以可行的情况下开发这样一个管理系统成本不会很高,但其可以大大提高图书馆的工作效率,也是图书馆管理发展的必然趋势,其必将有比较宽阔的市场,因此改性统在经济可行性上时可行的。
2.2 图书借阅管理系统需求概述
2.2.1 系统目标
该系统主要建立一个基于B/S模式的图书馆借阅管理系统,面对当起很多小型图书管理仍是人工管理带来的检索速度慢,效率低,借阅归还图书量大,图书统计工作量大,藏书不能完成及时更新的问题,该系统可以对跟系统的三个用户类型的使用实现:
(1)对于读者在本系统的应用下可实现按照各种方式(如:书名,编号,作者)查询图书馆的藏书请客,方便的借阅图书,续借图书,归还图书,能够查询自己的借阅图书情况。
(2)对于图书馆工作人员能够实现方便的对图书进行查询,方便的进行读者借阅情况查询,方便的进行借书还书处理等,便捷的对图书信息进行添加、修改、删除,分类管理等操作,对读者信息进行相关添加,修改,分类管理等操作。
(3)对于系统管理员可以对图书馆信息进行修改更新操作,对系统用户进行添加、修改、删除、权限设置等操作,对图书馆的办证参数进行修改维护等操作功能。
2.2.2 用户类和用户特性
图书借阅管理系统是一个基于B/S模式的对图书馆进行高效率管理的应用系统,它的用户主要是读者和图书管理员,图书管理员通过本系统实现对图书及读者的高效管理,页脚内容2
分类号 密级
除此之外,还需要一个系统管理员对不同的用户进行权限的设置等操作。
三类用户的具体描述如表2.1所示。
表2.1用户具体描述
用户类
读者
图书管理员
描述
读者是该系统的重要的使用角色,他们通过该系统查询自己需要的图书信息,并像图书管理员提出借阅图书的申请进而借阅自己所需的图书,还可以通过对自己借阅情况进行查询。
图书管理员是该系统的另一个重要使用者,图书管理员通过该系统进行图书的增加,修改,删除,分类管理等操作,实现对读者借阅归还续接图书的方便操作,实现对系统中图书,读者,读者借阅情况的查询,信息更改维护等操作,管理读者类型,对不同类型读者可借阅的图书数量进行设置等图书馆的基本操作。
系统管理员主要是图书管理系统中用户的管理,实现用户添加修改删除以及用户权限设置等操作,实现对图书馆基本信息的修改维护等操作,还包括对图书馆书架的设置操作,以及校外读者办证所需费用、证件有效期等参数的设置。
系统员
2.3 图书借阅管理系统需求模型
2.3.1 功能描述
图书借阅管理系统的主要任务是实现读者迅速检索查询,方便借阅归还图书,图书管理员高效的完成系统的各项基本操作,系统管理员是管理用户设置权限等操作,从图2.1可以看出图书借阅管理系统要完成一下功能:
(1) 登录。
读者、图书管理员,系统管理员进入该系统必须登录,身份验证正确了才可以进入该系统,以不同身份进入该系统所对应的系统使用权限是不同的。
(2) 系统设置功能:
系统管理员可以设置图书馆相关的参数信息。
(3)用户管理功能:
对系统用户进行添加,修改,删除,权限设置等操作。
(4)查询功能:
对图书馆的馆藏图书,借阅历史,读者用户等信息进行查询。
页脚内容3
分类号 密级
(5)其他功能
系统管理员可以修改自己的密码,并且拥有其他用户所拥有的所有功能。
下面的系统用例图描述了整个系统用户之间的动作联系,及功能模块的概述,如图2.1所示。
用户管理(from Use Case View)系统设置(from Use Case View)系统管理员(from Use Case View)系统管理(from Use Case View)借阅管理(from Use Case View)登录(from Use Case View)借还管理图书管理员(from Use Case View)归还管理(from Use Case View)读者(from Use )(from Use Case View)系统查询(from Use Case View)续借管理(from Use Case View)读者管理(from Use Case View)读者信息管理(from Use Case View)图书管理(from Use Case View)图书类型管理(from Use Case View)读者类型管理(from Use Case View)图书信息管理(from Use Case View)
图2.1系统用例图
2.3.2 图书管理员详细功能描述
读者管理功能:
对读者的类型和读者档案进行管理,包括添加,修改,删除读者类型和读者用户的相关信息,管理不同类型读者借阅图书的数量。
图书管理功能:
包括对图书类型和具体图书信息的管理,可以增加,修改,删除图书,丰富具体图书的信息,对不同图书进行分类操作。
图书借阅功能:
可以完成对读者借阅,续接和还书的操作。
系统查询功能:
查询图书相关资料,借阅历史和借阅到期题型.
修改密码功能:
可以修改自己的登录密码。
页脚内容4
分类号 密级
2.3.3 读者详细功能描述
(1) 修改登陆密码:
修改自己的登录密码。
(2) 查询功能:
对图书馆图书信息进行查询,对自己当前借阅书籍进行查询。
3 总体设计
3.1 数据库设计
3.1.1 数据库设计概述
数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。整个系统所包括的信息有图书信息、读者信息、留言信息、图书借阅信息、图书归还信息、系统用户信息、读者类型信息。可将这些信息抽象为下列系统所需要的数据项和数据结构:
(1)图书信息(编号,图书名称,图书类型,作者,译者,ISBN号,价格,出版社,所在书架,入库时间,操作员)
(2)图书类型(编号,名称,可借阅天数)
(3)读者信息(编号,姓名,性别,条形码,读者类型,出生年月,有效证件,证件号码,登记日期,电话,邮箱,操作员)
(4)读者类型(名称,可借阅图书本数)
(5)图书借阅信息(图书编号,读者ID,借出时间,应还时间,是否归还,操作员)
(6)图书归还信息(图书编号,读者ID,归还时间,操作员)
(7)用户(编号,用户名称,密码)
(8)图书馆信息(编号,名称,馆长,电话,地址,邮箱,创建日期,简介)
图书馆参数信息(编号,办证费用,有效期限)
注:带下划线表示主键
在这里使用E-R图描述了图书借阅管理系统的数据模型。图3.1图书借阅管理系统E-R图描述了该系统所涉及到的实体以及他们之间的关系。具体结构如图3.1所示。
页脚内容5
分类号 密级
图3.1 系统E-R 图
3.1.2 图书信息表结构设计
图书信息表主要用于存储图书馆中所藏图书的相关信息,其中的相关信息是在图书入库时由操作员进行添加完善。表的具体结构如表3.1所示。
表3.1图书信息表tb_bookinfo
字段名称
barcode
bookname
author
translator
ISBN
price
bookcase
数据类型
varchar
varchar
varchar
varchar
varchar
float
varchar
字段长度
30
70
是否为空 说明
No
No
Yes
Yes
No
No
No
Key
作者
译者
图书价格
图书所在书架
30
30
20
8,2
10
页脚内容6
分类号 密级
press
intime
operator
page
varchar
date
varchar
int
70
30
No
No
No
Yes
出版社
图书入库时间
操作员
图书页码 10
3.1.3 图书类型信息表结构设计
该表的设计主要是方便对图书的分类,和对图书的查询,在实际应用中图书管理员就是根据图书类型的不同将之分列在不同的书架,以方便读者的借阅寻找,其中可借阅天数项设置了不同类型图书的借阅期限,可根据图书的具体情况进行不同的维护管理,表的具体结构设计如表3.2所示。
表3.2图书类型信息表tb_booktype
字段名称
ID
bookname
days
数据类型
int
varchar
int
字段长度
10
30
是否为空 说明
No
No
No
Key
可借阅天数 10
3.1.4 读者信息表结构设计
读者信息表的设计是为了图书馆管理员对读者进行管理,其中读者ID,不同类型证件的号码都是唯一的,是读者在借阅图书时需要输入对读者身份进行识别的信息,读者类型信息决定了读者一次性可借阅的图书的数量,注册时间可用于查询计算读者身份有效的期限,操作员是为了便于对信息才操作的查询。表的具体结构设计如表3.3所示。
表3.3读者信息表tb_reader
字段名称
Id
name
sex
barcode
数据类型
字段长度
是否为空 说明
int
varchar
varchar
varchar
10
20
4
30
No
No
No
No
Key
页脚内容7
分类号 密级
readertype
tel
paperType
PaperNO.
birthday
intime
operator
varchar
varchar
varchar
varchar
11
No
Yes
Yes
No
读者类型
电话 20
100
10
证件类型
Varchar
20
No 证件号码
date
date
varchar
Yes
No
No
登记时间
操作员
30
3.1.5 读者类型信息表结构设计
此表的设计是为了对不同身份的读者进行分类方便读者的管理,其中可借阅图书数量的属性设定,是根据读者需求的不同对起权限进行的设置,用于规定不同类型读者一次可借阅的图书数量,表的具体结构设计如表3.4所示。
表3.4 读者类型信息表tb_readertype
字段名称
ID
readername
number
数据类型
int
varchar
int
字段长度
10
50
是否为空
No
No
No
说明
Key
可借图书本数 4
3.1.6 图书借阅信息表结构设计
该表的设计是用于对读者借阅图书进行管理,表中图书ID属性是对借阅图书的唯一性识别标识,读者ID号记录借阅的相应读者,结出时间记录了相应的归还时间,以及归还时是否超时,操作员是对借阅进行操作的人员的记录方便日后的查询,是否归还标识可查询当起读书是否被归还,表的具体结构设计如表3.5所示。
表3.5 图书借阅信息表 tb_borrow
字段名称 数据类型 字段长是否为空 说明
页脚内容8
分类号 密级
度
ID
readerID
bookID
borrowTime
backTime
operator
ifback
int
varchar
int
date
date
varchar
tinyint
10
10
10
No
No
No
No
No
No
No
Key
结出时间
应归还时间
操作员
是否归还
30
1
3.1.7 图书归还信息表结构设计
与图书借阅信息表形成对照的是图书归还信息表,该表的设计除了像上表一样把借阅的图书与相应的借阅者进行对应的联系以外还记录了读者应归还图书的时间,以此判断读者的借阅是否超时,表的具体结构设计如表3.6所示。
表3.6图书归还信息表tb_giveback
字段名称 数据类型
字段长度
10
11
11
30
是否为空
No
No
No
No
No
说明
ID
readerID
bookID
backTime
operator
int
varchar
int
date
varchar
Key
归还时间
操作员
3.1.8 用户信息表结构设计
该表的设计用于记录图书管理系统用户的信息,方便对用户的管理,表中包括用户ID 和用户的登录密码,表的具体结构设计如表3.7所示。
表3.7系统用户信息表tb_user
字段名称
ID
数据类型
int
字段长度
10
页脚内容9
是否为空
No
说明
Key
分类号 密级
name
password
varchar
varchar
30
30
No
No
3.1.9 图书馆信息表结构设计
该表包含了图书馆的名称,地址,联系方式,建馆时间,简介等信息,是对图书馆基本属性信息的描述,方便外界读者对图书馆的了解,表的具体结构设计如表3.8所示。
表3.8图书馆信息表 tb_library
字段名称
ID
libraryname
curator
tel
address
url
createDate
introduce
数据类型
int
varchar
varchar
varchar
varchar
varchar
varchar
字段长度
10
50
是否为空
No
No
No
Yes
No
No
No
说明
Key
结出时间
应归还时间
图书馆网站
创馆时间
图书馆简介
10
20
100
100
100
varchar
No
text
Yes
3.2 系统总体结构设计
该系统在Windows98/2000/XP环境下,主要采用JSP开发工具,MySQL数据库来设计,开发过程与成果应符合GB/T 11457-1995软件工程术语,GB/T 8567-1988计算机软件产品开发文件编制指南等。
3.2.1 图书管理系统总体结构图
系统结构图将会使读者和用户能直观的了解系统的结构模式,理解系统的各个功能的结构,能很好地方便用户使用和理解整个系统。本系统的结构图如图3.2所示。
页脚内容10
分类号 密级
图3.2系统总体结构图
根据需求分析的结果,按照“低耦合、高内聚”的原则,本系统将划分为以下主要功能模块:系统管理员功能模块,读者管理功能模块,图书管理功能模块,图书借还功能模块;系统查询功能模块。
3.3 系统详细设计
3.3.1 系统管理员模块
该模块主要包括图书馆信息设置,用户管理,书架设置。
(1)图书馆信息设置
该功能选项用于系统管理员对图书馆名称,地址,联系方式,简介等信息的管理更新,以便于读者和外界人士对图书馆的了解。该功能是对td_library表进行维护修改等操作,修改后的信息将被保存在该表中。
(2)用户设置
该功能子模块主要是系统管理员对系统用户的管理,通过此子模块的功能实现可以对用户进行添加、修改、删除、权限设置等操作,该子模块能将图书馆的不同工作细化到不同的相关人员,极大地提高了图书馆的工作效率。该操作是对tb_users表进行操作,在对用户进行了相关的操作后把操作后的最新信息存放在该表中。
(3)图书馆书架设置
页脚内容11
分类号 密级
通过该子模块设置图书馆中应该登记的书本信息,以及进行添加、修改、删除等操作,该子模块极大的降低了图书馆管理书籍以及编号的难度。该操作是对tb_bookinfo表进行操作,在对书籍进行了相关的操作后把操作后的最新信息存放在该表中。
在登录管理员系统之后,便可以对下面的几个子模块进行操作,其流程图如图3.3所示。
图3.3系统管理员模块流程图
3.3.2 读者管理模块
该模块主要包含读者类型管理和读者信息管理两个子模块:
读者类型管理
该子模块是对图书馆系统用户读者的类型进行维护,修改等操作,在此模块中主要页脚内容12
分类号 密级
设置不同类型读者一次性可借阅的图书的数量,该操作是对于tb_resderType表进行,并将操作结果保存在该表中。
读者信息管理
该子模块是对读者的基本信息进行管理,可以对读者的基本信息进行添加,修改,删除操作,这下操作均是对tb_resder表进行的,并将操作后的结果保存在该表中。
其流程图如图3.4所示。
图3.4读者管理模块流程图
3.3.3 图书管理模块
图书管理功能模块可分为图书类型管理和图书信息管理两个子模块,其各自的实现分别如表3.9-3.10所示。
页脚内容13
分类号 密级
表3.9 图书类型管理描述
功能描述
图书类型管理
对图书进行类型设置分类,并对不同类型图书可被借阅的天数进行设置
访问的数据库表
进行的操作
图书类型表:tb_bookType
添加、修改、删除图书类型,对不同类型图书可被借阅的天数进行设置
产生的结果 对图书类型进行管理,对不同类型图书参数进行设置
结果存储位置或输出 结果存储在图书类型表(tb_bookType)中,结果在图书类型查询页面输出
表3.10 图书信息管理描述
功能描述
访问的数据库表
进行的操作
图书信息管理
对图书进行基本操作和信息管理
图书类型表:tb_bookType
添加、修改、删除图书,对图书的编号、所在书架、价格、出版社等基本信息进行管理
产生的结果 对图书基本操作管理,对不同图书参数进行各自信息的设置管理
结果存储位置或输出 结果存储在图书类型表(tb_book)中,结果在图书查询页面输出
图书管理模块的操作与读者管理模块较为相似,可以对图书的基本信息以及图书的类型进行增加、删除与修改,图书管理模块的流程图如图3.5所示。
页脚内容14
分类号 密级
图3.5图书管理模块流程图
3.3.4 图书借还模块
该功能模块主要实现对读者借阅、续接、归还图书的操作,其中子模块各自的描述如表3.11-3.13所示。
表3.11 图书借阅描述
功能描述
访问的数据库表
图书借阅管理
对读者借阅图书进行基本操作和信息管理
图书信息表: tb_bookinfo
读者信息表:tb_reader
读者类型信息表:tb_resderType
进行的操作
产生的结果
结果存储位置或输出
对读者借阅图书进行管理
读者借阅成功,系统对借阅信息进行记录
结果存储在图书借阅表(tb_borrow)中,结果在图书借阅查询页面输出
页脚内容15
分类号 密级
表3.12 图书续借描述
功能描述
访问的数据库表
进行的操作
产生的结果
结果存储位置或输出
图书续接管理
对读者借阅图书进行提续接操作
图书借阅表: tb_borrow
对借阅的图书进行续接
读者归还日期延后一个月
结果存储在图书借阅表(tb_borrow)中
表3.13图书归还描述
功能描述
访问的数据库表
图书归还管理
对读者归还图书进行基本操作和信息管理
图书借阅信息表: tb_borrow
读者类型信息表:tb_resderType
进行的操作
产生的结果
对读者借阅图书进行管理
读者借阅成功,系统对借阅信息进行记录
结果存储位置或输出 结果存储在图书归还表(tb_giveback)中
借阅和归还的操作首先都需要管理员先核实读者的信息,然后再进行图书项的操作,其流程图如图3.6所示。
页脚内容16
分类号 密级
图3.6图书借还模块流程图
3.3.5 系统查询模块
该模块包括对图书馆藏书进行查询,对读者借阅情况进行查询,以及对借阅到期和超期的读者进行提醒的信息,其中三个子模块的各自实行如表3.15-3.17所示。
页脚内容17
分类号 密级
表3.15 图书查询描述
功能描述
访问的数据库表
进行的操作
图书查询
系统用户对馆藏图书信息进行查询操作
图书信息表: tb_book
用户通过图书的编号,作者,出版社等信息对图书进行相关查询
产生的结果 读者查询到相应的图书或系统提醒查询的图书不存在
结果存储位置或输出 结果在图书查询页面输出
表3.16 图书借阅查询描述
功能描述
访问的数据库表
进行的操作
图书借阅查询
系统用户对读者借阅图书信息进行查询操作
图书借阅表: tb_borrow
用户通过图书的编号,读者编号等信息对摸个读者或某本图书的借阅情况进行相关查询
产生的结果
结果存储位置或输出
查询到相应的读者或图书得借阅情况
结果在图书查询页面输出
表3.17 图书借阅到期提醒描述
功能描述
访问的数据库表
图书借阅到期提醒管理
对读者借阅的到期图书进行提醒
图书借阅表: tb_borrow
图书归还表:tb_giveback
读者信息表:tb_reader
读者类型信息表:tb_resderType
进行的操作
产生的结果
对借阅到期和超期的读者进行提醒
向借阅到期和借阅超期的读者发送邮件等提醒信息
结果存储位置或输出 结果存储在图书借阅到期提醒表
管理员在此模块可以通过对图书编号的查询来查看此图书的借阅情况,包括读者信页脚内容18
分类号 密级
息以及是否到期归还时间,以便于图书管理员及时提醒读者及时归还图书,其流程图如图3.7所示。
图3.7系统查询模块流程图
4 系统实现
4.1 系统管理员功能模块的实现
本模块中最主要的是管理系统用户,设置图书馆信息等操作,其中管理系统用户包括对他们进行添加,修改,删除及权限划分操作。
其中系统管理员读系统用户进行管理的操作页面如图4.1所示。
页脚内容19
分类号 密级
图4.1 系统管理员管理用户操作界面
其中对系统用户权限的设置是该操作的重要部分也是系统提高效率的关键所在,起具体实现代码为。
private ActionForward managerModify(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ManagerForm managerForm = (ManagerForm) form;
(()); //获取并设置管理员ID号
e(e()); //获取并设置管理员名称
(()); //获取并设置管理员密码
set(set()); //获取并设置系统设置权限
derset(derset()); //获取并设置读者管理权限
kset(kset()); //获取并设置图书管理权限
rowback(rowback()); //获取并设置图书借还权限
query(query()); //获取并设置系统查询权限
int ret = (managerForm); //调用设置管理员权限的方法
if (ret == 0) {
ribute("error", "设置管理员权限失败!");//保存错误提示信息到error参数中
页脚内容20
分类号 密级
}
return rward("error"); //转到错误提示页面
} else {
}
return rward("managerModify"); //转到权限设置成功页面
4.2 读者管理功能模块的实现
读者管理主要实现对读者的类型管理和信息管理两个功能子模块,其中读者类型管理中需要设置不同类型读者一次性可借阅的图书数量,读者信息管理则主要管理维护读者的基本信息,读者类型管理界面如图4.2所示。
图4.2 读者类型管理操作界面
这张页面的获取与显示的具体代码为。
<%
while(t()){
ReaderTypeForm readerTypeForm=(ReaderTypeForm)();
ID=().intValue();
name=ese(e());
number=ber();
%>
页脚内容21
分类号 密级
onClick="('?action=readerTypeModifyQuery&ID=<%=ID%>','','width=292,height=175')">修改
读者信息管理模块可以让管理者对读者的一些基本信息进行增加、修改与删除。读者信息管理功能界面如图4.3所示。
图4.3 读者信息管理界面
该管理功能在设置读者信息时需要输入读者姓名,性别,条形码,选择读者类别,有效证件,证件号码,电话,e-mail等信息。其中的姓名,性别,条形码,证件号码是必填选项。起具体实现代码为。
private ActionForward readerAdd(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
ReaderForm readerForm = (ReaderForm) form;
e(e());
(());
页脚内容22
分类号 密级
code(code());
ation(ation());
thday(thday());
erType(erType());
erNO(erNO());
(());
il(il());
//获取系统日期
Date date1=new Date();
date=new (e());
ateDate(ng());
rator(rator());
ark(ark());
eid(eid());
int a=(readerForm);
if(a==0){
ribute("error","读者信息添加失败!");
return rward("error");
}else if(a==2){
ribute("error","该读者信息已经添加!");
return rward("error");
}else{
return rward("readerAdd");
}
}
4.3 图书管理功能模块的实现
图书管理模块也分为图书类型管理和图书档案管理两个子模块,其中图书类型管理页脚内容23
分类号 密级
功能处理将图书分类提高管理效率外还设置了不同类型图书可借阅的天数,对不同类型图书进行区别管理。图书类型管理界面如图4.4所示。
图4.4 图书类型管理界面
其中管理员可以对图书类型进行修改与删除,其具体实现代码为。
private ActionForward bookTypeModify(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
BookTypeForm bookTypeForm=(BookTypeForm)form;
eName(eName());
s(s());
int ret=(bookTypeForm);
if(ret==0){
ribute("error","修改图书类型信息失败!");
return rward("error");
}else{
return rward("bookTypeModify");
}
}
private ActionForward bookTypeDel(ActionMapping mapping, ActionForm form,
HttpServletRequest request,HttpServletResponse response){
BookTypeForm bookTypeForm=(BookTypeForm)form;
页脚内容24
分类号 密级
(f(ameter("ID")));
int ret=(bookTypeForm);
if(ret==0){
ribute("error","删除图书类型信息失败!");
return rward("error");
}else{
return rward("bookTypeDel");
}
}
图书档案管理模块可以对图书的一些基本信息进行增加、修改与删除。图书档案管理界面如图4.5所示。
图4.5 图书档案管理界面
图书档案中包含图书的条形码,图书名称,图书类型,作者,译者,价格,出版社,所在书架等图书基本信息,其中作者,译者,页码是备选信息,可以不填。其具体实现代码为。
private ActionForward bookAdd(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
页脚内容25
分类号 密级
BookForm bookForm = (BookForm) form;
code(code());
kName(kName());
eId(eId());
hor(hor());
nslator(nslator());
n(n());
ce(ce());
e(e());
kcaseid(kcaseid());
//获取系统日期
Date date1=new Date();
date=new (e());
ime(ng());
rator(rator());
int a=(bookForm);
if(a==1){
return rward("bookAdd");
}else if(a==2){
ribute("error","该图书信息已经添加!");
return rward("error");
}else{
ribute("error","图书信息添加失败!");
return rward("error");
}
}
页脚内容26
分类号 密级
4.4 图书借还功能模块的实现
该功能模块可分为图书借阅,图书归还,图书续借三个子模块.
(1)图书借阅。该子模块实现系统的借阅功能,读者向图书管理员提供自己的编号会显示出读者当起的借阅情况,再提供要借阅的图书标号,图书管理员将信息记录在系统中,借阅成功,其操作界面如图4.6所示。
图4.6 图书借阅操作界面
如果在借阅时所要借阅的图书不存在或者读者借阅已达借阅图书的上限,则读者不能接续借阅图书,系统将给出相应提示,此功能的实现代码为。
private ActionForward bookborrow(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
//查询读者信息
//此处一定不能使用该语句进行转换
code(ameter("barcode"));
ReaderForm reader = (ReaderForm) (readerForm);
ribute("readerinfo", reader);
//查询读者的借阅信息
页脚内容27
分类号 密级
ribute("borrowinfo",info(ameter("barcode")));
//完成借阅
String f = ameter("f");
String key = ameter("inputkey");
if (key != null && !("")) {
String operator = ameter("operator");
BookForm bookForm=(f, key);
if (bookForm!=null){
int ret = Borrow(reader, (f, key),
operator);
if (ret == 1) {
ribute("bar", ameter("barcode"));
return rward("bookborrowok");
} else {
ribute("error", "添加借阅信息失败!");
return rward("error");
}
}else{
ribute("error", "没有该图书!");
return rward("error");
}
}
return rward("bookborrow");
}
(2)图书归还。该子模块实现系统的图书归还功能,读者向图书管理员提供自己的编号会显示出读者当起的借阅情况,再提供要归还的图书标号,图书管理员将信息记录在系统中,归还成功,其操作界面如图4.7所示。
页脚内容28
分类号 密级
图4.7 图书归还操作界面
归还操作通过查询条形码来读取读者以及其借阅书籍的信息,其具体实现代码为。
private ActionForward bookback(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
//查询读者信息
code(ameter("barcode"));
ReaderForm reader = (ReaderForm) (readerForm);
ribute("readerinfo", reader);
//查询读者的借阅信息
ribute("borrowinfo",info(ameter("barcode")));
if(ameter("id")!=null){
int id = nt(ameter("id"));
String operator=ameter("operator");
if (id > 0) { //执行归还操作
int ret = (id,operator);
页脚内容29
分类号 密级
if (ret == 0) {
ribute("error", "图书归还失败!");
return rward("error");
} else {
ribute("bar", ameter("barcode"));
return rward("bookbackok");
}
}
}
return rward("bookback");
}
4.5 查询功能模块的实现
查询功能模块包括图书查询,读者借阅查询和借阅到期提醒三个子功能模块。
(1) 图书查询可根据图书的条形码,书名,作者,出版社等不同信息进行查询,其操作界面图如图4.8所示。
页脚内容30
分类号 密级
图4.8 图书查询操作界面
实现该功能中根据读者不同需求的按条件查询实现语句如下。
public Collection query(String strif){
BookForm bookForm=null;
Collection bookColl=new ArrayList();
String sql="";
if(strif!="all" && strif!=null && strif!=""){
sql="select * from (select b.*, as bookcaseName,e as
publishing,me from tb_bookinfo b left join tb_bookcase c on se= join
tb_publishing p on = join tb_booktype t on = where =0) as
book where book."+strif+"'";
}else{
sql="select b.*, as bookcaseName,e as publishing,me from
tb_bookinfo b left join tb_bookcase c on se= join tb_publishing p on
= join tb_booktype t on = where =0";
页脚内容31
分类号 密级
}
n("图书查询时的SQL:"+sql);
ResultSet rs=eQuery(sql);
try {
while (()) {
bookForm=new BookForm();
code(ing(1));
kName(ing(2));
eId((3));
hor(ing(4));
nslator(ing(5));
n(ing(6));
ce(f(ing(7))); // e((8));
kcaseid((9));
ime(ing(10));
rator(ing(11));
((12));
(f(ing(13))); kcaseName(ing(14));
lishing(ing(15));
eName(ing(16));
(bookForm);
}
} catch (SQLException ex) {
tackTrace();
}
();
页脚内容32
此处必须进行类型转换
分类号 密级
return bookColl;
}
(2)借阅查询子模块是对图书当前状态和读者当前的借阅情况进行查询,具有此权限的用户登录并进入该操作界面后选中相应的查询条件,并输入相应的查询信息,系统即可在页面显示被查询的图书的状态,或相应读者的当起借阅情况,此外,还可以输入相应时间段内的所有借阅清单,或选择某个读者查询他在某个时间段内的借阅情况,查询某个时间段内的此子功能操作界面如图4.9所示。
图4.9借阅查询操作界面
系统中同时选中日期和限制条件进行查询时,程序是在条件查询的基础上选中符合时间条件限制的内容,其实现代码为。
if ( == 2) {
if (ameter("f") != null) {
str = ameter("f") + " like '%" +
ameter("key") + "%'";
}
n("日期和条件");
String sdate = ameter("sdate");
String edate = ameter("edate");
String str1 = null;
if (sdate != null && edate != null) {
str1 = "borrowTime between '" + sdate + "' and '" + edate +
"'";
}
str = str + " and borr." + str1;
n("条件和日期:" + str);
页脚内容33
分类号 密级
}
(3) 借阅到期提醒子模块是将系统当前时间与应归还的时间进行比较,如果系统当前时间以超过图书应归还时间,相应的读者借阅信息便会被显示在借阅到期提醒界面,其界面如图4.10所示。
图4.10 借阅到期提醒
其中需要与之前的借阅时间进行比较并返回值,其具体实现代码为。
private ActionForward bremind(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
ribute("Bremind",d());
return rward("Bremind");}
5 系统测试
5.1 软件测试的方法与步骤
该系统在本地服务器上进行运行和调试,鉴于对系统的内部结构和处理算法的完全了解以及对系统功能的全面掌握对系统进行白盒测试和黑盒测试。
在开发软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。测试目的在于:发现错误而执行一个程序的过程,测试重要发现一个发现其中尚未发现的错误。
本系统的测试阶段信息流程如图5.1所示。
页脚内容34
分类号 密级
图5.1 测试阶段信息流程图
为了设计出有效地测试方案按照下面准则进行测试:所有测试都应追溯到用户需求;在完成了需求模型就要着手制定测试计划,在编码之前最所有测试工作进行计划和设计;运用Pareto原理着重对占出现错误80%的容易出错的20%的模块进行测试,从小规模开始逐步进行大规模测试,通常先重点测试单个程序模块再转向集成的模块簇;精心设计测试方案,尽可能充分覆盖程序逻辑使之达到要求的可靠性。
按照软件工程的观点,软件测试(主要是指多模块程序的测试)共包括4个层次。
(1)单元测试。单元测试的用例从单元详细设计中导出。在单元测试中可以采用功能性测试和结构性测试两种。
(2)集成测试和确认测试。这一阶段的任务,是通过了单元测试的模块逐步组装起来,通过测试与纠错,最终得到一个满足需求的目标软件。
(3)验证测试。在这个测试步骤中所发现的往往是需求规格说明的错误。一般来说,系统测试是功能性测试,不是结构性测试。
在整个测试中,采用了白盒测试和黑盒测试相结合的方法。
5.2 测试用例设计与测试用例的运行过程及测试结果分析
5.2.1 模块测试
(1)登录模块测试
表5.1登录模块用例测试
用例
UC1:输入正确的用户名和密码
测试数据
用户名:admin密码:admin 面
预期结果
系统跳转到登陆成功页页脚内容35
分类号 密级
UC2:输入空用户名
UC3:输入用户名和空密码
UC4:输入用户名和错误的密码
用户名:
用户名:admin 密码:
用户名:admin 密码:321ff
请输入用户名
请输入密码
您输入的用户名或密码错误
当用户输入的用户名或密码错误是系统会跳转到出错页面并提示“您输入的用户名或密码错误”,用户点击确定,系统会重新返回登陆页面,其中错误信息提示页面如图5.2所示。
图5.2 系统出错提示页面
(2)更改密码模块测试
用户登录系统后可对自己的登录密码进行更改,更改过程要求用户提供原始密码,输入新密码,重新输入新密码进行确认,如果用户输入的原始密码错误,或两次输入的新密码不一致将无法执行密码更新操作,系统会给出相应的提示,其显示页面如图5.3所示。
页脚内容36
分类号 密级
图5.3 两次密码不一致提示页面
5.2.2 集成测试
把经过单元测试的模块放在一起形成一个子系统并对它进行测试用于检验模块相互间的协调和通信,这里主要对图书管理员功能系统进行了测试,经过检验其功能均得以顺利实现,管理员操作的读者借阅模块成功运行界面如图5.4所示。
图5.4 图书管理员子系统功能测试截图
把经过测试的子系统装配成一个完整的系统进行测试,经过黑盒测试于白盒测试相结合的方式,对整个系统的各个功能模块进行了测试,并调试改正其中的设计和编码错误,经过这个环节的操作整个系统的功能基本实现成功运行。
5.3 评价
测试过程严格按照测试的流程,经过单元测试、子系统测试和系统测试。通过单元测试,查找出了系统各模块内部的错误;通过子系统测试,发现了模块间相互协调和通信上的错误;通过系统的集成测试,发现了软件设计过程中存在的错误。通过改正错误的设计和实现部分,保证了图书借阅管理系统可以完成需求分析中制定的需求。
从上面的测试中可以看出,此系统可以完成用户登录、系统设置、图书管理、读者管理管理、借阅管理和系统查询等功能。读者在本系统的应用下可实现按照各种方式(如:书名,编号,作者)查询图书馆的藏书请客,方便的借阅图书,续借图书,归还图书,页脚内容37
分类号 密级
能够查询自己的借阅图书情况。图书馆工作人员能够实现方便的对图书进行查询,方便的进行读者借阅情况查询,方便的进行借书还书处理等,便捷的对图书信息进行添加、修改、删除,分类管理等操作,对读者信息进行相关添加,修改,分类管理等操作。系统管理员可以对图书馆信息进行修改更新操作,对系统用户进行添加、修改、删除、权限设置等操作,对图书馆的办证参数进行修改维护等操作功能。测试阶段的工作一方面发现了系统的各种错误,另外一方面也验证了修改后的系统能够实现提高图书馆工作效率的预期目的。
页脚内容38
分类号 密级
总结
在MyEclipse开发环境下,以J2EE为平台,运用JSP网络编程语言和Struts框架和MySQL数据库完成了B/S模式的图书馆借阅管理系统。系统基本上实现了预期的各项功能,达到了任务书中的主要设计内容的各项任务,整个系统也在经过测试和不断地改正之后能够顺利运行。基本上实现了开题报告中的需求设计在程序编写,该系统能够实现:
(1)读者在本系统的应用下可实现按照各种方式(如:书名,编号,作者)查询图书馆的藏书请客,方便的借阅图书,续借图书,归还图书,能够查询自己的借阅图书情况。
(2)图书馆工作人员能够实现方便的对图书进行查询,方便的进行读者借阅情况查询,方便的进行借书还书处理等,便捷的对图书信息进行添加、修改、删除,分类管理等操作,对读者信息进行相关添加,修改,分类管理等操作。
(3)系统管理员可以对图书馆信息进行修改更新操作,对系统用户进行添加、修改、删除、权限设置等操作,对图书馆的办证参数进行修改维护等操作功能。
经过三个月的不断学习和设计开发加上老师同学的帮助,终于完成了我的毕业设计题目“图书管理系统”的开发,在开题报告阶段我参阅了大量的中外文献,对所开发系统的现状,国际发展情况以及未来发展趋势有了深入的了解; 在整个系统的需求分析过程中对开发前期工作地流程步骤有了深入的掌握;在开发过程我进一步学习了Java的基础语法,和一些网页设计美工方面的知识,以便使系统有更好的美观性,在编写过程中也规范了许多编码习惯,数据库设计阶段我尝试了几个不同版本的数据库,它们在配置操作上各有不同,又各有优缺点,在它们的一些基本操作上也有了进一步提高。在配置开发工具过程中对Tomcat和MyEclipse的连接部署有了清晰地认识,在使用第三方插件是进行了其配置文件的作用也有了相当的了解, 对开发Web程序的步骤框架页有了总体性认识。
在整个系统开发的过程中,我学到了很大新的知识,前学过的许多知识点在运用过程中也有了更为深入的分析,这是我大学期间做过的规模最大的项目,在这个过程中也体会到了如何将书本知识转化到实际的应用中。
页脚内容39
分类号 密级
参考文献
[1] 王立福. 软件工程(第二版)[M]. 北京:北京大学出版社,2012.2:75-81.
[2] 张秋余,杨玥. 基于用例的需求建模方法[J]. 计算机工程与设,2006.19:3539-3541.
[3] MattheMacDonal.管理信息系统[J].电子工业出版社,2013.3:102-108.
[4] John W. Satzinger, Robert B. Jackson, Stephen D. Burd. [Z]. 北京:人民邮电出版社,2010.7:50-55.
[5] 陆荣幸,郁洲. J2EE平台上MVC设计模式的研究与实现[J]. 计算机应用研究,2011.03:144-146.
[6] 尹朝庆. 计算机系统结构教程[M]. 北京:清华大学出版社,2009.6:178-185.
[7] 何成万,余秋惠. MVC模型2及软件框架Struts的研究[J].计算机工程,2009.06:274-276.
[8] 尹朝庆. 计算机系统结构教程[M]. 北京:清华大学出版社,2012.3:225-256.
页脚内容40
版权声明:本文标题:基于Java-Web的图书管理系统的设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1709132911h538562.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论