基于bs架构的图书馆管理系统论.doc_第1页
基于bs架构的图书馆管理系统论.doc_第2页
基于bs架构的图书馆管理系统论.doc_第3页
基于bs架构的图书馆管理系统论.doc_第4页
基于bs架构的图书馆管理系统论.doc_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕毕 业业 论论 文(设文(设 计)计) 作作 者者:周宇轩 学学 号:号: 078201043 系系 部部:信息科学与工程系 专专 业业:计算机科学与技术 题题 目目:小型图书馆管理系统的设计与实现 指指导导老老师师陈鑫讲师 提提交交日日期期 南京大学金陵学院 毕业论文(设计) i 小型图书馆管理系统的设计与实现小型图书馆管理系统的设计与实现 摘摘 要要 图书馆管理系统是典型的信息管理系统,能够灵活地进行图书馆管理,从而提高图书馆 工作效率,实现图书馆工作的信息化。传统的 C/S 架构的图书馆管理系统虽然在数据处理上 效率较高,但是每一台客户机都需要安装客户端,而 B/S 结构只需要有浏览器就可以实现。 本文通过分析运用 B/S 结构、J2EE 技术以及 MYSQL+TOMCAT 后台,设计出具有登录,图书借 阅,图书归还,图书预借,图书续借,图书推荐,个人用户管理,借书卡用户增删,超期记 录删除,图书检索功能功能的小型图书馆管理系统的过程。从而探索使用 B/S 架构的图书馆 管理系统提高图书馆工作效率的可行性。测试表明,该系统正确地实现了规约说明中规定的 功能。 关键词:图书馆管理系统; servlet; 数据管理; B/S 架构 南京大学金陵学院 毕业论文(设计) ii The design and realize of library manage system for small library ABSTRACT The library manage system is a typical MIS.This system can be used flexibly on library manage to raise the efficiency of library and achieve informationization of the library.Compared with the traditionnal systems based on B/S structure, the systems based on C/S structure have higher efficiency in date manage.But the client computers have to be install the client program, and the systems based on B/S structure only need a browser.This paper via analyse the process of the design of library manage system for small library which use J2EE technic,MYSQL as datebase and TOMCAT as server.This system have following function:login, borrow book,return book, book reserve,book relet,book commend,individual manage,add or delete user and delete overtime register,and use the anlyse to explore the feasibility of use library manage system based on B/S structure to raise the efficiency of library. The testing procedure shows that all the requirements in the specification have been implemented correctly. Keywords:library manage system; servlet; date manage; B/S structure 南京大学金陵学院 毕业论文(设计) iii 目目 录录 摘 要i ABSTRACT.ii 第一章 绪 论1 1.1 引言 .1 1.2 研究背景 .1 1.2.1 C/S 图书管理系统现状1 1.2.2 B/S 图书管理系统现状1 1.3 研究内容和目的 .2 1.4 本文主要内容和组织 .2 第二章 开发基础3 第三章 需求分析5 第四章 系统设计11 4.1 概要设计 11 4.1.1 结构设计 11 4.1.2 数据库设计 12 4.1.3 页面设计 13 4.2 详细设计 15 第五章 系统测试25 第六章 结论31 6.1 本文的主要工作 31 6.2 进一步的功能工作 31 致谢32 参考文献33 南京大学金陵学院 毕业论文(设计) 第一章第一章 绪绪 论论 1.11.1 引言引言 随着网络技术的快速发展,计算机技术的发展,计算机价格的不断下降,书籍的大量出版, 利用计算机对图书馆的日常工作进行管理的条件已经成熟。虽然目前很多大型的图书馆已经 有一整套比较完善的管理系统,但是在一些中小型的图书馆中,虽然书籍较少,但由于大部分 工作仍需要手工完成,工作起来效率比较低,管理员不能及时了解图书馆内各类图书的借阅情 况,读者需要的图书难以在短时间内找到,不便于动态及时地调整图书结构。为了更好地适应 当前读者的借阅需求,解决手工管理中存在的许多弊端,利用计算机进行图书馆日常管理已经 是是在必行,目前越来越多的中小型图书馆正在逐步向计算机信息化管理转变。 1.21.2 研究背景研究背景 .1 C/SC/S 图书管理系统现状图书管理系统现状 在大中型图书馆中,大量的书籍决定着使用计算机系统进行管理已经是必须的措施,所 以无论是国内还是国际上,都有着不少 C/S 结构的图书馆管理系统,甚至国际上有不少著名 的图书馆管理软件公司。虽然由于国内起步较晚,开发基本依靠研究机构,开发人员流动频 繁,持续性开发存在难度,而且没有完全进入商业领域,系统的稳定性和安全性与国外相比 存在一定的差距。但是由于借鉴了国外的先进经验和技术,基本的图书馆业务管理方面(采 访,编目,流通,期刊管理,咨询等)与国外差距很小,又融合国内图书馆管理上的特点, 所以在处理中文刊物上具有一定的优势。总体来说,国外的大型图书馆管理系统已经基本发 展成熟了,而国内已经基本发展成熟,再经过一段时间的发展,也能达到国外的发展水平。 .2 B/SB/S 图书管理系统现状图书管理系统现状 同时随着网络技术的的发展,网络传输速度越来越快,除了比较成熟的 C/S 系统,B/S 系统也开始发展起步。相对于 C/S 系统,B/S 系统由于使用者只要使用浏览器即可完成各项 操作,使得系统变得简单,特别适合于非计算机人员使用,而过往限制着 B/S 系统的网络速 度的瓶颈已经被打破,使得 B/S 系统的发展也更加的迅速。一般的图书馆管理员并没有太多 的计算机专业知识,所以相对于 C/S 系统,B/S 系统对于他们更加的适合。而且中小型图书 馆特别是小型图书馆很可能面临着经费不足的问题,而 C/S 结构的图书馆管理系统所采用的 服务器一般是使用 UNIX 系统的小型机,价格一般以十万为单位,对于大中型图书馆价格并 南京大学金陵学院 毕业论文(设计) 不算什么,而对于中小型图书馆特别是小型图书馆来说确是一笔不小的开支。同时小型图书 馆的藏书量一般不多,这使得使用一般的服务器甚至普通微机已经成为可行,而即使是一般 服务器价格也只有两,三万元,一般用于做服务器的微机则很少能超过万元,即使是小型图 书馆也能够承受。但同时,B/S 结构是近几年刚刚兴起的,在技技术成熟度及软件设计、开 发人员的掌握水平来看, C/S 技术比 B/S 技术更成熟、更可靠 。所以虽然 B/S 结构相对 于小型图书馆比较便捷,但是这类系统也才刚刚起步。 对于图书馆的管理而言,B/S 架构的图书馆管理系统与 C/S 架构的图书馆管理系统相比, 除了需要做到的 C/S 架构可以完成的功能以外,要能够在除了必须经由图书馆管理员处理的 方面之外与读者进行互动。最基本的功能就是应该能够使读者不用为了寻找需要的书籍只能 够使用图书馆内有限的几台查询机器进行查询或者自己一个一个书架漫无目的的搜寻,而是 要使读者依靠任何一台能够与网络互连的互联网,在图书馆网站开放的任何时间对书籍进行 搜寻。同时也要能分担一部分图书馆管理员的工作,比如图书续借预借一类的工作就可以依 靠网络操作由用户自行解决。 1.31.3 研究内容和目的研究内容和目的 本文的研究目标是:运用现代图书馆管理理论,配合计算机系统,通过实验,设计出一 个可以在小型图书馆使用的 B/S 架构图书馆管理系统。系统需要具有图书借阅、图书归还、 图书预借、图书续借等图书馆基本功能。其中图书预借、图书续借之类的不涉及实体书的功 能要能够在不用图书馆管理员的帮助下,读者通过登录以后就可以自行完成。 本文研究的主要内容是设计并实现一个 B/S 结构的小型图书馆管理系统,本系统具有登 录,图书借阅,图书归还,图书预借,图书续借,图书推荐,个人用户管理,借书卡用户增 删,超期记录删除,图书检索功能。 1.41.4 本文主要内容和组织本文主要内容和组织 本文将从软件工程的角度,在需求分析分析方面,将通过用例图,活动图展示本系统所 拥有的功能和各项功能的简单流程,概要设计方面配合界面截图,UML 图阐述该系统的结构, 数据库里的数据结构以及面向访问者的系统页面,详细设计方面配合程序流程图具体阐述各 个模块的输入输出和算法,在测试部分进行一系列的测试以对该系统进行检查。在最后,将 对本系统的开发进行一个总结,提出存在的问题和进一步的工作。 南京大学金陵学院 毕业论文(设计) 第二章第二章 开开 发发 基基 础础 本图书管理系统在前台界面方面使用了 HTML 语言。选用 HTML 语言是因为该语言是网络 的通用语言,它的简易性使得编写非常的灵活方便, 允许网页制作人建立文本与图片相 结合的复杂页面 ,同时可扩展性使得便于修改时进行扩展。而且这种语言具有良好的平 台无关性,这使得 这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电 脑或浏览器。 最关键的一点是,这种语言有着大量的所见即所得类型的编译器,可以随 时确认编写的网页是否正确,而不是彻底编好后才能进行检查【1】 。 后台服务器软件选用的是 Apache tomcat6.0,选用这个服务器是因为系统中有Java 代码需要依靠 tomcat 进行解释。同时 Apache 服务器是一个开源的优质服务器,很多人 对它不断地进行修补和更新,功能强大的同时系统简单,速度快,性能稳定,所以绝大 多数的网站都使用它来作为服务器软件。该服务器同时也是一个轻量级应用服务器,非 常适合用于中小型系统或者访问用户不多的时候,并且方便用于调试Servlet【2】 【3】 。 数据库方面由于系统不需要 存储太多的数据,所以数据库选择了小型关系型数据库 MySQL。MySQL 是一个开源软件,具有体 积小、速度快、总体拥有成本低的特点,用于 处理中小型系统中的数据是非常良好的选择。同时它也对多种语言专门开发了用于连接数据 库的 API【4】 。 前台与后台数据的交互则使用了 J2EE 的 servlet 技术实现,这是一种服务器端的 Java 应 用程序,具有独立于平台和协议的特性,可以生成动态的 Web 页面。 它担当客户请求(Web 浏览器或其他 HTTP 客户程序)与服务器响应(HTTP 服务器上的数据库或应用程序)的中 间层。Servlet 是位于 Web 服务器内部的服务器端的 Java 应用程序,与传统的从命令行启动 的 Java 应用程序不同,Servlet 由 Web 服务器进行加载,本系统中就是由包含了 Servlet 的 Java 虚拟机的 tomcat 进行的加载【5】 。 与在传统上用于实现这些功能的 CGI(Common Gateway Interface 公共网关接口)相比, Servlet 效率更高,同时由于 Java 的跨平台特性,Servlet 也具有着良好的可移植性,从而更 节省投资。在系统开销方面,CGI 中每个请求都要启动一个新的进程,如果 CGI 执行时间 比较短的话,启动进程的开销就很可能超过执行所花的时间。而在 Servlet 中,每个请求都 南京大学金陵学院 毕业论文(设计) 是由 Java 线程处理。在传统 CGI 中,如果有 N 个并发的对同一 CGI 程序的请求,则该 CGI 程序的代码在内存中重复装载了 N 次;而对于 Servlet,处理请求的是 N 个线程,只需要一 份 Servlet 类代码。在性能优化方面,Servlet 也比 CGI 有着更多的选择。在使用方面程度方 面由于 Servlet 提供了大量的实用工具例程,例如自动地解析和解码 HTML 表单数据、读取 和设置 HTTP 头、处理 Cookie、跟踪会话状态等所以也是 Servlet 更胜一筹。而 Java 功能强 大的特点也被 Servlet 所继承,Servlet 能够在各个程序之间共享数据,使得数据库连接池之 类的功能很容易实现【5】 。 南京大学金陵学院 毕业论文(设计) 第三章第三章 需需 求求 分分 析析 软件需求分析是软件生存期的一个重要阶段,是软件开发项目得以成功的基础。其最根 本的任务是确定为了满足用户的需要软件系统必须做什么。 在本部分,本文将阐述设计的这个系统具有哪些功能,这些功能能做到什么,这些功能 的实现步骤是什么,功能的具体算法将在详细设计里进行实现。 用户权限是一个系统的重要部分,只要用户都具有正确的权限,才能保证系统的安全性。 本系统中的用户分为三种,权限最少的是游客,就是没有进行任何登录的访问者,所以拥有 的权限也仅限于浏览图书馆与本系统介绍和查询图书。如果要拥有更多的权限就必须有读者 账户或者管理员账户可以进行登陆。 最普遍的是读者,是使用系统的图书馆里的登记用户,在本系统中除了具有游客的所有 权限以及基本的在管理员帮助下进行图书的借还,改写个人密码以外,也能进行图书的续期、 预借,如果发现自己需要的书籍图书馆没有收录,也能够进行推荐。 权限最大的是管理员,负责图书馆的管理,拥有管理员账户的人自身也有自己的读者账 户。由于是独有的管理用账号,所以不能使用这个账号借书以及查询书籍。能够完成的功能 有用户的增删,用户状态的改写,帮助读者进行借书还书。 系统用例图如下: 图 3-1 系统用例图 南京大学金陵学院 毕业论文(设计) 如图所示,这些身份具以下功能: 查询功能:具有查询权限的用户(游客和读者)可以通过作者,书名(可以只输入书面 前 N 个字查询) ,俩个条件中任意一个查询图书是否被图书馆收藏,并可选择显示全部符合 条件的图书或者只显示未被借出的图书。本功能活动图如下: 图 3-2 游客或借书卡用户图书查询活动图 个人管理功能:所有系统都必然具有的功能,账号登录后可以修改个人密码,用户名 (管理员账户没有用户名,只能修改自身密码) 。不同读者账户个人密码在账户被管理员建 立时默认为同一个,用户名默认为借书卡号。本功能活动图如下: 图 3-3 管理员个人资料修改活动图 南京大学金陵学院 毕业论文(设计) 图 3-4 借书卡用户个人资料修改活动图 账号添加删除功能:管理员权限下可以添加删除读者账号,系统根据选择进行判断,添 加账户要求添加的账户不能已经存在,删除账户必须要求当前账号并没有仍然在借的书籍或 者超期记录。管理员账号数量固定,不可添加或删除。本功能活动图如下: 图 3-5 管理员借书卡用户增删活动图 借书功能:借书需要 2 个数据,要借书的借书卡号以及要借的书的书刊编号。然后系统 会进行判断,借书卡要求不能已经借满或者目前仍然有超期记录存在。要借的书则要保证该 南京大学金陵学院 毕业论文(设计) 书未被借出,如果书籍在馆则要求该书不是已经被别人预借且在预借期内。 图 3-6 管理员图书借阅活动图 还书功能:还书只需要还得书籍的编号。要求该书籍必须处于再借状态。如果是在借阅 期内将书还回则无任何影响,如果还书的时候已经超过了借阅期,则会给借阅者留下超期记 录,记录下超期的时间以便于计算超期罚款。下次再借书时除非清除了超期记录,不然不能 借阅。本功能活动图如下: 图 3-7 管理员图书归还活动图 南京大学金陵学院 毕业论文(设计) 预借功能:预借图书需要输入想要预借的图书号,由于单独这个操作不需要牵涉到图书 的出入馆,所以读者账户就可以完成这个工作,不过每人只能帮自己预借。系统获取图书号 以后会自动和数据库比对,确定该书是否是在借出状态或者已经被别人预借。如果符合预借 条件,在书返还会图书馆一定时间内,该书只能由预借人借取。本功能活动图如下: 图 3-8 借书卡用户图书预借活动图 续借功能:一般图书在借阅期内就可以看完,但是部分大部头专业书籍可能读者无法看 完,所以设置了续借制度。在图书借阅期内,使用读者账户登录,并输入需要续借的图书号, 系统会进行判断,要求书号必须是登录的读者账户里所借的图书,且该书不能已经被续借过 或过期,假如满足续借条件,则从续借之日起再次计算借阅期。本功能活动图如下: 图 3-9 借书卡用户图书续借活动图 图书推荐功能:读者假如发现需要的书图书馆没有收录,则可以对该书进行推荐,推荐 需要输入书名和作者名,推荐的书目会计入数据库。每次进新书之前,管理员查看数据库, 南京大学金陵学院 毕业论文(设计) 考虑是否要购入推荐书籍。本功能活动图如下: 图 3-10 借书卡用户图书推荐活动图 南京大学金陵学院 毕业论文(设计) 第四章第四章 系系 统统 设设 计计 4.14.1 概要设计概要设计 需求分析结束以后就将对软件进行设计,软件设计分概要设计和详细设计,首先要进行 的是概要设计。概要设计的目的是将需求分析所获得的结果转化成为软件结构和数据结构, 划分系统的模块,建立模块之间的层次结构及调用关系、确定模块间的接口以及制作出人机 界面并对数据库的表结构进行设计,最终建立系统的逻辑模型,而不需要设计到代码的编写 本文里的这一部分将主要阐述系统的结构,数据库里表的关系和表内数据情况。以及与访问 者进行交互的最外面一层 HTML 页面的规划。 4.1.1 结构设计 在这一部分,本文将根据需求分析获得的内容对系统做出一个简单的设计,详细描述系 统数据库里的数据结构,各个表的作用,各个界面的设计理由,具体的后台实现方法则在详 细设计里叙述。 根据系统的需求,系统需要能在普通配置的机器上运行,由于本系统是为中小型图书馆 所设计,使用的语言 Java,Html 和数据库 MySQL 也具有相当优良的跨平台性,所以这一 方面不需要特别考虑。 本系统采用三层结构,最外层是客户层的 HTML 页面,用于与访问者的交互。中间是 WEB 层组件 servlet,用于向后台传递信息。 最下层是企业信息系统层的后台服务器和数据 库。结构如下图: 图 4-1-1 系统结构图 南京大学金陵学院 毕业论文(设计) 4.1.2 数据库设计 在系统的数据处理方面,为了存储各种数据,数据库里建立了以下几张表: addate 表,该表有 adname 和 psd 两个元组。这张表的作用是用来存储管理员账户的用 户名和密码,用于在以管理员账户登陆时确认身份。 book 表,该表有 booknum、bookname、writor、preborrowid、isborrow 和 preborrowtime 六个元组,分别存放图书编号、图书名、作者、预借人编号、是否已经借出 和预借图书的时间这六种数据。这张表的作用是存储所有馆藏书籍的情况。除了登录,推荐 和账户管理模块以外的其他模块都和这张表有着关系。 borrowbook 表,该表有 booknum、cardid、borrowtime、shouldreturntime、overtime、returntime 和 borrowagain 七个元组,分别存放图书编号、借阅者卡号、借阅时间、应该归还时间、超期 时间、归还时间和是否续借过这七种数据。这张表的作用是存放所有借阅书籍的记录,在借 出时会向里面添加记录,书籍归还的时候则会结算超期时间,并将对应记录删除。 reader 表,该表有 readname、cardid、maxborrownum、couldborrownum、psd 和 overtime 六个元组,分别存放读者用户名、借书卡号、最大可借阅书籍量、当前可借阅书 籍量、借书卡密码和当前超期时间。这张表用于存放读者账户的信息,基本所有的模块都会 对这张表进行操作。 tuijian 表,该表只有 bookname、writor 和 num 三个元组,分别存放推荐书籍的书名、 作者和推荐数量。这张表的作用就是统计推荐的书籍,只有推荐模块会对这张表产生影响。 在系统结构方面,由于有三种权限类型,所以决定采用三种身份不同登录入口的方法, 登录后三个身份就各自进入不同的部分,除非退回主页重新登录,不然无法进入别的身份能 够进入的页面,各个身份只是共享数据库,其他部分则没有交集。 本数据库的设计图如下: 南京大学金陵学院 毕业论文(设计) 图 4-1-2 数据库结构图 4.1.3 界面设计 系统界面设计方面,首页是整个系统的入口,由于决定使用三种身份不同登录入口的设 计,所以首页和身份权限有关的部分设计如下: 图 4-1-3 首页截图 如果是游客,则只能使用第一排所有功能和图书检索功能,而要有更多的功能,则需要 从第二排的对应入口登录。 登录只需要账户和密码,同时登陆页面应该尽可能的简单明了,所以登录界面里有作用 南京大学金陵学院 毕业论文(设计) 的只有 2 个用于输入数据的文本框和必备的重置确定按钮。读者登录界面和管理员登录界面 除了标题和背景色稍有区别以外,其他地方完全一样,区别只在于与之相关的 servlet 中的 处理过程,管理员登录界面如下: 图 4-1-4 登陆界面截图 无论是读者还是管理员,登录成功后进入的都是对应的个人资料管理页面,该页面用于 修改个人密码,同时也可以利用界面上的超链接进入对应身份的其他功能页面,读者与管理 员的页面不同之处就在于读者多了修改用户名的文本框以及由于拥有权限不同而不同的超链 接。管理员个人资料管理界面如下: 图 4-1-5 管理员个人资料管理页面 截图 图书的借阅、归还、超期记录清除必须经过管理员,图书续借、预借、推荐则可以通过 读者完成。这几个功能的页面区别不大,区别在于图书推荐需要输入书名和作者名,图书借 阅需要输入对应的读者号,图书归还、续借和预借只要输入书号,超期记录清除只要输入读 者号以及不同身份权限导致的超链接不同,其他界面方面没有什么区别。这里选择图书借阅 和图书续借两个页面作为例子,图书借阅页面如下: 图 4-1-6 图书借阅页面截图 南京大学金陵学院 毕业论文(设计) 图书续借页面如下: 图 4-1-7 图书续借页面截图 管理员的最关键的权限就在于可以添加和删除读者账户,由于具有两种功能,所以在读 者账户管理页面使用一个下拉菜单让管理员选择操作类型。读者账户管理页面如下: 图 4-1-8 读者账户管理页面截图 4.24.2 详细设计详细设计 经过了需求分析和概要设计,在这一部分里,在程序方面需要就各个模块的实现细节、 算法进行描述,在数据库方面,概要设计里面的数据库设计应该重点在描述数据关系上, 详细设计则要描述为什么要使用这种类型存储数据 。本文在这一部分将主要利用文字叙 述配合流程图和关键代码将各个模块的功能一一描述。 在数据库方面,一共有以下这几个数据:书名、图书号、账户、借书卡号、密码、用户 名、作者、最大可借阅书目、当前可借阅数目、预借人卡号、借阅标记、预借标记、续借标 记、预借时间、借阅时间、应该归还时间、归还时间、超期时间。由于图书号和借书卡号不 能排除以 0 开头的情况且不可能出现小数点,所以不能使用整型或者浮点型进行存放,所以 将这两项在 MySQL 里使用 char 型进行存放,虽然看上去是数字,实际上是一个个字符 串。各个标记同样也使用长度为 1 个字符的 char 型进行存放。由于是为中小型图书馆 设计的图书馆管理系统,一般数据量不会很多,所以除了标记只使用一个字符长度进行 存放外,其他为了保证空间足够 存放数据,都分配了较大的空间。 而涉及到时间的数 据,由于 Java 中返回当前时间的方法是以返回一个long 类型的数据,数据内容是从方 法执行时间到过去一个固定的时间点的毫秒数,所以在MySQL 中使用 bigint 类型存放 各类时间数据。 南京大学金陵学院 毕业论文(设计) 在程序方面, 所有的模块都要使用的方法是参数的获取和数据库的查询或改写, 参数的获取使用 2 种方法,request.getParameter 方法获取文本框中的参数, request.getParameterValues 方法获取下拉菜单里的参数。所有的网页表单使用 post 方法将数 据传给对应的 servlet。与数据库的连接使用 JDBC 作为驱动,对数据库里数据的查询和修改 则使用 PreparedStatement 对象里的 executeQuery 方法和 executeUpdate 方法。各个模块具体 流程和关键代码如下: 登录模块:从表单获取账户和密码的输入后连接数据库,查询是否有对应的数据,没有 则跳转到登录错误页面并且不产生输出,正确则根据选择的登录入口进入对应的个人资料修 改页面。如果成功登录,则创建一个 session 作为输出用于存放登录的用户的信息,流程 图如下: 图 4-2-1 登录算法流程图 个人管理模块:本模块的输入是从表单获取的旧密码、两遍新密码和从 session 获得的 当前登录用户用户名。如果输入的 2 遍新密码不同则会进入修改资料错误页面且不产生任何 输出。2 遍新密码一致后获取 session 里存放的当前登录的管理员用户的账户名或者读者用 户的借书卡编号,然后访问数据库,查询是否有用户名符合从 session 中获取的登录名以及 密码符合输入的旧密码的账户。如果有则根据表单上的数据对数据库中符合账户名或借书卡 编号的账户信息进行修改作为输出。修改后依然在个人资料修改页面。如果没用则跳转到个 南京大学金陵学院 毕业论文(设计) 人资料修改错误页面且不产生任何输出。两种个人管理模块的的区别仅在于借书卡管理模块 可以修改用户名,借书卡管理模块中如果不输入新用户名则用户名不做改动。所以流程图和 关键代码只列出管理员的个人管理模块。流程图如下: 图 4-2-2 个人资料修改算法流程图 图书查询模块:本模块的输入是从表单获取的图书查询条件和用于查询的书名/作者名 后,连接数据库,与 book 表中数据进行比对,将符合条件的图书书名、书号、作者,是否 已被借阅的信息通过 servlet 里的 out.println()方法以网页形式进行输出。该模块流程图 如下: 南京大学金陵学院 毕业论文(设计) 图 4-2-3 图书查询算法流程图 账号添加删除模块:本模块的输入是从表单获取操作类型和操作对应的借书卡号,如果 是添加则看借书卡号是否已存在,卡号存在就不能添加,如果是删除则看该借书卡有没有借 书记录和超期记录,存在记录就不能删除,不符合要求则跳转到账号管理错误页面并且不产 生任何输出,符合要求则进行对应处理,输出是对数据库的修改,然后依然返回账号添加删 除页面。该模块流程图如下: 南京大学金陵学院 毕业论文(设计) 图 4-2-4 账户增删算法流程图 借阅模块:本模块的输入是从表单获取的需要借阅的图书的书号和借阅该书的读书卡号, 之后访问数据库。先查询该书是否处于被借状态(可能是借书时书号输入错误或还书时书号 输入错误造成)以及该借书卡是否还有可借数额、超期记录或是当前借阅的图书处于超期阶 段。然后再查询该书是否还在预订期以及预订人是否就是借书人。不符合条件则跳转到图书 借阅错误页面并且不产生任何输出。一切条件符合后对 book,borrowbook,reader 三张表进 行相对应的修改作为输出,然后返回图书借阅页面。该模块流程图如下: 南京大学金陵学院 毕业论文(设计) 图 4-2-5 图书借阅算法流程图 续借模块:本模块的输出是从表单获取需要续借的图书号以及从session获取当前登录 用户借书卡号,之后查询数据库,看是否有符合该书号且是当前登录借书卡借阅的未超期且 未被续借过的借阅图书。如果没有符合要求的图书则跳转到续借错误页面且不产生任何输出。 如果有则对borrowbook表进行修改以作为输出,将应该还书时间延后至续期时间的一个月以 后,然后返回图书续借页面。该模块程序流程图如下: 南京大学金陵学院 毕业论文(设计) 图 4-2-6 图书续借算法流程图 预借模块:本模块的输入是从表单获取的想要预订的图书号,之后连接数据库,在 borrowbook表中查询是否有和图书号相同的图书。有的话则在book表中查询该书是否已经被 预借。不符合条件则会跳转到预借错误页面且不产生任何输出,符合条件则进行对数据库进 行修改作为输出,然后返回图书预借页面。该模块流程图如下: 南京大学金陵学院 毕业论文(设计) 图 4-2-7 图书预借算法流程图 还书模块:本模块的输入是从表单获取的要还的图书的书号,之后连接数据库先在 borrowbook表里查询是否存在这本书。不存在则跳转到还书错误页面且不产生任何输出,如 果存在则对数据库进行修改作为输出,修改过程如下:先查询该本书是否已经超期,超期则 将超过的时间累加到借阅该书的读书卡信息上,将该借书卡可借阅数目+1,并删除 borrowbook表中条目。然后查询book表看该书是否被预借,如果被预借则在把该书的借阅符 号改成未借阅的同时将预借时间设为当前时间,如未预借则预借时间依然为0。数据库修改 完成后依然返回还书页面。该模块流程图如下: 南京大学金陵学院 毕业论文(设计) 图 4-2-8 图书归还算法流程图 超期记录清除模块:本模块是的输入是从表单获取的需要清除超期记录的借书卡号,之 后连接数据库,查询reader表中是否有对应的超期账户。如果没有则跳转到超期记录清除错 误页面且不产生任何输出,如果有,则将对应账户的超期记录置0作为本模块输出,然后返 回超期记录清除页面。该模块流程图如下: 南京大学金陵学院 毕业论文(设计) 图 4-2-9 超期记录清除算法流程图 推荐模块:本模块的输入是从表单获取的推荐的书名和作者,之后连接数据库,查询 tuijian表中数据,如果有相同数据,则在该条目下推荐数目上+1作为输出,如果没有则插 入新数据作为输出,然后返回图书推荐页面。该模块流程图如下: 图 4-2-10 图书推荐算法流程图 南京大学金陵学院 毕业论文(设计) 第五章第五章 系系 统统 测测 试试 一切设计都完成后,系统就算是编写完成了,但是仍然有重要的一步就是系统测试。它 的任务是尽可能地检查出程序里的错误,提高软件系统的可靠性,测试各个功能是否符合了 用户功能和性能的要求。本文这一部分将采用一系列测试用例来对系统的各个模块进行测试, 以确定系统是否符合要求。 系统测试用例系统测试用例1 1: 类别用例ID用例名称用例步骤期望结果测试结果 1 输入正确1进入登陆界面 2输入正确的用户名密码 3进行登陆 进入对应的个 人资料修改界 面 通过 2 不存在的用户名1进入登陆界面 2输入不存在的用户名 3进行登陆 跳转至登陆错 误界面 通过 登陆登陆 页面页面 3 错误的密码1进入登陆界面 2输入正确的用户名和错误的密 码 3进行登陆 跳转至登陆错 误界面 通过 4 错误的旧密码1正确登录 2输入错误的旧密码 3进行个人资料修改 跳转至个人资 料修改错误页 面 通过 5 不一致的新密码1正确登录 2输入正确的旧密码和不一致的 新密码 3进行个人资料修改 跳转至个人资 料修改错误页 面 通过个人个人 资料资料 修改修改 页面页面6全部符合规定输入1正确登录 2输入正确的旧密码,一致的新 密码,用户名随意 3进行个人资料修改 数据库中密码 改变,如输入 用户名则用户 名也改变,不 通过 南京大学金陵学院 毕业论文(设计) 输入则维持原 样,返回原页 面 7 新增已存在借书卡1正确登录 2进入账号添加删除页面 3输入已存在卡号,选择添加操 作 4执行添加 数据库不被改 写,跳转至账 户添加删除错 误页面 通过 8 删除存在借书记录, 超期的借书卡 1正确登录 2进入账号添加删除页面 3输入存在记录的卡号,选择删 除操作 4执行删除 数据库不被改 写,跳转至账 户添加删除错 误页面 通过 9 新增不存在的借书 卡 1正确登录 2进入账号添加删除页面 3输入不存在的卡号,选择添加 操作 4执行添加 数据库正确被 改写,返回原 页面 通过 账号账号 添加添加 删除删除 页面页面 10 删除无任何不良记 录的借书卡 1正确登录 2进入账号添加删除页面 3输入无不良记录的卡号,选择 删除操作 4执行删除 数据库正确被 改写,返回原 页面 通过 11 删除不存在的用户 的超期记录 1正确登录 2进入超期记录清除页面 3输入不存在的卡号 4执行清除操作 数据库不被改 写,跳转至超 期记录清除错 误页面 通过 超期超期 记录记录 删除删除 页面页面 12 删除存在的用户的 超期记录 1正确登录 2进入超期记录清除页面 数据库正确被 改写,返回原 通过 南京大学金陵学院 毕业论文(设计) 3输入存在的卡号 4执行清除操作 页面 13 可借数为0账户借 书 1正确登录 2进入借书页面 3输入可借数为0的卡号与书号 4执行借书操作 数据库不被改 写,跳转至借 书错误页面 通过 14 不存在的账户借书1正确登录 2进入借书页面 3输入不存在的卡号与书号 4执行借书操作 数据库不被改 写,跳转至借 书错误页面 通过 15 存在超期记录账户 借书 1正确登录 2进入借书页面 3输入有超期记录的卡号与书号 4执行借书操作 数据库不被改 写,跳转至借 书错误页面 通过 16 非本人预借图书借 阅 1正确登录 2进入借书页面 3输入卡号与非此卡号预借的书 号 4执行借书操作 数据库不被改 写,跳转至借 书错误页面 通过 17 在借书超期的账户 借书 1正确登录 2进入借书页面 3输入有在借书超期的卡号书号 4执行借书操作 数据库不被改 写,跳转至借 书错误页面 通过 图书图书 借阅借阅 页面页面 18 正确的图书借阅1正确登录 2进入借书页面 3输入符合借阅规定的卡号书号 4执行借书操作 数据库正确被 改写,返回原 页面 通过 南京大学金陵学院 毕业论文(设计) 19 续借非本人在借图 书 1正确登录 2进入图书续借页面 3输入非本人在借图书书号 4执行借书操作 数据库不被改 写,跳转至图 书续借错误页 面 通过 20 续借超期图书1正确登录 2进入图书续借页面 3输入本人在借超期图书书号 4执行借书操作 数据库不被改 写,跳转至图 书续借错误页 面 通过 21 续借已续借图书1正确登录 2进入图书续借页面 3输入本人在借已续借图书书号 4执行借书操作 数据库不被改 写,跳转至图 书续借错误页 面 通过 图书图书 续借续借 页面页面 22 续借符合规定图书1正确登录 2进入图书续借页面 3输入符合规定的图书书号 4执行借书操作 数据库正确改 写,返回原页 面 通过 23 预借在馆图书1正确登录 2进入图书预借页面 3输入在馆图书书号 4执行借书操作 数据库不被改 写,跳转至图 书预借错误页 面 通过 24 预借已预借图书1正确登录 2进入图书预借页面 3输入已预借图书书号 4执行借书操作 数据库不被改 写,跳转至图 书预借错误页 面 通过 图书图书 预借预借 页面页面 25 预借符合规定的图 书 1正确登录 2进入图书预借页面 3输入已预借图书书号 4执行借书操作 数据库正确改 写,返回原页 面 通过 南京大学金陵学院 毕业论文(设计) 26 归还未借图书1正确登录 2进入图书归还页面 3输入未出借图书书号 4执行借书操作 数据库不被改 写,跳转至图 书归还错误页 面 通过 27 归还超期图书1正确登录 2进入图书归还页面 3输入超期图书书号 4执行借书操作 数据库正确修 改,返回原页 面 通过 图书图书 归还归还 页面页面 28 归还预借图书1正确登录 2进入图书归还页面 3输入存在预借记录的书号 4执行借书操作 数据库正确修 改,返回原页 面 通过 29 用作者为关键字检 索全部图书 1进入图书检索页面 2 选择作者为关键字 3 选择显示全部 4执行检索操作 数据返回正确通过 30 用作者为关键字检 索可借图书 1进入图书检索页面 2 选择作者为关键字 3 选择显示可借图书 4执行检索操作 数据返回正确通过 31 用书名为关键字检 索全部图书 1进入图书检索页面 2 选择书名为关键字 3 选择显示全部图书 4执行检索操作 数据返回正确通过 图书图书 检索检索 页面页面 32 用书名为关键字检 索可借图书 1进入图书检索页面 2 选择书名为关键字 3 选择显示可借图书 4执行检索操作 数据返回正确通过 南京大学金陵学院 毕业论文(设计) 33 推荐未推荐图书1正确登录 2进入图书推荐页面 3输入未推荐的图书书名和作者 4执行推荐操作 数据库正确改 写,返回原页 面 通过 图书图书 推荐推荐 页面页面 34 推荐已推荐图书1正确登录 2进入图书推荐页面 3输入已推荐图书书名和作者 4执行推荐操作 数据库正确修 改,返回原页 面 通过 经过以上测试用例,可以得出结果,本系统各个模块功能正常,可以使用。 图 5-1 系统测试用例结果图 南京大学金陵学院 毕业论文(设计) 第六章第六章 结论结论 6.16.1 本文的主要工作本文的主要工作 本图书馆管理系统是一个典型的信息管理系统,其主要通过软件工程方面的需求分析、 概要设计、详细设计、代码编写和系统测试几个步骤完成。要开发本系统,除了对图书馆的 工作要有一定程度的熟悉以外,更要在分析的过程中,了解各个步骤的根本是什么,从而解 决问题。在工具的选取方面,也要选用自己熟悉的,使用最多开发工具,从而开发出一个能 够具有一定实用性的系统,实现了以下功能 (1) 不同权限的人物可以通过不同的入口登录 (2) 图书续借、图书预借功能可以不借助管理员来达成 (3) 通过浏览器连接互联网就可以进入系统,而不需要客户端程序 (4) 管理员可以增删读者账户 (5) 一旦操作出现失误会自动跳转至针对此操作的错误报告页面,方面确认错误原因 除了要开发出一个系统外,本文更要研究 B/S 结构的图书管理系统在应用方面的可行性。 运行结果证明本系统应可以在小型图书馆里起到一定的作用,用于提高工作效率。同时也证 明了 B/S 结构的技术已经日渐成熟,逐渐将可以替代部分 C/S 结构的图书馆管理系统的工作。 6.26.2 进一步的工作进一步的工作 本文中提及的图书馆管理系统只是一个最基本的系统,甚至可以说只是完成了一个完整 的图书管理系统的一部分。仍然有部分问题无法解决,想要作为一个可以用于实际应用以及 可以发挥复用性的系统,改进甚至完全改写都是必须的。这些作为一个学生目前我还无法解 决,但是在未来进一步学习各方面技术后,应该可以完成整个系统,并使系统在进行小的改 动就可以作为一个别的系统进行工作。 南京大学金陵学院 毕业论文(设计) 致致 谢谢 这篇论文能够完成,指导老师和同学的帮助是必不可少的,没有他们的帮助和严格要求, 就没有对论文一次一次的完善。学校图书馆里的大量书籍也为我提供了不少的帮助。在论文 的结束,我对在论文撰写阶段对我帮助最大的陈鑫老师,林格同学表示深深的感谢。 南京大学金陵学院 毕业论文(设计) 参参 考考 文文 献献 【1】/view/692.htm 【2】/view/28283.htm 【3】/view/10166.htm#sub10166 【4】/view/24816.htm#su

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论