《基于jsp的图书馆管理系统.doc》由会员分享,可在线阅读,更多相关《基于jsp的图书馆管理系统.doc(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 本科毕业论文(设计)题 目: 高校图书馆管理系统 学 院: 信息工程学院 专 业: 网络工程 姓 名: 王效伟 指导教师: 咸鹤群 2014年 4月15日论文目录摘要3绪论(前言)4第一章 高校图书馆管理系统相关分析51.1需求分析51.2 功能分析51.3系统用例设计61.4系统流程制作图示71.5系统的开发环境8第二章 后台的分析与设计92.1 数据库制作需求分析92.2 数据库内部概念设计92.3 库内数据逻辑结构设计112.4 库内各表的联系图13第三章 管理系统的设计与实现143.1 数据库Dao类的构建143.2 系统登录模块构建153.2.1 登陆窗体界面设计与实现163.2.
2、2 当图书馆管理员登陆时的模块163.3 主界面模块173.3.1 主界面设计制作173.3.2 主界面菜单栏设计制作193.4 图书类别管理模块193.4.1 图书类别添加模块203.4.2 图书类别修改模块203.5 图书信息管理模块213.5.1 图书信息增添模块213.5.2 书籍编号检测功能223.5.3 书籍信息增添模块233.5.4 图书修改信息243.6 读者管理模块253.6.1 读者信息添加253.6.2 读者信息修改263.7 图书订购管理模块273.7.1 新书订购管理283.7.2 图书验收283.8 图书借阅管理模块303.8.1 书籍借阅模块313.8.2 借书归
3、还模块323.8.3库存查询模块333.9 系统维护模块333.9.1 密码修改模块353.9.2 账户信息增添模块353.9.3 账户信息删改模块36第四章 系统测试374.1 测试项目374.1 系统测试用例37结束语39参考文献40高校图书馆管理系统摘要 随着计算机技术的跨越式发展,各领域科学技术的长足进步,人们也不断的利用这些发展之中的技术完善生活提高工作效率。其中,运用计算机处理信息以及相关处理系统的引进大幅度的提高了经营效率并且改变了许多系统的管理方式。 高校图书馆管理系统是一所学校管理系统的一个重要组成部分,本人通过对图书管理运行方式以及管理相关方法进行了调查研究后,着手实现该系
4、统。该项高校图书馆管理系统后台数据库采用SQL Sever 2005,利用数据库的相关原理解决了在日常图书管理中的一些问题并且实现了系统化的工作机制。本系统拥有六个主要功能模块,并且在主要功能模块下安插了多个子模块,通过小型模块的相互协作,最终完成管理员需求的指令。 本系统的主要功能模块面向于两个对象,一方面对于图书管理者,主要以实现借阅于归还模块为主,而另一方面对于相关操作人员则可以实现书籍信息管理,读者信息管理等,并且在系统中还有系统查询,登录模块和更改口令模块的实现。 本论文将全方位立体式的介绍所设计的图书管理系统的功能模块以及业务流程,并且有关于系统的数据分析以及设计相关。 关键词:图
5、书馆管理系统、SQL Sever 2005、信息管理。AbstractWith the rapid developmentof computer technology,great progressin all fields of science and technology,peoplehave beenusing thedevelopmenttechnology to improvelife,improve work efficiency. Among them,the use of computerinformation processing andprocessing systemint
6、roducedgreatly improvesthe management efficiencyandchanged manysystem managementmode. Library management system in Colleges and universitiesis an important part ofa schoolmanagement system,throughto the books management system managementmode of operationandmanagement methodswere investigated,toreali
7、ze the system. Theuniversity library managementsystem backstage database adopts SQLSever 2005,using therelevant principles ofthe databaseto solve some problemsin dailyin library managementand the implementation of theworking mechanismof systematic. The systemhas six mainfunctions. The main functionm
8、odules of this systemfor thetwo objects,oneforthe books management,mainly toborrowtoreturn themodule,and on the other hand,therelevant operatorscan make thebook informationmanagement,readerinformation management,andin the systemandquery system,login moduleand realize thepassword changemodule. This t
9、hesis willfunction modulelibrary management systemall-roundintroductiondesignand business process,and there isasystemof data analysis anddesign. Keywords:library management system,SQLSever 2005,information management.绪论 围绕着计算机科学的发展,对于计算机的应用已经形成了一种爆炸性增长的趋势。代表了一种现代化的先进理念。对于高校的图书馆来说,与同类型的书店、企业内部等等区域一样在
10、运作的过程中不可避免的要和大量的信息打交道,其中的信息主要是读者信息,书籍信息以及通过借阅这种行为让这两种信息产生交互而形成的借阅、归还信息。因此对读者资源、书籍资源、借还信息的管理是十分必要而且迫在眉睫的。对于这类信息,适时的洞察到各个关节信息的变化、交互并且能够及时处理对于高校图书馆对于图书管理,方便人员借阅有着重要意义。为了实现上述功能,提高管理效率,本论文将对高校的图书馆管理系统进行设计,最大可能的实现图书管理的资源化、有效化、快捷化。 图书馆的日常功能就是图书的借还,围绕这一主要业务,本系统将实现该业务的自动化为核心并且安排了如下核心功能:图书管理、读者管理、借还管理、系统管理、登录
11、修改。 本文将分章节对自主设计的高校图书馆管理系统进行详细介绍。第一章 高校图书馆管理系统相关分析1.1需求分析 高校图书馆管理系统是一个集成度很高的项目,作为高校信息的中心,图书馆内的图书和用户借阅资料繁多,通过对图书馆的各个功能整合,实现图书信息检索,从而可以提高管理效率,降低学习和使用成本,达成图书管理的集成化、高效化。 作为图书馆管理系统的一类,高校图书馆管理系统也不应例外的应该有对于图书种类、图书信息以及读者信息的管理功能。并且还必须能对外提供图书信息的检索查询以及对读者信息的存储保密工作。重点环节是完成图书馆的基本功能即图书借阅。通过使用本系统实现这些功能的无纸化全自动管理,能够从
12、根本上实现人员开销的减小,简化工作任务,从而在降低成本的基础上更多的提供便捷。 本系统的大致框架分为前台和后台,前台的主要功能是在前端显示管理系统的界面,界面中有相关的按钮,通过用户对鼠标点击实现该按钮下的功能,并且有文本框和操作框,实现检索功能。后台的主要功能是提供数据支持,后台本质上来说是一个完整的数据库,包含了图书、读者、借阅等实体和操作产生的数据。系统通过前台对后台数据调用和后台数据库完善对前台的支持实现。 图书馆管理系统应该具有以下的基本功能作为系统的核心: 图书管理员能够无纸化便捷的进行图书管理、用户管理、管理员管理。其中图书管理包括了图书的基本信息管理、图书分类添加、删除、信息的
13、修改。用户管理包括:用户基本信息管理,信息添加、删除、修改。管理员管理也和用户管理的功能一致。 对于已经注册了的用户和管理员组可以自行修改自己的密码,但是修改前有一个安全模块对原始密码进行核对,正确之后方可重置为新密码。 对于尚未注册的用户组和管理员组提供注册功能(在未注册前提供部分功能,包括:图书信息以及分类的查询,库存信息等,但是无法进行借阅)。 为了便捷性考虑,可以实现模糊查找,简化用户的使用步骤,并提供历史记录查找等。 对于图书的管理,若该书被借走了则有一个标签,若还在库内用另一个标签,若已经不对外借阅则提供删除信息的功能。 1.2 功能分析 按照之前所阐述的需求分析,我将高校图书馆管
14、理系统设计为图书管理、读者管理、借阅管理、系统管理、登录修改五大功能模块。各个模块的功能如下阐释: 图书管理模块:本模块的主要职能是管理高校图书馆中库存的图书信息,包含图书的名称、类别、是否库存、书籍编号、作者、出版社信息等等。 读者管理模块:本模块的主要职能是管理图书馆中的读者信息,包括读者编号、读者信息、相关借阅证号码等等。并且可以识别读者是否还书以及有否借阅资格。 借阅管理模块:本模块的主要职能是管理高校图书馆的书籍的借还工作,下设图书借阅、图书搜索、图书归还三个下属模块。并且借阅模块需要处理的是图书管理和读者管理模块相互影响产生的数据,即读者借阅了书籍产生的新信息。 系统管理模块:本模
15、块主要针对管理员的使用,可以提供用户管理等相关功能。并且该模块具有最高的处理权限且仅对管理员提供接口。 登录修改模块:面向管理员和用户的接口,使得用户可以在该模块下登录并且使用高效图书馆管理系统的相关功能,并且可以设置个人密码保障隐私,而且可以修改密码,但是只能修改个人密码,对于除自己以外的用户不提供接口。图书类别管理1.3系统用例设计 图书管理图书信息管理 图书入库管理 借阅管理 归还管理来访读者图书管理员图书查询读者信息管理登录系统维护读者管理借还管理书籍信息查询密码修改用户登录登录权限管理 图1-1 系统用例图设计 高校图书馆管理系统时一个开放式的管理系统,使用对象主要有图书管理员和来访
16、读者,其中图书管理员有对于该系统的所有最高权限,并且负责系统的日常维护以及安全工作,来访读者则可以使用系统最常规的功能,实现借阅的目的上图1-1是对这两个实体的ER用例分析,明确的区分了两者权限的区别并且详细罗列了各个实体可拥有的操作,能直观展示出二者的联系。1.4系统流程制作图示 本系统的首要任务是对操作者的身份进行辨别,分辨出是系统管理员还是来访读者,之后才能给操作者分配相应的权限。第一次进入系统时,通过账户的登录实现对身份的识别,登录之后在系统主界面上的各个菜单栏和功能栏里可以自由选择各种被赋予的功能,不同权限的操作者对于系统功能的涉及不同,下图将阐释本系统的系统流程图以方便理解本系统的
17、运行过程。流程如图1-2所示:登录系统记录借阅类别添加图书类别管理借阅管理归还管理系统权限管理读者信息管理图书管理读者管理系统管理借还管理修改密码图书查询系统主界面是否是管理员是否系统主界面图书入库管理图书信息管理类别修改读者添加读者修改信息修改归还记录信息添加图1-2 系统流程图示1.5系统的开发环境 本人设计的高校图书馆管理系统对于环境和配置有如下要求:(1) 界面开发平台:My eclipse。(2) 后台图书读者等信息数据库系统软件:SQL Server 2005.(3) 系统可运行平台:Windows 7、Windows XP等。(4) 分辨率需求:840680及以上。(5) 系统配
18、置需求:详细参数暂略,没有特殊的需求。(6) GUI开发包:Swing。(7) Java开发包:JDK 5.0及以上。第二章 后台的分析与设计2.1 数据库制作需求分析 本人在设计该高校图书馆管理系统时做了大量的调查,包括图书馆的日常工作、书籍吞吐量、查询浏览量等等相关信息。这些信息汇总后统计的结果表明:图书馆的图书处理量相当大,从而导致了对于后台数据库的维护作业量大。根据上述结论,本人选择了SQL Server 2005作为整个系统的数据库后台。在SQL Server 2005中增加一个新的数据库,将其命名为Edu_Library_System。并且对这个数据库进行相关设计,使得其中可以包含
19、图书相关信息、借阅相关信息、读者相关信息等实体,让这些实体去存储相应的信息。2.2 数据库内部概念设计 构建数据库时,将本系统需求的6个实体放置其中,包括了图书类别信息实体、图书信息实体、来访读者实体、系统管理员实体、借阅信息实体和新书订购实体。 对于图书类别实体而言,其包含的信息有很多,故对其建立起一个专属的图书类别信息表,其目的是让这个表专门存储图书的相关信息,并且让这个信息表与后来的图书信息表想关联,形成一个联系,图书类别信息实体E-R图如图2-1:图书类别名称图书类别编号图书类别信息图2-1 图书类别信息实体E-R图 图书馆的灵魂功能就是对于其中的书籍进行管理,因此建立起一个图书信息表
20、示十分必要的,这个表可以用来存储书籍的相关信息并且与上一个图书类别信息表联系,与之后的借阅信息表关联,形成多个联系,图书信息实体E-R图如图2-2:图书名称图书类别编号图书信息 图书编号作者译者图书价格出版日期出版社图2-2 图书信息实体E-R图年龄 对于图书馆的管理的另一项重要工作就是对于来访读者的管理,读者应该办理相应的借阅证,凭证借阅。因此建立一个来访读者信息表来存储读者的相关登记信息。来访读者信息实体E-R图如图2-3:证件类型性别年龄证件号码最大借阅量姓名办证日期借阅证有效日期电话号码读者编号来访读者信息图2-3 来访读者信息实体E-R图 图书馆的核心管理层面是通过图书管理员来实现的
21、,因此需要建立一个图书管理员信息表,用来存储图书管理员的身份信息,使其身份能够唯一辨别,让系统判断权限,图书管理员信息实体E-R图如图2-4:性别证件号码 电话号码账户名管理员编号图书管理员信息工作日期账户密码是否是管理员图2-4 图书管理员信息实体E-R图读者编号管理员编号图书编号 图书馆最大的功能是提供了借阅服务,因此需要配置一个图书借阅信息表,使其能够保存读者的借阅信息,可以与读者实体和图书实体相关联。图书借阅信息实体E-R图如图2-5:图书借阅信息借阅编号归还编号借阅日期归还状态图2-5 图书借阅信息E-R图 图书馆的新书入库主要是通过新书订购实现的,因此设计一个新书订购信息表来存储所
22、有订购信息,新书订购信息表如图2-6:订购数量订购日期图书编号管理员新书订购信息购入价格是否入库图2-6新书订购信息实体E-R图2.3 库内数据逻辑结构设计 按照绘制完成的各个实体的E-R图简历其数据库的逻辑结构,各个表的结构如下:(一)图书类别信息表是用来存储管内全部图书的类别相关信息,包括图书类别编号、图书类别名称两个字段,则实体表的逻辑结构如表2-1所示。 表2-1 图书类别信息表字 段 名 称数 据 类 型是 否 主 键作 用 描 述id整数(int)是图书类别编号typeName文本(varchar)否图书类别名称 (二)图书信息表的作用是存储图书的所有信息,包含了图书编号、类别编号
23、、图书名称、作者、译者、出版社、出版日期以及图书价格8个字段。经过分析设计该表的逻辑结构如表2-2所示。表2-2 图书信息表字 段 名 称数 据 类 型是 否 主 键作 用 描 述ISBN文本(varchar)是图书编号typeId整数(int)否(外键)类别编号bookname文本(varchar)否图书名称writer文本(varchar)否作者translator文本(varchar)否译者publisher文本(varchar)否出版社pdate 日期时间(datetime)否出版日期bprice 金钱货币(money)否书籍价格(三)来访读者信息表用来存储读者信息,包括读者姓名、性别
24、、年龄、证件号码、借阅证有效日期、最大借书量、电话号码、证件类型、读者编号以及办证日期10个字段。该表的逻辑结构如表2-3所示。表2-3 读者信息表字 段 名 称数 据 类 型是 否 主 键作 用 描 述name文本(varchar)是读者姓名sex文本(varchar)否(外键)读者性别age整数(int)否读者年龄identityCard文本(varchar)否证件号码latestdate日期时间(datetime)否借阅证有效日期maxNum整数(int)否最大借书量tel文本(varchar)否电话号码zjno整数(int)否证件类型ISBN文本(varchar)是读者编号bztime
25、日期时间(datetime)否办证日期 (四)图书管理员信息表用来存储图书管理员信息,包括操管理员编号、账户名、性别、年龄、证件号码、工作日期、电话号码、是否为管理员、账户密码9个字段。该表的逻辑结构如表2-4所示。表2-4 操作员信息表字 段 名 称数 据 类 型是 否 主 键作 用 描 述id整数(int)是(自动递增)管理员编号name文本(varchar)否账户名sex文本(varchar)否性别age整数(int)否年龄identityCard文本(varchar)否证件号码workdate日期时间(datetime)否工作日期tel文本(varchar)否电话号码admin整数(i
26、nt)否是否为管理员password文本(varchar)否账户密码(五)图书借阅信息表用来存储图书借阅信息,包含了借阅编号、图书编号、管理员编号、读者编号、是否归还、借阅日期以及归还日期7字段。表的逻辑结构如表2-5所示。表2-5 图书借阅信息表字 段 名 称数 据 类 型是 否 主 键作 用 描 述id整数(int)是(自动递增)借阅编号bookISBN文本(varchar)否(外键)图书编号operatorId整数(int)否(外键)管理员编号readerISBN文本(varchar)否(外键)读者编号isback整数(int)否是否归还borrowDate日期时间(datetime)否
27、借阅日期backdate日期时间(datetime)否归还日期(六)新书订购信息表是用于存储图书馆的全部购买信息,包括图书编号、订购日期、订购数量、管理员、是否验收以及购买价格6个字段。则表的逻辑结构如表2-6所示。表2.6 图书订购信息表字 段 名 称数 据 类 型是 否 主 键作 用 描 述ISBN文本(varchar)是图书编号date日期时间(datetime)否订购日期number整数(int)否订购数量operator文本(varchar)否管理员checkAndAccep整数(int)否是否验收zk浮点(float)否书籍价格2.4 库内各表的联系图 之前建立的借阅信息表(tb_
28、borrow)、图书信息表(tb_bookinfo)、图书类别信息表(tb_booktype)、来访读者信息表(tb_reader)、图书管理员信息表(tb_operator)、新书订购信息表(tb_order)这六个表需要产生联系才能使高校图书馆正常运行,因此设置各表联系也是关键环节,各表联系如图2-7.:图2-7 库内各表间的联系图第三章 管理系统的设计与实现3.1 数据库Dao类的构建 对于管理系统的实现我们需要去构建一个Dao类,通过在其中添加各种方法实现数据库的基本构造。则在Dao类中需要加入四种方法,其中包含了:构造方法Dao、查询方法excQuery、更新方法excUpdata和
29、关闭链接方法close。部分代码如下:public class Dao protected static String dbClassName = com.microsoft.sqlserver.jdbc.SQLServerDriver;/数据库链接驱动类protected static String dbUrl = jdbc:sqlserver:/localhost:1433;+ DatabaseName=db_library;/数据库链接的URLprotected static String dbUser = sa;/数据库用户名protected static String dbPwd
30、= 123;/数据库用户密码private static Connection conn = null;/数据库链接对象private static String ISBN;private Dao() /构造方法 try if (conn = null) /当对象判空时 Class.forName(dbClassName);/加载驱动类 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);/获得对象 catch (Exception ee) ee.printStackTrace();private static ResultSet
31、excQuery(String sql) /查询方法 try if(conn=null) new Dao(); /若链接对象非空,需要重新调用构造方法 return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).excQuery(sql);/开始查询 catch (SQLException e) e.printStackTrace(); return null; finally private static int excUpdate(String sql) /更新方法 try
32、if(conn=null) new Dao();/如果连接对象为空,则重新调用构造方法 return conn.createStatement().excUpdate(sql);/开始更新 catch (SQLException e) e.printStackTrace(); return -1; finally public static void close() /关闭方法 try conn.close();/关闭链接对象 catch (SQLException e) e.printStackTrace(); finally conn = null;/给链接对象赋值为null 3.2 系统
33、登录模块构建 高校图书馆管理系统并不是任何身份的id都可以使用的。为了保证高校图书馆管理系统的安全性,让系统维护更加容易和严谨。使得只有经过验证的用户才可以使用各项功能,需要设计一个登录模块实现对登录用户是否合法,并且对于用户是否是管理员的身份进行判断然后分配给予系统操作权限,通过设计软件可以很容易实现登录模块的设计,设计完成之后,可以使用的登录模块运行结果如图3-1:图3-1 系统登录模块外观界面3.2.1 登陆窗体界面设计与实现 对于登录窗口本人采用了尽可能简单的设计,运用基本的方式,构建一个名为Book_Login_Frame的类,该类的作用是用于窗口的显示。为了实现显示以及其他诸如接受
34、密码等控件的功能,在这个界面上需要加入四个控件:一是用于显示顶部“高校图书馆管理系统”字样图片以及标签文本的JLable控件;利用JTextField控件实现用户名输入信息的接收;JPasswordField控件用来接收密码相关输入信息;而JButton用于实现登录和重置按钮的创建。3.2.2 当图书馆管理员登陆时的模块 在Dao类中加入一个check方法,这个方法可以实现两个功能,一是检测登录的用户名和密码是否匹配即用户信息是否合法,二是当信息合法时判断登录用户的属性,即这个用户是来访读者还是图书馆管理员,以便其他模块对用户分配权限。主要代码如下:public static Operater
35、 check(String name, String password) Operater operater=new Operater();/图书管理员String sql = select * from tb_operator where name= + name+ and password= + password + and admin=1;ResultSet rs = Dao.executeQuery(sql);try while (rs.next() operater.setId(rs.getString(id);operater.setName(rs.getString(name);
36、operater.setGrade(rs.getString(admin);operater.setPassword(rs.getString(password); 3.3 主界面模块 高校图书馆管理系统的主界面主要是由三个方面构成。首先是在主界面上半部分实现一个菜单栏的功能,利用在主界面上显示的系统菜单通过链接系统功能菜单实现。其次是位于菜单栏下面的工具栏,可以提供各种功能性的接口。最后是位于工具栏下方的系统功能栏,这个窗口是用来显示系统各个功能的窗口。3.3.1 主界面设计制作 主界面可以集成所有的其余功能窗口,因此需要在主界面的窗口中加入一个界面窗口,从而使得其余的功能窗口都能加入到这个
37、窗口中去,并且实现多窗口显示。在主界面的窗口内添加一个main算法,即系统入口算法,通过该算法的执行推动系统的执行,下面贴出部分主要代码:public class Library extends JFrame private static final JDesktopPane DESKTOP_PANE = new JDesktopPane();/桌面窗口public static void main(String args) try UIManager.setLookAndFeel(UIManager .getSystemLookAndFeelClassName();/配置主界面样式 new
38、BookLoginIFrame();/登录窗口 catch (Exception ex) ex.printStackTrace(); public static void addIFame(JInternalFrame iframe) / 添加下层窗口的算法DESKTOP_PANE.add(iframe);/增加下层窗口 紧接着开始设置主界面的其余属性,首先对于窗口位置和大小设定,然后设置工具栏和菜单栏的功能属性和位置大小等属性,最后添加背景图片,让整个界面更加人性化,下面贴出部分实现代码:public Library() super();setDefaultCloseOperation(Wi
39、ndowConstants.EXIT_ON_CLOSE);/设置关闭按钮功能选项Toolkit tool = Toolkit.getDefaultToolkit();/获取默认的工具箱Dimension screenSize = tool.getScreenSize();/获取屏幕分辨率setSize(800, 600);/设置窗口大小setLocation(screenSize.width - getWidth() / 2,(screenSize.height - getHeight() / 2);/设置窗口位置setTitle(图书馆管理系统);/设置窗口标题JMenuBar menuBa
40、r = createMenu(); /引用建立菜单栏的算法setJMenuBar(menuBar);/配置菜单栏JToolBar toolBar = createToolBar(); / 调用创建工具栏的算法getContentPane().add(toolBar, BorderLayout.NORTH);/配置工具栏final JLabel label = new JLabel();/设置一个标签,用于显示图片label.setBounds(0, 0, 0, 0);/设置窗体的大小和位置label.setIcon(null); / 窗体背景DESKTOP_PANE.addComponentL
41、istener(new ComponentAdapter() public void componentResized(final ComponentEvent e) Dimension size = e.getComponent().getSize();/获得组件大小label.setSize(e.getComponent().getSize();/设置标签大小label.setText();/设置标签文本;DESKTOP_PANE.add(label,new Integer(Integer.MIN_VALUE);/添加到桌面窗体getContentPane().add(DESKTOP_PANE);/将桌面窗体添加到主窗体中3.3.2 主界面菜单栏设计制作 在Library类语句中定义一个菜单创建(createMenu)算法,从而实现菜单栏的具体设计,使得最终主界面的运行结果如图:图3-2 主窗口界面3.4 图书类别管理模块 类别管理模块内需要设计两个子属模块:图书类别添加和