1、题 目 图书管理系统-采编模块的设计与实现 学生姓名 罗通 学号 1118014124 所在学院 数学与计算机科学技术学院 专业班级 计算机科学与技术1104班 指导教师 李军 完成地点 陕西理工学院 2015年 5月20日陕西理工学院本科毕业设计任务书院(系) 数学与计算机科学学院 专业班级 计算机科学与技术(计算机1104) 学生姓名 罗通 一、毕业设计题目 图书管理系统-采编模块的设计与实现 二、毕业设计工作自 2014 年 12 月 9 日 起至 2015 年 6 月 20 日止三、毕业设计进行地点: 陕西理工学院 四、毕业设计应完成内容及相关要求:1.书籍数据库要按照中图分类要求进行
2、分类创建; 2. 图书管理业务分两大模块,即采编与流通。 (1)采编模块分为采购与编目两个子模块。在采购子模块中完成书籍的采购计划编制、组织采购、图书资产管理、书籍报废等功能;编目子模块要求根据采购结果完成每种书籍按册进行编目并进行入库(中央库、专业阅览室等)操作等功能;(2)流通模块分为读者管理与借阅管理两个子模块。读者管理模块要完成读者的开销户管理、读者借阅历史状态查询、读者的信誉记录管理等功能;图书的借阅管理模块必须完成馆藏图书检索、书籍状态查询、借还操作等功能。3.系统角色管理。系统角色是指参与系统的人员(包括图书馆工作人员和读者)在对系统进行操作时充当的角色,不同角色有不同的系统操作
3、权限;系统应根据图书馆的管理办法合理确定角色,并将不同人员赋予不同的角色。4. 数据维护模块。该模块主要对数据库进行备份与数据恢复功能。本课题要求两人合作完成,两人共同设计数据库,一人完成采编模块与系统角色管理,另一人完成流通模块与系统维护模块。 最终的成果形式为: 1图书管理系统-采编模块系统软件 2毕业设计说明书 3 用户手册 五、毕业设计应收集资料及参考文献:1 张海藩. 软件工程导论(第四版)M. 北京:清华大学出版社,2003. 2 张秋余,杨玥. 基于用例的需求建模方法J. 计算机工程与设计,2006,19:3539-3541. 3 MattheMacDonal.管理信息系统J.电
4、子工业出版社.2003.Vol.3(8):102-108. 4 张秋余,杨玥. 基于用例的需求建模方法J. 计算机工程与设计,2006,19:3539-3541. 5 John W. Satzinger, Robert B. Jackson, Stephen D. Burd. Z. 北京:人民邮电出版社, 2008. 六、毕业设计的进度安排:2015.1.10-2015.3.20 下达任务书、布置开题报告、查阅文献、撰写开题报告 2015.3.21-2015.4.3 进行设计分析,确定设计放案 2015.4.4-2015.4.10 概要设计 2015.4.11-2015.4.24 详细设计、编
5、写代码 2015.4.25-2015.5.1 软件测试、系统完善 2015.5.2-2015.5.20 撰写毕业设计报告 2015.5.21-2015.5.29 整理资料、准备答辩 2015.5.30-2015.6.5 答辩以及后期整改 指导教师签名 专业负责人签名 学院领导签名 批准日期 图书馆管理系统-采编模块的设计与实现罗通(陕理工数计院(系)计算机科学与技术专业计本1104班级,陕西 汉中 723000)指导教师:李军 摘要图书管理系统是学校图书馆对藏书、读者以及两者之间的业务关系进行管理的自动化工具,同时,它帮助图书管处理事务以及相关统计。图书管理系统的开发采用MVC模式,通过JDB
6、C驱动和SQLServer关系数据库连接为系统的开发提供安全可靠的存储支持。它针对现有图书管理系统搜索方法单一、管理混乱等弊端进行了改善,为用户提供一个更加友好的管理工具。 关键词:图书管理系统;MVC;SQL ServerDesign and implementation of editing modules for Library Management SystemLuo Tong (Grade 11,Class 04,Major Computer Science and Technology,School of Mathematics and Computer Science,Shaan
7、xi University of Technology,Hanzhong 723000,Shaanxi)Tutor: Li JunAbstract:Library management system is an automated tools that management book, reader, and the relation between both for the library, meanwhile, it helps the library to deal with daily affairs and related statistical work.The developme
8、nt of library management system using MVC pattern of development, through JDBC drivers and SQL Server relational database to provide secure and reliable storage to support the development of the system. It is aimed at existing search methods are simple library management system, poor management and
9、other defects have been improved to provide a more user-friendly management tool.Key: library management system; MVC; SQL Server目 录1绪论11.1 开发背景及课题意义11.2 领域现状11.3 主要任务12需求分析22.1 可行性分析22.1.1 技术可行性22.1.2.经济可行性22.2 系统需求22.2.1系统需求目标22.2.2超级管理员功能描述32.2.3二级管理员功能描述32.2.4读者详细功能描述32.2.5系统总用例图32.2.6主要用例的用例描述43
10、分析与设计83.1数据库设计83.1.1数据库设计概述83.1.2数据库概念结构设计83.1.3 主要表的E-R图93.1.4逻辑结构设计113.2 详细结构设计133.2.1总体模块设计133.2.2详细模块设计144程序设计与编码184.1开发平台与工具184.1.1 J2EE开发平台184.1.2 WEB服务器和数据库184.2程序设计184.2.1程序设计概述184.2.2数据库与Web服务器的连接184.2.3登录模块的实现214.2.4图书采购模块实现224.2.5图书编码模块实现(SNUT编码和中图编码)224.2.6图书查询模块实现234.2.7图书借还模块的实现255.1 软
11、件测试的方法与步骤275.2 测试用例设计与测试用例的运行过程及测试结果分析275.2.1模块测试275.2.2集成测试295.2.3 验收测试305.3 评价306结束语31致谢32参考文献33附录A:系统部分源代码43附录B:系统使用说明书631绪论1.1 开发背景及课题意义现代社会随着各个行业的信息化发展,自动化管理已经成为一种趋势。当然,图书管理行业也是同样如此。一个好的图书管理系统对于图书馆的资源管理是至关重要的。1.2 领域现状目前高校中的图书管理系统存在以下几个缺陷:1.图书流通量大,人为管理难以实现 现在不管是高校图书馆还是社会图书馆或者是书店,面向的对象人群数量巨大,这期间巨
12、大的流通量会产生庞杂的数据记录,如何来管理这些记录显得尤为重要,流通期间。2.检索方法单一、效率不高因为图书馆普遍图书搜索方法单一,现在大大小小图书馆的藏书种类多、数量多,图书搜索方法的多样化会使得读者更快更好的找到自己的需求,同时在图书入库的时候进行中国图书分类法编码使得读者可以通过标准的中图号码进行查询,更加方便准确。 3.图书统计工作难、图书馆藏书更新不能及时完成。 图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制。1.
13、3 主要任务针对现存图书管理系统的几个不足,本次开发的图书管理系统的任务如下:1.图书馆采购图书入库(SNUT编码和国家图书分类编码),图书注销的处理,建立图书以及入库图书记录,监控图书库存方便采购;2.创建读者信息数据库,图书馆管理员数据库,各个角色严格限制对软件操作的权限,最大限度的保护数据库;3.创建图书馆读者借还数据库,对日常的读者借阅图书流通产生巨大的数据信息进行管理;4.实现多种图书信息查询方式,为读者的查询提供尽可能大的便利;5.实现图书的自动化管理,实时更新信息。2需求分析2.1 可行性分析针对现今并不完善的图书管理系统,开发一款自动化管理图书管理系统不仅可以对各种资源进行统一
14、资源,同时可以提高图书馆资源的利用率,实现资源共享最大化,为广大读者提供更加方便快捷的服务。2.1.1 技术可行性现今web技术的发展已经日臻成熟,为实现一个B/S模式的图书管理系统提供多种多样的技术支持。系统采用JavaBean、JSP、Servlet结合的MVC模式开发能与用户友好交互系统。数据库管理系统采用SQL Server 2005,它能够处理大量数据,同时保持数据的完整性、安全性。因此本系统的开发平台已成熟可行。硬件方面,在科技飞速发展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越便宜,因此硬件平台也能够满足本系统所需。2.1.2.经济可行性现如今,随着计算
15、机行业的发展,与计算机相关的软件硬件产品的成本也普遍降低。另一方面,对于图书管理系统来说只要设计合理在未来的维护过程中是投入人力,财力,物力会降到最低,因此图书管理系统的开发是效益远远大于成本的。2.2 系统需求2.2.1系统需求目标本系统是针对现有图书管理系统的不足之处开发的一个基于B/S(浏览器/服务器)模式的系统。主要解决现有系统管理不善、搜索性能较差、无法承受大量数据记录等问题,面向人群为超级管理员、二级管理员、读者用户:1.超级管理员,可以对数据库进行最大权限的操作。对系统参数、不同阶段的图书、不同权限的用户进行操作,对各种用户的进行权限划分。2.二级管理员,包括采编人员、借书员、还
16、书员等这对某一特定业务模块操作的人员,可以在特定的权限之内操作数据库。相对于超级管理员,二级管理员只有对数据库操作的最小权限。这样会比较好的保护数据库。3.读者用户:主要是学生以及教师用户,读者用户可以根据自己的需求在浏览器端通过系统提供的各种检索方式检索自己喜爱的图书在图书馆中的状态,除了图书基本信息以外,还可以获取图书索取号、书架号等方便图书借阅的时候准确定位。这三种角色他们的具体特性权限如下表2.1所示:表2.1 用户特性权限具体描述角色特性权限描述超级管理员超级管理员主要是图书管理系统中用户的管理,实现用户添加修改删除以及用户权限设置等操作,实现对图书馆基本信息的修改维护等操作,以及校
17、外读者办证所需费用、证件有效时间等参数的设置。二级管理员二级管理员是该系统的另一个重要使用者,图书管理员通过该系统进行图书的增加,修改,删除,采编分类管理等操作,实现对读者借阅归还图书的操作,实现对系统中图书,读者,读者借阅情况的查询,信息更改维护等操作,管理读者类型,对不同类型读者可借阅的图书数量进行设置等图书馆的基本操作。读者读者是系统的重要的使用角色,通过该系统查询自己需要的图书信息,向图书管理员提出借阅图书的申请借阅自己所需图书,还可以通过对借阅情况进行查询。2.2.2超级管理员功能描述1. 读者管理功能:对读者的类型和读者基本信息进行管理,包括添加,修改,删除读者类型和读者用户的相关
18、信息,管理不同类型读者借阅图书的数量。2. 图书管理功能:对图书类型和具体图书信息的管理,可以增加,修改,删除图书,丰富具体图书的信息,对不同图书进行分类操作。3. 图书借阅功能:对读者借阅和归还的操作。4. 系统查询功能:查询图书相关资料、借阅历史、读者基本信息。.5. 修改密码以及密码追回功能:修改登录密码、通过回答设置好的验证问进行密码追回。2.2.3二级管理员功能描述1. 读者信息查询功能:查询读者基本信息以及借阅记录等(借还人员)2. 图书借阅功能:为借还图书的用户提供借阅和归还服务(借还人员)3. 采购图书采编入库功能:对新采购的图书进行信息录入以及编码 4. 采购统计功能对当下图
19、书采购信息的进行统计。2.2.4读者详细功能描述1. 修改登陆密码:修改自己的登录密码。2. 查询功能:对图书馆图书信息进行查询,对当前借阅记录进行查询。2.2.5系统总用例图根据系统中不同角色功能可以用下图2.1的系统总用例图描述了整个系统用户之间的动作联系,及功能模块的概述。图2.1 系统总用例图2.2.6主要用例的用例描述图书管理系统涉及到的主要用例包括:图书采编,图书借阅,图书归还,图书查询,读者信息管理,图书信息管理,用户管理等,现就系统的主要用例图书采编,图书借阅,图书归还,图书查询进行详细分析。(1) 用例“图书采编”如下表2.2所示:表2.2 图书采编用例用例名称图书采编ID1
20、优先级高主要参与者采编人员(二级管理员)用例描述 采购图书进入图书馆由采编管理员进行图书基本信息录入,录入完成进行中图编码和在本图书馆内的唯一编号SNUT编码号码进行入库(入库后才可以显示在web上,未入库的图书无法显示在web上),然后对入库图书进行上架操作,对图书指定具体的位置和书架号(已入库但未上架的图书只能可以在搜索系统中找到,但在图书馆对应位置无法找到该本书)。前置条件1. 采编人员(二级管理员)登录 ;2. 进入采购图书录入界面;主流1:图书采编 1.0:二级管理员请求采购图书录入; 1.1:手动录入图书基本信息,如:作者,出版社,ISBN,中图号等; 1.2:book表纪录增加;
21、 1.3:指定唯一的SNUT编码; 1.4:rukubook表纪录增加; 1.5:指定图书位置以及书架号; 1.6:rukubook表更新;附加流1.显示图书基本信息录入、图书入库、图书上架失败返回对应界面重新操作;后置条件1.图书基本信息录入、图书入库、图书上架提示成功;异常1:采购图书基本信息录入失败1.1:返回失败信息;1.2:book表记录无增加;1.3:本次用例再次执行;2:图书入库失败2.1:返回图书录入失败信息;2.2:只有book表纪录增加,rukubook无纪录增加;2.3:本次用例再次执行;3:图书上架失败3.1:返回上架失败信息;3.2:rukubook表纪录增加,但是该
22、本图书的位置以及书架号字段为空;3.3:本次用例再次执行;频率一月10次被扩展的用例无被包含的用例无被泛华的用例无(2) 用例“图书借阅”如下表2.3所示:表2.3 图书借阅用例用例名称图书借阅ID2优先级高主要参与者读者用户,借书员(二级管理员)用例描述 读者通过检索找到自己将要借阅的图书,在图书馆指定位置找到该本图书交给借书员并提供读者ID,借书员通过图书ID与读者ID记录本次借阅过程,并且将本次借阅记录添加到数据库的借阅表中,完成本次借阅操作。前置条件1. 读者用户登录系统 ; 2. 读者用户根据条件搜索图书;3. 3.读者用户提供读者ID和图书ID给借书员主流1:图书借阅 1.0:读者
23、通过检索查找将要借阅的图书的索取号码,书架号等; 1.1:读者在图书馆相应位置找到该本图书; 1.2:读者提出借阅请求; 1.3:读者提供图书ID号和读者ID号给借书员; 1.4:借书员记录本次借阅过程并将本次借阅记录添加到数据库借阅表中;附加流1.显示图书借阅失败并且返回借阅失败的原因;后置条件1.图书借阅成功提示;异常1:图书检索结果为空1.1:显示没有搜索到您要查找的图书;1.2:本用例再次执行;2:读者用户可借图书数量为零 2.1:系统显示读者借书数量已经达到上线,无法借阅; 2.2:借阅失败,本次用例再次执行;3:图书借阅失败3.1:返回图书借阅失败原因3.2:本次用例再次执行;频率
24、一月10次被扩展的用例无被包含的用例无被泛华的用例无(3) 用例“图书归还”如下表2.4所示:表2.3 图书归还用例用例名称图书归还ID3优先级高主要参与者读者用户,还书员(二级管理员)用例描述 读者请求图书归还,读者提供图书ID,还书管理员通过图书ID完成本次还书操作,同时如果借书时间超期进行处罚。前置条件1.读者用户图书ID给还书员主流1:图书归还 1.0:读者提出还书请求并提供图书ID; 1.1:还书员通过图书ID进行还书操作并在图书借阅表中增加图书归还记录,同时将借书记录状态字段改为借出已还; 1.2:如果系统判断超期,进行超期罚款,向读者收取罚款; 1.3:还书员记录超期罚款记录并在
25、数据库中添加该记录; 1.4:完成图书归还操作;附加流1. 显示图书归还返回失败的原因;2. 显示罚款记录添加失败的原因;后置条件1. 图书归还成功提示;2. 罚款记录添加成功提示;异常1:图书归还失败1.1:显示图书归还失败原因;1.2:本用例再次执行;频率一月1次 被扩展的用例无被包含的用例无被泛华的用例无(4) 用例“图书查询”如下表2.5所示:表2.5 图书查阅用例用例名称图书查询ID4优先级高主要参与者读者用户用例描述 读者进入系统,根据不同的搜索方式,如:ISBN号、书名、作者以及中图号等进行关键字搜索,得到自己想要借阅的图书。前置条件1.读者用户进入系统(可以不登录),进入图书查
26、询页面;主流1:图书查询 1.0:读者选择检索方式; 1.1:输入检索关键字,检索图书; 1.2:检索图书显示; 1.3:读者点击图书,查看图书详细信息;附加流1. 显示图书归还返回失败的原因;2. 显示罚款记录添加失败的原因;后置条件1. 图书归还成功提示;2. 罚款记录添加成功提示;异常1:图书检索结果为空1.1:显示没有搜索到您要查找的图书;1.2:本用例再次执行;2:读者用户可借图书数量为零 2.1:系统显示读者借书数量已经达到上线,无法借阅; 2.2:借阅失败,本次用例再次执行;频率一月15次被扩展的用例无被包含的用例无被泛华的用例无3分析与设计3.1数据库设计3.1.1数据库设计概
27、述图书管理系统的数据库是整个系统的核心,设计一个合适的关系数据库对于整个系统的性能有决定性的作用。数据库的设计主要分为数据库概念设计和数据库结构设计。将现实世界的实体模型与需求转换成数据库的模型的过程,这两个步骤是建立数据库应用系统的核心任务。只有合理的概念设计与结构设计才能更好的满足用户需求,对之后的功能模块实现也有很大的影响。与此同时,我们知道在设计数据库的时候必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。一般人们设计数据库遵循第三范式。即:数据库表中不包含已在其他表中包含的非主关键字信息。采用范式减少了数据冗余,节约了存储空间,同时加快了增
28、、删、改的速度。3.1.2数据库概念结构设计图书管理系统数据库包括的表有:图书表、入库图书表、图书类别表、中图表、图书位置表、图书书架号码表、图书借还表、罚款表、读者表、管理人员表、系统参数表。可将这些信息抽象为下列系统所需要的数据项和数据结构: 图书表book:(id,book_id,book_ISBN,book_name,book_anthor,book_publish,book_publishtime,book_page,book_price,book_type,book_image,book_status,book_content,book_zhongtuid,rukubook_id)
29、; 入库图书表rukubook:(id,rukubook_id,book_id,zhongtu_id,rukubook_status,rukubook_rukutime,rukubook_location,rukubook_bookframenumber,rukubook_content,sort3_id,islocation); 图书类别顶层类别表sort1: (id,sort1_id,sort1_name,sort1_content); 图书类别中层类别表sort2: (id,sort2_id,sort2_name,sort2_content,sort1_id); 图书类别底层类别表sor
30、t3: (id,sort3_id,sort3_name,sort3_content,sort2_id); 中图表zhongtu:(id,zhongtu_id,zhongtu_info);图书位置表booklocation:(id,location_id,location_name,location_content);图书书架号码表bookframenumber:(id,bookframenumber_id,bookframenumber_name,bookframenumber_content,location_id);图书借还表borrow:(id,rukubook_id,reader_id
31、,borrow_time,borrow_deadlinetime,borrow_returntime,book_status);罚款表fine:(id,fine_id,rukubook_id,reader_id,fine_time,fine_reason,fine_manager,fine_isdeal);读者表reader:(id,reader_id,reader_password,reader_name,reader_IDnumber,reader_sex,reader_age,reader_image,reader_tel,reader_email,reader_type,reader_
32、idstarttime,reader_ideffectivetime,reader_canborrowcount,reader_borrowedcount,reader_status,reader_lastlogintime);管理员表manager:(id,manager_id,manager_password,manager_name,manager_power,manager_IDnumber,manager_type,manager_status,manager_content,manager_checkQuestion,manager_checkAnswer);系统参数表params
33、:(id,params_id,params_name,manager_value,params_content);新闻表news:(id,news_id,news_name,news_position,news_content);注:带下划线表示主键,带双下划线为外键在这里使用E-R图描述了图书借阅管理系统的数据模型。图3.1图书管理系统E-R图描述了该系统所涉及到的实体以及他们之间的关系。具体结构如下图3.1所示: 图3.1 系统E-R 图3.1.3 主要表的E-R图1.图书实体实体关系图如图3.2所示:图3.2 图书实体E-R图2入库图书实体实体关系图如图3.2所示:图3.3 入库图书实体
34、E-R图3.图书三级分类实体实体关系图如图3.4所示:图3.4 三级分类实体E-R图4读者实体实体关系图如图3.5所示:图3.5 读者实体E-R图5.管理员实体实体关系图如图3.6所示:图3.6 管理员实体E-R图3.1.4逻辑结构设计数据库主要表的数据结构如下表所示(1) 图书表book的数据结构如下表3.1所示:表3.1 图书信息表book字段名类型长度是否主键是否为空备注IdInt11NoNo自增序号idBook_idVarchar50YesNo图书编号Book_namevarchar50 NoNo图书名Book_authorVarhcar50NoNo作者Book_publishVarh
35、car50NoNo出版社Book_publishtimerVarhcar50NoNo出版时间Book_pageint11NoNo作者Book_priceVarhcar50NoNo图书定价Book_imageVarhcar50NoNo图书照片Book_statusVarhcar50NoNo图书状态Book_contentVarhcar50NoNo图书备注Zhogntu_idVarhcar50NoNo中图编号Rukubook_idVarhcar50NoNo图书入库编码(2) 入库图书表rukubook的数据结构如下表3.2所示:表3.2 入库图书信息表rukubook字段名类型长度是否主键是否为空
36、备注Idint11Nono自增序号idRukubook_idvarchar50YesNo入库图书编号Book_idvarchar50 NoNo图书编号Zhogntu_idVarhcar50NoNo中图编号rukubook_statusVarhcar50NoNo入库图书状态rukubook_rukutimeVarhcar50NoNo入库时间rukubook_locationVarhcar50NoNo入库图书位置rukubook_bookframenumberVarhcar50NoNo入库图书书架号rukubook_contentVarhcar50NoNo入库图书备注sort3_idVarhcar
37、50NoNo入库图书所属底层分类号IslocationVarhcar2NoNo是否上架(3) 图书借还表borrow的数据结构如下表3.3所示:表3.3 图书借还信息表borrow字段名类型长度是否主键是否为空备注Idint11Nono自增序号idRukubook_idvarchar50YesNo入库图书编号Reader_idvarchar50 NoNo读者编号borrow_timeVarhcar50NoNo借阅时间borrow_deadlinetimeVarhcar50NoNo图书归还最后期限borrow_returntimeVarhcar50NoNo图书还书时间borrow_statusV
38、arhcar50NoNo图书借还状态(4) 读者表reader的数据结构如下表3.4所示:表3.4 读者信息表reader字段名类型长度是否主键是否为空备注Idint11Nono自增序号idreader_idvarchar50YesNo读者编号reader_passwordvarchar50 NoNo密码reader_nameVarhcar50NoNo姓名reader_IDnumberVarhcar50NoNo证件号码reader_sexVarhcar50NoNo性别reader_ageint11NoNo年龄reader_imageVarhcar50NoNo照片reader_telVarhcar50NoNo电话reader_emailVarhcar50NoNo电子邮件reader_typeVarhcar50NoNo读者类型reader_idstarttimeVarhcar50NoNo账号申请时间reader_ideffectivetimeVarhcar50NoNo账号有效期reader_canborrowcountint11NoNo读者可借图书数量reader_borrowedcountint11NoNo读者已借图书数量reader_statusVarhcar50NoNo读者状态reader_lastlogintimeVarhcar50No