图书管理系统设计文档.docx
《图书管理系统设计文档.docx》由会员分享,可在线阅读,更多相关《图书管理系统设计文档.docx(25页珍藏版)》请在冰豆网上搜索。
![图书管理系统设计文档.docx](https://file1.bdocx.com/fileroot1/2023-2/10/5a2121a5-7697-45c9-a409-e96bdf80ce85/5a2121a5-7697-45c9-a409-e96bdf80ce851.gif)
图书管理系统设计文档
摘要
随着科学技术的进步和计算机行业的迅速发展,人们的工作效率得到大大提高。
计算机信息处理系统的引进已彻底改变了许多系统的经营管理。
图书管理系统是学校管理机制中的重要组成部分,通过对图书馆管理系统的运行管理机制进行调查和研究,开发了此图书馆管理系统。
本文中主要介绍了图书馆管理事务中的常见基本问题等研究背景,进行了全面的可行性分析,详细论证了系统的需求分析、系统设计、系统实现和系统测试过程。
本系统使用JSP进行网页界面的设计,使用MVC设计模式,通过JDBC驱动和数据库进行无缝连接。
系统实现了用户登录、图书管理、借书证管理、图书借阅管理等功能模块。
用户登录模块实现用户的登录和权限判定;图书管理模块实现了对图书的添加、删除、修改、查询等功能;借书证管理模块实现了对学生的添加、删除、修改、查询等功能;图书借阅管理模块实现了学生对图书的借阅、还书和所借图书的查看等功能。
测试结果表明,本系统实现了图书馆图书管理的主要功能,基本满足图书管理的需要。
1 绪论
图书管理系统的主要功能是实现图书馆图书的借阅和归还的管理自动化,图书新增及销毁的及时化,用户及图书信息的更新,围绕这些主要功能,本系统涉及到以下核心功能:
借阅管理,归还管理,图书管理,学生管理。
除了这些核心功能外,还包括一些基本和辅助的功能,它们是:
图书信息管理,查询功能等。
该系统设计的主要目标是:
设计一个图书馆管理系统,该系统主要功能分为图书查询、图书借阅归还和图书管理三大部分。
在图书查询模块中要求用户能在浏览器中分别书名、著译者、类型等条件查询;在图书管理模块中要求能完成如办理借书证(即添加新的学生)、新书录入、借书还书登记、图书修改等日常管理功能。
(1)网站前台设计:
前台供学生使用,学生登录后有如下权利
①图书查询:
用户可以按多种方式对图书库中的图书进行查询;
②借阅信息查询:
用户可以查看自己的历史借阅信息。
(2)网站后台设计:
后台是供管理员使用的,管理员登陆后有如下权利
①办理借阅证:
将学生信息填写完整,在数据库中注册新用户;
②书籍的录入及删除:
可以对现有图书库中的图书进行删除,也可以添加新书;
③借书还书登记:
普通用户借阅或归还图书时,管理员将在借阅信息表中添加相应的记录;
④图书修改:
管理员可以对现有图书的详细信息进行修改。
2需求分析
2.1 图书馆管理系统需求概述
图书馆管理系统的开发主要涉及到图书的管理,学生信息的管理,借阅信息的管理三大功能的数据管理。
从管理的角度可将图书分为三类:
图书信息管理、系统用户管理、读者数据管理。
图书信息管理包括:
添加新进图书、删除旧图书、修改图书信息。
系统用户管理包括:
修改用户信息、办理新用户、注销用户。
读者数据管理主要包括:
读者借阅信息的管理,借阅图书以及归还图书。
图书借阅者的需求是查询图书室所存的图书。
个人借阅情况以及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书管理人员的功能最为复杂,包括对图书借阅者、图书进行管理和维护、以及系统状态的查询和维护等。
图书馆管理员可以浏览、查询、添加、删除、修改的基本信息;浏览、查询、添加、删除和修改图书借阅者的基本信息;浏览、查询、添加、删除和修改图书的借阅信息。
2.2 功能需求
在本系统中,对读者来说,他们关心的问题其实是如何方便的查询到图书馆中的书籍以及自己正在借阅或者已经借阅过一些什么书籍,也就是借阅历史,另一个关心的问题就是所借阅的图书是否到期等等。
由此可以得出系统一些需求。
2.2.1与读者相关的基本功能元素
(1)图书查询:
应该能够按照图书不同信息对图书进行查询,如书名、作者、图书类型等条件查询。
(2)读者信息查询,读者信息的查询内容应包括以下几个方面:
①读者信息——对读者的基本信息进行显示。
②书刊借阅——对该读者借阅书籍记录进行查询。
③欠款查询——对该读者超期图书的欠款情况的查看。
2.2.2与管理员相关的基本功能元素
在面向系统的管理员来说,应注意如下几点:
(1)图书馆中有哪些书籍,是否可以被借阅;
(2)对学生的添加、修改和删除操作的方便性;
(3)查看学生都借阅着哪些书籍;
(4)对书籍的添加、修改和删除操作的方便性。
2.2.3总体系统的基本功能元素
从以上问题出发,可以得出本系统应该具有的功能:
(1)图书查询——对馆内的图书进行查询;
(2)借阅管理——对读者的每一次借阅,还书进行登记和管理;
(3)图书管理——对图书馆的书籍进行管理,添加、删除以及修改信息;
(4)学生管理——对学生进行管理,添加、删除以及修改信息;
(5)欠款情况管理——对读者借阅图书超期欠款的情况进行管理。
4 系统设计
4.1图书馆管理系统设计指导思想和原则
(1)利用软件开发现有软硬件环境,及先进的管理系统开发方案,从而到达充分利用现在资源提高系统开发水平和应用效果的目的。
(2)系统应该符合软件工程开发的理论,开发方法等开发依据。
(3)系统应满足图书馆管理工作的需要,并达到操作过程中的直观,方便,实用,安全,准确等要求。
(4)系统应具备数据库维护功能,及时根据用户需求进行数据库的各种操作。
(5)系统采用原型,实用模块化程序设计方法,便于系统功能的各种组合和修改,以及系统的测试与维护。
(6)图书馆管理系统的设计应适合校园的发展。
4.2设计模式
设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。
本系统开发采用目前一种广泛流行的软件设计模式MVC。
MVC(Model—View—Controller)应用程序结构被用来分析分布式应用程序的特征。
这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。
把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
图4-1MVC模式
MVC模式的出现,很好的解决了传统开发WEB应用方式中存在的问题。
M代表模型(Model),包含完成任务所需要的所有的行为和数据;V代表视图(View)界面,现实模型提供的数据;C代表控制器(Controller),它将模型映射到界面中,处理用户的输入并相应请求。
其模型的关系如图所示。
在MVC模型中,三层各尽其职、相互独立,各层内部的改变不会影响到其它层,从而降低了数据表达、数据描述和应该操作的耦合度,也能更好的实现开发中的分工,加速工程进度。
4.2图书馆管理系统总体功能概述
图书管理系统包含五个模块分别是:
系统登录、图书管理、学生管理、借阅信息管理、图书检索。
系统登录模块:
一般用户和管理员都必须登录才能进入系统,用户登录时在后台判断用户的权限类型,分为普通用户和管理员,普通用户可以对书籍进行浏览及个人借阅信息的查询,管理员可以对多种信息进行操作。
图书管理模块:
管理员通过验证界面进入系统后,进入到图书管理模块,可以对图书进行添加,删除、修改图书信息、查询、查看等一系列的操作。
学生管理模块:
管理员可以在此模块中创建新的普通用户,并且可以对用户的信息进行修改,删除等操作。
借阅信息管理模块:
这是图书管系统中最重要的模块之一,管理员进入该模块中可以为普通用户办理借阅图书,归还图书的功能,并且能够实现还款的操作。
图书检索模块:
普通用户通过验证界面进入系统后,能够按照书名,作者等多种条件对图书进行查询操作,确保查询到的都是最新的信息。
整体系统的功能模块如图4-2所示:
图4-2图书馆管理系统功能图
4.3图书馆管理系统各功能模块概述
4.3.1系统登录模块
用户进入系统时调用的一个模块。
该模块根据用户输入的用户名、密码来判断用户的类型,跳转到该类用户的界面。
本模块的功能点包括:
(1)判断用户名和密码是否相符;
(2)根据用户的权限类型,登录到系统的制定界面操作使用。
登录功能模块流程图如图4-3所示:
图4-3登录模块流程图
4.3.2图书管理模块
在本模块中图书馆工作人员可以对图书进行管理操作。
本模块的功能点包括:
(1)新书入库,将新进图书按其类型将图书的基本信息录入系统数据库;
(2)图书出库,某一部分图书会随着时间的增长及知识的更新而变得不再有收藏的价值,或者图书被损坏,这些图书就要在图书库中除去。
即从图书库中删除此图书记录;
(3)新书编码,图书入库后,需要贴上条形码,以便以后提供借阅,本系统不涉及到条形码阅读器,只是假定此过程已经生成条形码。
编码只是将条形码帖于书上以唯一标识图书;
(4)图书信息修改,图书信息由于工作人员的疏忽,而出现录入错误,提供其图书ID就可以查看图书的基本信息并对其进行修改;
图书管理功能模块流程图如图4-4所示:
图4-4图书管理模块流程图
4.3.3学生管理模块
本模块主要是工作者对学生信息(读者借书证信息)进行管理。
本模块的功能点包括:
(1)办理借书证,为新读者办理借书证,填写用户基本信息;
(2)注销借书证,输入读者借书证编号,根据借书证ID删除读者表中此借书证信息;
(3)挂失借书证,主要是将借书证的状态改为挂失,更新读者表状态字段,有图书管理员操作;
(4)修改图书证信息,由于工作人员的疏忽,而出现办理借书证时录入信息有误,则可根据借书证编号对其信息进行查看和修改。
借书证管理功能模块流程图如图4-5所示:
图4-5借书证管理模块流程图
4.3.4借阅信息管理模块
本模块主要是工作者对图书外借和归还进行管理。
本模块的功能点包括:
(1)图书借阅,记录借阅证编号和图书编号,进行借书过程。
在数据库中插入一天借书记录,该记录包括图书ID、借书证ID、借阅日期、归还日期等;
(2)图书归还,输入借书证编号,图书编号,根据输入的编号在借阅登记表中找到相应的记录,将借阅记录删除,并将该记录相应的数据更新到历史借阅记录信息表中;
(3)查看借阅记录,可以根据借书证ID以及图书ID查询借阅记录。
(4)办理还款,如读者有图书超期的情况将会有欠款,可以根据借书证的ID来为读者班里还款。
借阅信息管理功能模块流程图如图4-6所示:
图4-6借阅信息管理模块流程图
4.3.5图书检索模块
使用该模块的用户有:
读者和管理员。
本模块的功能点包括:
(1)根据图书ID进行检索;
(2)根据图书名称进行检索;
(3)根据图书类型进行检索。
(4)根据图书作者或译者进行检索。
图书检索功能模块流程图如图4-7所示:
图4-7图书检索模块流程图
6.14.4系统数据库设计
4.4.1概念结构设计
(1)实体图
学生:
学生属性有学号、姓名、密码、性别、学院、班级、电话、email、宿舍、地址、已借书数量、创建日期。
学生实体图如图4-8所示:
图4-8学生实体图
图书:
图书属性有图书编号、书名、作者、类别、单价、出版社、出版日期、总数量、当前数量、购买日期、内容摘要。
图书实体图如图4-9所示:
图4-9图书实体图
(2)E—R图
根据以上实体图,分析了各个实体的属性,根据这些属性,可以得到系统的E—R图,如图4-10所示
1n
nn
1n
图4.8系统E-R图
4.4.2逻辑结构设计
根据上述功能模块的需求,设计如下主要数据库表:
表4.1图书信息表(t_book)
字段英文名称
字段中文名称
字段类型
字段约束
是否可为空
Book_num
图书编号
Varchar2(15)
主键
否
Book_name
书名
Varchar2(20)
否
Writer
作者
Varchar2(10)
否
Sort_id
类加ID
Varchar2(5)
否
Price
单价
Number(5.2)
是
Pub_company
出版社
Varchar2(20)
是
Pub_date
出版日期
Date
是
Total_num
总数量
Number(3)
否
Current_num
当前数量
Number(3)
否
Buy_date
入库日期
Date
否
Brief
内容摘要
Varchar2(100)
是
表4.2学生信息表(t_student)
字段英文名称
字段中文名称
字段类型
字段约束
是否可为空
Student_num
学号
Varchar2(15)
主键
否
Student_name
姓名
Varchar2(10)
否
Password
密码
Varchar2(20)
否
Academy_id
学院ID
Varchar2(10)
否
Class_id
班级ID
Varchar2(10)
否
Sex
性别
Varchar2
(2)
是
Telephone
电话
Varchar2(15)
是
Email
Email
Varchar2(20)
是
Lended_num
已借书数量
Number
(2)
默认为0
否
Create_date
创建日期
Date
否
表4.3借阅信息表(t_book_student)
字段英文名称
字段中文名称
字段类型
字段约束
是否可为空
Id
ID号
Varchar2(35)
主键
否
Book_id
图书编号
Varchar2(15)
否
Student_id
学号
Varchar2(15)
否
borrow_date
借书日期
Date
否
return_date
还书日期
Date
否
Money
超期罚款
Number(5.2)
否
表4.4管理员表(t_admin)
字段英文名称
字段中文名称
字段类型
字段约束
是否可为空
Admin_id
管理员ID
Number(5)
主键
否
Admin_name
管理员姓名
Varchar2(10)
否
Admin_password
管理员密码
Varchar2(20)
否
表4.5学院表(t_admin)
字段英文名称
字段中文名称
字段类型
字段约束
是否可为空
Academy_id
学院ID
Varchar2(10)
主键
否
Academy_name
学院名
Varchar2(30)
否
表4.6班级表(t_class)
字段英文名称
字段中文名称
字段类型
字段约束
是否可为空
Class_id
班级ID
Varchar2(10)
主键
否
Class_name
班级名
Varchar2(30)
否
Academy_id
所属学院ID
Varchar2(10)
否
表4.7图书类别表(t_admin)
字段英文名称
字段中文名称
字段类型
字段约束
是否可为空
Sort_id
类别ID
Varchar2(5)
主键
否
Sort_name
类别名
Varchar2(20)
否
5 系统实现
图5-1数据库查询示意图
6.25.1 登录系统模块的实现
本模块主要是用户通过图书馆管理系统的首页进入该系统。
用户输入正确的用户名和密码,如果登录信息有错误,则系统提示登录错误信息,并且禁止系统用户进行任何操作。
若登录信息正确,系统会根据用户的身份进行相应权限的判断,读者进入前台系统,管理员进入后台系统。
图书馆系统登录主页面如图5-1所示。
图5-1图书馆管理系统登录界面
其实现的代码如下:
6.35.2 图书管理模块的实现
图书管理模块主要分为图书入库、查看图书、统计图书,其中图书入库是往图书管理数据库中添加图书信息。
看图书功能中可以查看图书详细信息,并对图书信息进行修改或删除某些废弃图书信息。
5.2.1 图书入库功能的实现
点击添加图书功能,填写图书基本信息,为图书选择类型,类型是与数据库交互动态生成的下拉列表,具体界面如图5-2所示。
图5-2图书入库界面
5.2.2 图书维护功能的实现
点击图书维护功能,展示所有图书的信息列表,在每个图书信息行后提供删除和修改操作功能,并且可以单击选定某一个图书信息后的详细信息进行详细查看图书信息。
具体图书列表界面如图5-3所示
图5-3图书列表界面
(1)删除图书功能的实现
管理员删除图书,删除时可删除一个,也可同时多选删除,
(2)修改图书信息功能的实现
在管理员修改图书信息时,跳转到图书信息详细表单中,列出所要修改图书的详细信息,并可以进行修改,则修改界面如图5-4所示。
图5-4修改图书信息界面
(3)查看图书详细信息功能的实现
在管理员点击详细信息时,跳转到某图书信息详细表单中,列出所选图书的详细信息,则显示界面如图5-5所示。
图5-5图书详细信息界面
5.3 学生管理模块的实现
学生管理模块主要分为添加学生、查看学生、修改学生,查看学生的详细信息。
5.3.1 学生添加功能的实现
点击添加学生,填写学生基本信息,具体界面如图5-6所示。
图5-6办理借书证界面
5.3.2 学生维护功能的实现
点击学生维护功能,展示所有读者的信息列表,在每个读者信息行后提供删除和修改操作功能,并且可以单击选定某一个读者信息后的详细信息进行详细查看读者信息。
具体读者列表界面如图5-7所示
图5-7读者列表界面
(1)删除学生功能的实现
管理员删除读者,删除时可删除一个,也可同时多选删除。
(2)修改学生信息功能的实现
在管理员修改学生信息时,跳转到学生信息详细表单中,列出所要修改学生的详细信息,并可以进行修改,则修改界面如图5-8所示。
图5-8修改读者信息界面
(3)查看读者详细信息功能的实现
在管理员点击详细信息时,跳转到某读者信息详细表单中,列出所选读者的详细信息,则显示界面如图5-9所示。
图5-9读者详细信息界面
5.4 借阅信息管理模块的实现
借书信息管理模块主要分为办理图书借阅、办理图书归还、借阅信息查看,其中借阅信息查看可按图书编号和借书证编号查看。
5.4.1 办理图书借阅功能的实现
点击图书借阅,填写图书编号和借书证编号,具体界面如图5-10所示。
图5-10办理图书借阅界面
5.4.2 办理图书归还功能的实现
点击图书归还,填写图书编号和借书证编号,具体界面如图5-11所示。
图5-11办理图书归还界面
5.5 图书检索模块的实现
本模块主要是用户能够输入自己想要查询图书的条件来快速的检索。
图书检索页面如图5-12示。
图5-12图书检索界面
5.6系统设计的创新点
5.5.1 系统后台管理的安全性
为了不让一般读者用户通过输入网址直接进入后台管理系统,必须采取一定的安全判断措施来进行系统的保护。
在这里是通过JSP技术的“session”功能来实现的。
session可以在网页运行期间记录某个对象的值,例如session.setAttribute(”KEY”,“super”)这句话就是给“KEY”这样一个对象赋予了“super”的值。
管理员登录系统时,一旦登录成功,就可以为某个对象设置一个session值,然后再进入每个系统管理界面之前都进行一次此对象session值得判断,如果此对象的session值并不是管理员在成功登陆系统后所设置的值,即可跳转到错误页面,反之则成功进入管理页面。
由于session的对象是编写者随机设置的,session值也是随机设置的,而且必须在系统网页运行期间进行session的设置才起作用,所以用户是无法直接进入系统后台管理的。
这样一来,系统后台管理的安全性就得以保障了。
5.5.2 DAO数据访问接口
DAO是数据访问接口(DataAccessObject)的缩写,把数据库的连接和操作封装在DAO内。
其优点一是让业务代码无需依赖于任何特定的数据访问API;二是提高数据库操作代码的重用率;三是实现了持久层与业务逻辑的分离;四是简化了数据库程序设计。
因此,该文档与档案系统采用DAO模式实现与数据库的操作。
在工程文件的目录如图5-14示:
图5-14工程目录
其中dao包中有三个类文件,分别是对于不同模块所创建的借口,而在service包中有与dao包中名字对应的三个类文件,跟别实现了dao包中的所有将诶口。
这样做就实现了数据与业务的分离。
6 系统测试
6.1登录模块测试
进入系统,输入用户名和密码,根据用户身份的不同,显示的操作菜单有所不同,一般读者只能查看图书信息和个人信息,并可以查询自己的借阅图书的历史记录;图书管理员可以对图书信息,读者信息以及借阅信息进行查看和管理。
当输入错误的用户名称密码时显示登录错误并自动返回登录窗口。
6.2图书管理测试
图书管理员进入系统图书管理模块后,可对图书进行添加,修改,删除操作。
(1)添加图书,填写图书基本信息,点击确定按钮,添加成功跳转到成功页面并提示添加成功,可继续添加,添加失败跳转到失败页面并提示添加失败,请重新添加。
当填写的信息不完全时,点击确定按钮将根据没有填写的信息给出提示。
(2)删除图书,单个删除时,点击删除则根据图书的ID删除此图书信息,成功则返回列表,不成功则提示未删除成功的原因,多选删除时也根据图书ID数组删除多个图书,并跳转到相应的提示页面。
(3)修改图书信息,点击查看图书信息时,可对图书信息进行修改,修改成功或失败跳转到相应提示页面。
6.3学生管理测试
图书管理员进入系统借书证管理模块后,可对借助正进行添加,修改,注销等操作。
(1)办理借书证,填写读者基本信息,点击确定按钮,添加成功跳转到成功页面并提示添加成功,可继续添加,添加失败跳转到失败页面并提示添加失败,请重新添加。
当填写的信息不完全时,点击确定按钮将根据没有填写的信息给出提示。
(2)注销借书证,单个删除时,点击删除则根据借书证编号注销此借书证,成功则返回列表,不成功则提示未删除成功的原因,多选删除时也根据借书证ID的数组删除多个借书证,并跳转到相应的提示页面。
(3)修改读者信息,点击查看读者借书证信息时,对其进行修改并根据结果成功或失败跳转到相应提示页面。
6.4借阅信息管理测试
图书管理员进入系统借阅信息管理模块后,可对借阅信息进行管理操作。
(1)办理借阅,根据读者借书证编号和图书编号办理读者借阅此图书,若图书剩余数量为0,则提示不能借阅,图书数量不足,如此图书证已经借阅此图书,则提示不能借阅相同的图书,若借阅成功则转向成功界面。
(2)图书归还,根据读者借书证编号和图书编号办理归还图书,借阅信息中必须有这条信息,否则不能归还,跳转提示页面。
图书归还成功后不再有这条借阅信息,图书数量加1,并且计算好欠费情况。
(3)查看借阅信息,能够根据图书编号或借书证编号查询借阅信息。
(4)办理还款,根据读者借书证编号为读者办理还款业务,根据结果能够跳转到相应的提示页面。