1、 题 目: 高校图书馆管理系统 设计与实现 学 院: 计算机科学与技术学院 专 业: 计算机科学技术与应用 班 级: 学生姓名: 学 号: 指导教师: 目录目录 2内容摘要 4引言 5第一章 概论 61.1 图书管理的现状 61.2 图书管理的发展背景和意义 6第二章 图书管理系统开发相关技术的介绍 62.1 系统的关键技术详细介绍 62.1.1JSP 技术 .62.1.3 SQL 介绍 7第三章 系统分析 73.1 系统需求分析 73.2 系统功能结构 83.3 数据流程图 83.4 可行性分析 93.4.1 技术可行性 .93.4.2 经济可行性 .103.4.3 操作可行性 .10第四章
2、 系统总体结构设计 104.1.系统结构设计 104.2 数据库设计 114.2.1 数据需求 .114.2.2 数据库概念结构设计 .114.2.3 创建数据库 .12第五章系统详细设计 155.1 登录模块设计 155.2 图书馆主界面模块的设计 165.3 日常工作功能模块的实现 .185.3.1 借书处理 185.3.2 还书处理 .195.3.3 图书续借 205.4 读者资料维护功能模块的实现 .215.4.1 读者类型管理功能界面 .215.4.2 读者档案管理功能界面: 225.5 图书资料维护功能模块的实现 .245.5.1.图书类型管理界面: .245.5.2 图书档案管理
3、界面: .255.6 查询功能模块的实现 .275.7 系统管理功能模块的实现 .29第六章 系统功能的测试与维护 316.1 系统测试的方案与技术 316.1.1 模块测试 .316.1.2 测试环境与配置 .346.2 测试总结 346.3 系统维护 34第七章 结论 35参考文献 35高校图书馆管理系统的设计与实现内容摘要图书管理系统是典型的信息管理系统(MIS) ,其开发主要包括后台数据库的建立和维护,以及服务器端、客户端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求 web程序具有功能完备,易使用等特点。 本次课程设计利用 My
4、Eclipse 开发工具和 MySQL 数据库来设计这个图书管理系统。该系统要解决的图书管理所要解决的问题,可以满足图书管理基本要求,包括添加、管理等功能。该系统能根据读者的需求,快捷方便的为读者提供借阅服务。本系统解决了学校图书馆理事务中的常用基本问题及相关统计工作。实现图书管理员对图书的分类、录入和新进图书的基本操作,对图书借阅情况的查询和对系统的维护等。本系统主要包含 6 个功能模块:管理员管理,读者管理,图书管理,图书借还,系统查询和系统维护。关键词: 图书管理系统,MyEclipse,MySQL引言图书管理系统是专门针对学校图书管理而开发的通用型很强的管理系统。随着学校图书量的不断扩
5、大,学生的频繁借书和还书操作,原来的手动记账已经远远不能满足现在的需要了,现今信息化的时代,图书管信息资源的有效管理已经成为学校学生获取图书信息的关键所在。应用信息化的技术对图书进行管理,不仅简化了管理员的工作程序,而且保证了数据的准确信。系统主要的模块有图书管理,读者管理,借阅管理等,可实现图书管理业务,使得图书馆理系统极大限度的应用于现代化图书管理中。第一章 概论1.1 图书管理的现状随着计算机技术的快速发展,它已经成为我们在生活中不可或缺的一个得力助手。在一些高校,也相继采用了图书管理系统来管理图书,取得了很大的成效。使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点。在现实生活
6、中,随着数据库技术、网络技术和科学管理方法的发展,计算机在管理上的应用日益广泛,管理信息系统逐渐成熟起来,并且给管理带来了新的发展。介于目前学校图书数目剧增,图书信息量也呈暴增的形势,因此对图书管理系统的要求越来越高,图书管理系统也在此基础上有了很大的发展,但是各系统力求使其功能简单明了,而且齐全、易于操作。1.2 图书管理的发展背景和意义当今计算机及网络技术的飞速发展,计算机应用在全球范围内日益普及,社会也正快速向信息化社会前进,信息系统的作用也越来越大。图书馆的图书馆理和借阅管理还停留在纸质的操作上,这样的管理已经不能适应时代的发展,因为浪费了很多的人力和物力,在信息发展的如今,这种传统的
7、管理方法必然被以计算机为基础的信息管理所取代,因此根据图书馆目前的实际情况来开发一套新的图书管理系统是十分必要的。通过对管理系统模型的研究,提出一构造图书信息管理系统模块的方法,并利用所学的知识,结合其他图书管理业务常识,建立一套有效的图书管理系统,可以减少工作量,将管理工作科学化、规范化,提高图书馆管理的工作质量和工作效率。第二章 图书管理系统开发相关技术的介绍2.1 系统的关键技术详细介绍2.1.1JSP 技术JSP(全称 JavaServer Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML
8、 或其他格式文档的 Web 网页的技术标准。JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于 HTTP 的应用程序。在传统的网页 HTML 文件(*.htm,*.html)中加入 Java程序片段(Scriptlet)和 JSP 标签,就构成了 JSP 网页 Java 程序片段可以操纵数据库、重新定向网页以及发送 E-mail 等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持 Java,也可以访问 JSP 网页。JSP
9、与 Serverlet 一样,是在服务器端执行的。通常返回给客户端的就是一个 HTML 文本,因此客户端只要有浏览器就能浏览。WEB 服务器在遇到访问JSP 网页的请求时,首先执行其中的程序段,然后将执行结果连同 JSP 文件中的 HTML 代码一起返回给客户端。插入的 Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 2.1.2 JavaScript 技术JavaScript 是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端 Web 开发的脚本语言,常用来给 HTML 网页添加动态功能,比如响应用户的各种操作。它是一种动态、
10、弱类型、基于原型的语言,内置支持类。2.1.3 SQL 介绍MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS) ,MySQL 数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理。 由于 MySQL 是开放源代码的,因此任何人都可以在 General Public License 的许可下下载并根据个性化的需要对其进行修改。MySQL 因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL 是管理内容最好的选择。第三章 系统分析3.1 系统需求分析长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较繁琐。
11、通过搜集资料,总结出了需求分析的结果,系统应满足一下的需求:图书馆管理系统是一个供内部人员使用的系统。而图书馆的工作人员也分为两类,一类是普通管理员,一类是超级管理员,根据不同管理员可设置相应的权限。图书管理系统需要满足图书管理员对图书借阅者借书和还书记录进行操作的权限,在此模块中,图书馆管理员可以为图书借阅者加入借书记录或是还书记录,并生成相应的列表给用户查看和确认。图书管理员可以浏览、查询、统计、添加借阅图书的基本信息及删除已归还的图书的基本信息,当删除某条图书借阅的基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现
12、对图书信息、借阅者信息、读者信息和管理员的信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改图书的基本信息,浏览、查询、添加、删除、修改图书借阅者的基本信息等。3.2 系统功能结构根据图书馆管理系统的特点,可以将其分为系统设置、读者管理、图书管理、图书借还、系统查询等 5 个部分,其中各个部分及其包括的具体功能模块如下图所示。图书馆管理系统系统设置 读者管理 图书管理 图书借还 系统查询图书馆信息管理员设置书架设置读者类型管理读者档案管理图书类型管理图书档案管理图书借阅图书续借图书归还图书档案查询图书借阅查询更改口令推出系统3.3 数据流程图数据流程图是描述实际业务管理系统工作流程的
13、一种图形表示法。图书管理系统主要是为了对图书,读者基本信息等进行计算机管理。根据系统的需求分析,画出图书馆管理系统的系统流程图,如下图所示。读者图书借阅 图书续借 图书归还管理员管理图书档案管理读者档案信息读者档案获取读者信息图书档案图书借阅档案根据读者信息获取借阅信息完成图书续借完成图书借阅归还相关图书图书归还档案3.4 可行性分析 通过对该图书馆的各个方面进行了具体的了解之后,现对开发图书管理系统的可行性进行分析。3.4.1 技术可行性技术可行性包括以下几个方面:硬件,软件,技术人员。针对这三个方面可行性都是没有问题的,本系统采用 MyEclipse 开发工具加 MySQL 数据库。目前,
14、数据库利用工具较多,每种工具都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及使用范围,选择最合适的。3.4.1.1 MyEclipseMyEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。3.4.1.2MySQL由于 MySQL 是一款免费的数据库,用 MySQL 作后台数据库来学习数据库编程,是非常方便使用的,且简单易学。一个普通的计算机用户可以很快的掌握它。3.4.2 经济可行性本图书管理系统能为图书管理者提供准确、及时的信息,对管理者的决策提供有利的支持;能够提高图书管理者
15、的工作效率,减少手工人员及费用等,这些都是使用系统所带来的间接收益。同时也促进了学校信息化的进程,提高学校的管理效率。3.4.3 操作可行性系统采用完全的图形化界面,易于管理,方便管理者查询设备信息,能够满足使用者的要求。该系统应该提供简单的操作界面,能够快速的实现查书、借书、还书功能。 综上所述,开发图书管理系统在技术上、经济上、操作上都是可行的。第四章 系统总体结构设计4.1.系统结构设计图书管理系统包含图书信息编辑、读者管理、查询等功能,该系统执行时,先输入数据,然后根据输入的数据选择执行路径;购入图书进行登记、编目调用图书信息编辑功能,借书、还书调用功能。图书馆管理系统属于事务型系统,
16、其读者与管理员间的流图如下图所示:借书图书馆管理系统 拒绝借书还书借书信息统计表系统结构示意图如下:4.2 数据库设计4.2.1 数据需求通过对系统进行需求分析、系统流程图以及系统功能结构的确定,首先将要记录的信息分类,要记录的信息如下。(1)读者信息:包括证号、姓名、联系方式、已借书数目、读者类别和能否借书等。(2)出版社信息:包括名称、地址、网址、E-mail 等。(3)书籍信息:包括书号、定价、出版社和书名等。(4)借阅信息:包括借阅日期、应归还日期、能否续借、书号和证号等。(5)管理者信息:包括管理者名称、对应密码和对应权限等。根据这些需要,本系统需要“读者信息”表, “出版社信息”表
17、, “书籍信息”表, “借阅信息”表和“管理者信息”表。4.2.2 数据库概念结构设计读者管理员读者图书馆管理系统图书信息编辑 读者管理 图书流通 图书查询输入图书信息 借书 还书根据规划出的实体有:图书信息实体、读者信息实体、图书借阅信息实体。各个实体具体的业务流程图如下:图 2-1 读者信息实体 E-R 图图 2-2 图书信息实体 E-R 图图 2-3 借阅信息实体 E-R 图4.2.3 创建数据库为了实现图书管理系统对数据的长期存储,并使数据安全。在 MySQL 软件中,创建数据库 db_librarysys 作为本软件保存数据的位置,共包含 9 张表。下面分别给出这些数据表的概要说明及
18、主要数据表的结构。管理员基本信息表 tb_manager,如表 3-1 所示。当管理员登录图书馆管理系统时,需要通过登录窗口验证成功后才能进入读者信息读者编号 密码借阅证号 读者编号. 图书信息图书编号 书名 作者 入库日期 借阅信息 图书编号 书名作者 归还日期系统主页。管理员信息实体,用于存储管理员的登录名称和登录密码。表 3-1 管理员信息表字段名 数据类型 长度 主键否 描述id int 10 是 管理员编号name varchar 30 否 管理员名称PWD varchar 30 否 管理员密码图书馆管理员权限设置表 tb_purview,如表 3-2 所示。只有系统分配的用户才能操
19、作图书馆管理系统,而用户的权限又各不相同。表 3-2 管理员权限设置表字段名 数据类型 长度 主键否 描述id int 11 是 管理员编号sysset tinyint 1 否 系统设置readerset tinyint 1 否 读者管理bookset tinyint 1 否 图书管理borrowback tinyint 1 否 图书借还sysquery bit 1 否 系统查询读者信息表 tb_reader,如表 3-3 所示。当有读者借阅图书时,要对读者的各项信息进行记录,以方便归还图书和已借阅图书的历史查询,读者信息实体,用于存储所有借阅图书的读者信息。表 3-3 读者信息表字段名 数据
20、类型 长度 主键否 描述id int 10 是 读者编号name varchar 20 否 读者名称sex varchar 4 否 性别barcode varchar 30 否 读者条形码vocation varchar 50 否 职业birthday date 0 否 生日paperType varchar 10 否 证件类型paperNO varchar 20 否 证件号码tel varchar 20 否 电话email varchar 100 否 E-mailcreateDate date 0 否 注册日期图书信息表 tb_bookinfo,如表 3-4 所示。不同的图书,会有不同的图书
21、信息。对这些图书信息进行详细的记录,方便了图书的分类和查询。图书信息实体,用于存储所有图书的相关信息。表 3-4 图书信息表字段名 数据类型 长度 主键否 描述barcode varchar 30 否 图书条形码bookname varchar 70 否 图书名称typeid int 10 否 图书类型author varchar 30 否 作者translator varchar 30 否 译者ISBN varchar 20 否 作者名称price float 8 否 图书价格page int 10 否 页码bookcase int 10 否 书架inTime date 0 否 入馆时间op
22、erator varchar 30 否 操作员del tinyint 1 否 借阅次数id int 11 是 图书编号图书借阅和归还信息表 tb_borrow,如表 3-5 所示。图书借阅信息实体,用于存储所有图书借阅归还情况的信息,以准确地记录每本图书的借阅归还信息。表 3-5 图书借阅表字段名 数据类型 长度 主键否 描述id int 10 是 借阅编号readerid int 10 否 读者编号bookid int 10 否 图书条形码borrowTime date 0 否 借书时间backTime date 0 否 还书时间operator varchar 30 否 操作员ifback
23、 tinyint 1 否 是否归还书架信息表 tb_bookcase,如表 3-6 所示。图书馆对图书的分类,通常是将不同类型的图书分别放置在相应类型的书架上。书架信息实体,用于存储图书馆中所有的书架信息。表 3-6 书架信息表字段名 数据类型 长度 主键否 描述id int 10 是 书架编号name varchar 30 否 书架名称图书类型信息表 tb_booktype 如表 3-7 所示。图书馆会有不同类型的图书,为了避免图书归类发生混乱,必须建立一个图书类型信息实体,用于存储图书的类型信息。表 3-7 图书类型信息表字段名 数据类型 长度 主键否 描述id int 10 是 图书类型
24、编号typname varchar 30 否 类型名称days int 10 否 可借天数图书馆信息表 tb_library,如表 3-8 所示。每个事物都会有其自身的历史背景,图书馆也不例外。为了记录图书馆的历史背景及其相关的信息,需要建立一个图书馆信息实体,用于存储图书馆的有关信息。表 3-8 图书馆信息表字段名 数据类型 长度 主键否 描述id int 10 是 编号libraryname varchar 50 否 图书馆名称curator varchar 10 否 馆长名称tel varchar 20 否 联系电话address varchar 100 否 联系地址email varc
25、har 100 否 电子邮件url varchar 100 否 网址createDate date 0 否 建馆时间introduce text 0 否 备注读者类型信息表 tb_readertype,如表 3-9 所示。在读者群体中,会有不同的分类,例如借阅图书的读者可能是教师、学生等,所以对读者人群进行有效的分类是至关重要的。读者类型信息实体,用于存储读者的类型信息。表 3-9 读者类型信息表字段名 数据类型 长度 主键否 描述id int 10 是 类型编号name varchar 50 否 类型名称number int 4 否 可借数量第五章系统详细设计本系统的设计的最大的特色是采用了
26、分层的设计思想,系统界面采用 Web 页面作为表现层和数据粘合层,为了进行一些常用的逻辑处理的需要还创建了业务逻辑层,为了为逻辑处理提供数据有创建了数据层,同时为了数据访问创建了数据模型层。在本节中示例的功能代码,都比较短并且不具体,那是因为很多功能都封装的功能类库里了,这里说明一下。具体请看系统源代码。5.1 登录模块设计如果使用系统就必须先登录到系统,用户通过登录模块登录系统。具体操作为:打开浏览器,然后在地址栏中输入http:/localhost:8080/JspLibrary/,即看到系统首页了。根据输入用户名及其密码,进入系统。界面效果如图 5-1:图 5-1 系统登录界面主要处理代
27、码如下:function check(form)if (form.name.value=“)alert(“请输入管理员名称!“);form.name.focus();return false;if (form.pwd.value=“)alert(“请输入密码!“);form.pwd.focus();return false;5.2 图书馆主界面模块的设计在该图书馆管理系统主界面中有 Banner 信息栏(显示当前登录用户,并对页面可以及时刷新) 、导航栏包括日常工作(下拉表中有借阅处理、还书处理、图书续借) 、读者资料维护(读者类型管理、读者档案管理) 、图书资料维护(图书类型设置、图书档案管
28、理) 、查询(图书资料查询、借阅历史记录查询、借阅到期提醒) 、系统管理(图书馆信息、管理员管理、书架设置) 、更改口令、退出系统。系统首页主要显示了图书借阅排行榜。利于查看借阅情况,读者对哪些图书感兴趣,便于管理图书。图书馆主界面如下图 5.2 所示: 图 5-2 图书馆管理系统主界面主要代码如下:if(coll_book!=null int i=1;int degree=0;String bookname=“;String typename=“;String barcode_book=“;String bookcase=“;String pub=“;String author=“;Stri
29、ng translator=“;Float price=new Float(0);while(it_book.hasNext() history.back(-1);“);elseIterator it=coll.iterator();int ID=0;String name=“;function check(form)if(form.name.value=“)alert(“请输入读者姓名!“);form.name.focus();return false;if(form.barcode.value=“)alert(“请输入条形码!“);form.barcode.focus();return f
30、alse;if(form.paperNO.value=“)alert(“请输入证件号码!“);form.paperNO.focus();return false;图 5.12 添加成功图标点击读者姓名(注:显现灰色即为可连接标识),可以查询查看读者详细资料,比如点击读者姓名 wgh,查看他的详细资料,如下图 5.13。图 5.13 读者详细资料5.5 图书资料维护功能模块的实现图书资料维护模块有两个模块:图书类型管理:对图书进行分类,设置图书的借阅时间。图书档案管理:对图书的相关信息进行记录,设置图书基本信息。5.5.1.图书类型管理界面:图 5.14 图书类型管理界面在图书类型管理界面中,同
31、样可以对图书类型实现增、删、改功能,如图5.15 所示。图 5.15 添加、修改图书类型及可借天数5.5.2 图书档案管理界面:图 5.16 图书档案管理界面图书档案包含很多与图书相关的信息,如图书编号,图书名称,图书类型,作者,译者,价格,出版社,所在书架等图书基本信息。此处,也可以实现增、删、改、查功能。通过点击灰色标识的字体。点击“Java 学习指南” ,出现此图书的详细信息界面,如下图 5.17 所示。点击图书Java 学习指南对应的“修改” ,出现修改图书信息界面如下图 5.18,点击“删除” ,可实现删除此图书信息。图 5.17 图书详细信息界面图 5.18 修改图书信息界面其主要
32、代码:String str=null;BookTypeDAO bookTypeDAO=new BookTypeDAO();Collection coll_type=(Collection)bookTypeDAO.query(str);if(coll_type=null | coll_type.isEmpty()out.println(“alert(请先录入图书类型信息!);history.back(-1);“);elseIterator it_type=coll_type.iterator();int typeID=0;String typename1=“;BookCaseDAO bookca
33、seDAO=new BookCaseDAO();String str1=null;Collection coll_bookcase=(Collection)bookcaseDAO.query(str1);if(coll_bookcase=null | coll_bookcase.isEmpty()out.println(“alert(请先录入书架信息!);history.back(-1);“);elseIterator it_bookcase=coll_bookcase.iterator();int bookcaseID=0;String bookcasename=“;PublishingDA
34、O pubDAO=new PublishingDAO();String str2=null;Collection coll_pub=(Collection)pubDAO.query(str2);if(coll_pub=null | coll_pub.isEmpty()out.println(“alert(请先录入出版社信息!);history.back(-1);“);elseIterator it_pub=coll_pub.iterator();String isbn=“;String pubname=“; BookForm bookForm=(BookForm)request.getAttr
35、ibute(“bookQueryif“);5.6 查询功能模块的实现查询功能模块包含三个功能模块:图书资料查询,借阅历史记录查询和借阅到期提醒。图书资料查询可查询图书一些相关的信息,根据图书的图书编号,书名,作者,出版社等,点击查询,可以查询与图书有关的信息,其操作界面图如下图所示:图 5.19 查询操作界面例如,选择书架 A,进行查阅。如下图 5.20。图 5.20 通过书架 A 查询界面图本系统可以通过图书信息进行查询。查询某一时间段的借阅历史,如下图5.21。图 5.21 通过读者名称查询借阅历史记录界面本系统还可以看到借阅图书的到期提醒。图 5.22 借阅到期提醒5.7 系统管理功能模块的实现主要有三个模块,分别为图书馆信息,管理员设置和书架设置。图书馆信息:图书馆名称、馆长名、联系方式、建馆时间及介绍。管理员设置:添加登录此系统的用户信息,修改其权限设置,使具有不同权限的用户登录此系统,还具有删除功能。下图 5.23 为管理员设置界面。图 5.23 管理员权限设置界面学生登录后只能在权限范围内进行操作。主要代码如下:书架设置:设置不同的书架,可以更好的对图书进行分类。可以增删改功能。如下图。图 5.24 书架界面图 5.25 书架添加与修改界面