2024年4月26日发(作者:)

自习室管理系统毕业论文

题目:图书信息管理系统的设计与实现

实践报告 毕业设计 毕业专题

类型:

指导老师:

系 别:

班 级:

学 号:

姓 名:

2015 年 4 月 30

摘要

随着电脑、手机等信息工具的普及,人们能更加完善、快捷地处理信息数

据。在图书馆的日常运作中,由于图书借阅和用户查询次数繁多,需要进行繁杂

的信息数据管理。

书籍是人类不可缺少的精神食粮,尤其重要。所以图书馆借阅信息管理系统

应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人

工的方式管理图书、期刊、试卷合订本等查询信息,这种查询管理方式存在着许

多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查

找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日

渐成熟,其强大的功能已为人们深刻认识。作为计算机应用的一部分,使用计算机

对图书资源信息进行查询管理,具有着手工管理所无法比拟的优点.例如:检索迅

速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点

能够极大地提高图书查询管理的效率,也是企业、学校的科学化、正规化管理,与

世界接轨的重要条件。为了能更高效、快捷、稳定地管理图书馆的数据信息,本

文设计并实现了图书管理借阅。系统采用MyEclipse软件运用JAVA开发平台,

使用SQL Server2008作为后台数据库系统。系统分为前后台2部分,前台主

要实现了以下几个功能:查询图书,读者留言。后台以管理员方式登录实现以下

几个功能:借还图书、图书管理、读者信息管理,公告栏消息发布等。读者只需

要通过浏览器访问本系统,就可以轻松实现图书查询、留言等操作。同样,图书

管理员也可以使用本系统方便快捷地完成图书馆的信息数据管理工作。

目 录

第一章 图书馆管理系统综述

第一节 图书馆管理系统背景 ··························································································1

第二节 课题研究意义 ·······································································································1

第二章图书馆管理系统开发环境简介

第一节 MyEclipse简介 ··································································································2

第二节 Microsoft SQL Server 2008简介 ·································································3

第三章 图书馆管理系统数据库设计

第一节 子系统划分及系统模块设计 ··············································································4

第二节 数据库的设计 ·······································································································5

第四章 图书馆管理系统详细设计及处理技术

第一节 后台登陆功能模块 ······························································································7

第二节 读者信息功能模块 ······························································································9

第三节 书籍类型功能模块 ··························································································· 11

第四节 图书信息功能模块 ··························································································· 16

第五节 图书查询功能模块 ··························································································· 16

第六节 图书借阅归还功能模块 ··················································································· 21

第五章 图书馆管理系统系统测试 ··············································································· 26

第六章 总结 ···················································································································· 23

参考文献 ··························································································································· 23

致谢 ··································································································································· 23

第一章 图书馆管理系统综述

第一节 图书馆管理系统背景

当今时代是飞速发展的信息时代,计算机与信息处理技术日渐成熟。随着

Internet和计算机网络技术的蓬勃发展,Web技术得到了迅猛地发展。在科学

技术高速发展的今天,信息技术已经渗透到社会发展的每一个领域,而计算机技

术为工作提供了方便性、高效性、灵活性及安全性,尤其Web技术的高速发展

将计算机的应用提升到另一个层次。而图书馆作为一种信息资源的集散地,图书

和用户借阅资料繁多,包含很多的信息数据的管理,利用计算机来管理复杂的信

息,能够充分发挥计算机的优越性。书籍是人类不可缺少的精神食粮,尤其重要。

所以图书馆借阅信息管理系统应该能够为用户提供充足的信息和快捷的查询手

段。但一直以来人们使用传统人工的方式管理图书、期刊、试卷合订本等查询信

息,这种查询管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产

生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学

技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识。作为计

算机应用的一部分,使用计算机对图书资源信息进行查询管理,具有着手工管理所

无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、

寿命长、成本低等。这些优点能够极大地提高图书查询管理的效率,也是企业、

学校的科学化、正规化管理,与世界接轨的重要条件。选用JAVA语言进行编程。

更是1次编译,处处运行。系统分为前后台2部分,前台主要实现了以下几个

功能:查询图书,读者留言、查看公告栏等。后台以管理员方式登录实现以下几

个功能:借还图书、图书管理、读者信息管理,公告栏消息发布等。只需要通过

软件访问本系统,就可以轻松实现图书查询等操作。同样,图书管理员也可以使

用本系统方便快捷地完成图书馆的信息数据管理工作。

第二节 课题研究意义

目前有很多图书馆有图书管理系统,有的仅仅限于图书管理员使用,属于

单机系统,对于Internet服务几乎没有,这样的图书管理系统根本没有发挥它

的效力,资源闲置比较突出。

基于这此问题,有必要建立一个图书管理系统有效的支持WEB的服务,以

使图书管理工作规范化,系统化,程序化,提高信息处理的速度和准确性,并且

能通过Internet能够及时、准确修改图书情况。

本系统的设计最初主要的目的是有效的支持WEB访问使得资源利用最大

化用户只需要通过浏览器就可以查阅到库中的图书,以及图书馆近期发布的最新

消息,还可以留言的效果。

总的来说系统总体上分为前台页面登陆和后台管理。后台的页面则集成了

图书管理中所需的功能和录入新书到库,办公图书,借还手续,查询图书等等。

平时图书管理人员的工作都是在后台中完成的。师生们可以通过管理员了解发布

的最新公告信息;并可以查询自己感兴趣的图书,也可以给学校的图书管理人员

申请图书借阅。相对应的后台是针对学校图书管理人员,后台的页面都加密,如

果不正常登录是进入不了后台管理页面的,后台功能具体包括:发布首页公告,

添加新书到库等等

第二章 图书馆管理系统开发环境简介

第一节MyEclipse简介

MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称

MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开

发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的

JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持

HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。

MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,

MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十

分不错。MyEclipse可以支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,

Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几

乎囊括了目前所有主流开源产品的专属eclipse开发工具。

第二节Microsoft SQL Server 2008简介

SQL(Structured Query Language),结构化查询语言。SQL语言的主要

功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的

规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行

各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数

流行的关系型数据库管理系统都采用了SQL语言标准。虽然很多数据库都对

SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete,

Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据

库操作。

SQL Server 2008 是一个全面的数据库平台,使用集成的商业智能 (BI) 工

具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结

构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用

和高性能的数据应用程序。

SQL Server 2008 数据引擎是本企业数据管理解决方案的核心。此外 SQL

Server 2008 结合了分析、报表、集成和通知功能。这使您的企业可以构建和

部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web

services 和移动设备将数据应用推向业务的各个领域。

数据库系统本质上是一个用计算机存储记录的系统。数据库本身可被看作

为一种电子文件柜:也就是说,它是收集计算机数据文件的仓库或容器。系统用

户可以对这些文件执行插入数据、检索数据、更改数据、删除数据等一系列操作。

总之,数据库系统是一个计算机存储记录的系统,即,它是一个计算机系

统,该系统的目标存储信息并支持用户检索和更新所需要的信息。下图是一个数

据库系统的简图。

图1 数据库系

统简图

本人设计

的是一个关于

图书馆图书管

理的数据库系

统,通过这个系

统管理员可以简捷、方便的对图书记录查阅、增加、删除等功能,也可以通过这

个系统对进行图书查询、借阅、归还等功能。

本系统采用SQL Server 2008数据库,使用Java建立数据源的链接,并且

生成图书管理的数据库应用程序从而实现数据库的管理功能。

第三章 图书馆管理系统数据库设计

第一节 子系统划分及系统模块设计

数据库关系图构成

这个图书管理系统是基于SQL SEVER设计的,然后通过向数据库发送相应

的SQL指令,从而实现对图书的全面管理..对于数据库设计这一流程中,最重

要的一步是对reader表、bookinfo表、borrow、booktype表四张表的设计

以及它们之间的关系.这是这个图书管理系统中的一个关键技术,以下就是数据

库关联图

所以根据本管理系统的要求我们在功能上将这个图书馆管理系统划分成了

5个功能表格:读者模块表格,书籍信息表格,系统管理员表格,图书类型表格,

借还手续表格,从而达到对图书的全面管理。

第二节 数据库的设计

考虑该系统的定位与现有技术力量,系统采用SQL SEVER作为系统的后台

数据库开发环境,数据库命名标准与规范均采用英文单词标写,以便日后对其维

护修改. 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点

同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成

程度高等优点可跨越从运行XP系统到win7系统都可以运行 .

数据库逻辑设计:

表2所示为管理员表(operator),记录了系统用户的角色和密码,判断是

否允许其登录后台管理员的界面。

表2 operator数据表

列名

id(PK)

name

age

password

sex

表3所示为书籍类型信息表(bookType),记录了书籍名字,书籍可借阅天

数,罚款多少,其具体作用就是实现书籍类型的添加功能。

表3 bookType数据表

列名

id(PK)

typeName

days

fk

表4所示为书籍借阅归还表(borrow),记录了借阅证号,借书开始日期,

结束日期,书号。实现本系统核心功能-借书,还书的数据库应用。

数据类型

Int

Varchar

Int

float

长度

11

20

11

/

数据类型

Int

Varchar

int

Varchar

Varchar

长度

11

12

6

10

2

表4 borrow数据表

列名

id(PK)

bookISBN

operatorID

readerISBN

borrowDate

backDate

表5所示为图书信息表(bookInfo),记录了图书书名,书号,图书类型,

总量。其作用就是保存录入到库的图书资料,以便借阅和查询。

表5 bookInfo数据表

列名

ISBN(PK)

typeId

bookname

writer

translator

Publisher

date

数据类型

Int

Intr

Varchar

Varchar

Varchar

Varchar

smalldatetim

e

price

money /

长度

11

11

40

20

20

50

/

数据类型

Int

Varchar

Int

Int

datetime

datetime

长度

11

13

11

11

/

/

表6所示为用户信息表(reader),记录了读者最基本的信息,姓名,年龄,

身份证,电话,押金,等一系列信息

表6 reader数据表

列名

ISBN(PK)

name

sex

age

identifyCard

tel

keepmoney

zj

zy

bztime

第四章 图书馆管理系统详细设计及处理技术

第一节 后台登陆功能模块

数据库代码部分:

链接到数据库,从而可以读取调用到数据,对书籍进行操作

管理员登陆代码部分:

数据类型

Int

Varchar

Varchar

int

Varchar

Varchar

money

int

Varchar

datetime

长度

11

10

2

3

30

18

/

10

8

/

图1:读者信息功能界面

第二节 读者信息功能模块

图2:读者信息功能界面

在后台管理中能自由的管理读者,对读者信息进行添加,存储读者的信息该

功能的实现由以下实现:

代码部分:

// 添加读者信息

public static int InsertReader(String name,String sex,String age,String

identityCard,Date date,String maxNum,String tel,Double

keepMoney,String zj,String zy,Date bztime,String ISBN){

int i=0;

try{

String sql="insert into

tb_reader(name,sex,age,identityCard,date,maxNum,tel,keepMoney,zj,zy,

bztime)values('"+name+"','"+sex+"','"+age+"','"+identityCard+"','"+dat

e+"','"+maxNum+"','"+tel+"',"+keepMoney+",'"+zj+"','"+zy+"','"+bztim

e+"')";

System.

out

.println(sql);

i=Dao.

executeUpdate

(sql);

}catch(Exception e){

}

Dao.

close

();

return i;

}

tackTrace();

//更新读者信息

public static int UpdateReader(String id,String name,String sex,String

age,String identityCard,Date date,String maxNum,String tel,Double

keepMoney,String zj,String zy,Date bztime,String ISBN){

int i=0;

try{

String sql="update tb_reader set

name='"+name+"',sex='"+sex+"',age='"+age+"',identityCard='"+identi

tyCard+"',date='"+date+"',maxNum='"+maxNum+"',tel='"+tel+"',keep

Money="+keepMoney+",zj='"+zj+"',zy='"+zy+"',bztime='"+bztime+"'w

here ISBN='"+ISBN+"'";

i=Dao.

executeUpdate

(sql);

}

}catch(Exception e){

}

Dao.

close

();

return i;

tackTrace();

//删除读者信息

public static int DelReader(String ISBN){

}

第三节 书籍类型功能模块

书籍类型功能模块分为添加书籍类型模块和修改书籍类型模块。两个模块可

以更好的对新进书籍更好的分门别类,强化管理

int i=0;

try{

String sql="delete from tb_reader where ISBN='"+ISBN+"'";

//n(sql);

i=Dao.

executeUpdate

(sql);

}catch(Exception e){

}

Dao.

close

();

return i;

tackTrace();

图3:书籍类型界面

代码部分:

//图书类型添加

public static int InsertBookType(String bookTypeName,String

days,Double fk){

int i=0;

try{

String sql="insert into tb_bookType(typeName,days,fk)

values('"+bookTypeName+"','"+days+"',"+fk+")";

i=Dao.

executeUpdate

(sql);

}catch(Exception e){

tackTrace();

}

}

return i;

//图书类型修改

public static int UpdatebookType(String id,String typeName,String

days,String fk){

int i=0;

try{

String sql="update tb_bookType set

typeName='"+typeName+"',days='"+days+"',fk='"+fk+"' where

id='"+id+"'";

}

第四节 图书信息功能模块

本功能涉及到图书管理员操作系统对新进的图书添加,把图书具体的信

息录入到数据库中,达到对新进图书的管理。

//n(sql);

i=Dao.

executeUpdate

(sql);

}catch(Exception e){

}

Dao.

close

();

return i;

tackTrace();

图4: 新进图书添加界面

代码部分

//添加图书

public static int Insertbook(String ISBN,String typeId,String

bookname,String writer,String translator,String publisher,Date

date,Double price){

int i=0;

try{

String sql="insert into

tb_bookInfo(typeId,bookname,writer,translator,publisher,date,price)

values('"+typeId+"','"+bookname+"','"+writer+"','"+translator+"','"+pub

lisher+"','"+date+"',"+price+")";

//n(sql);

i=Dao.

executeUpdate

(sql);

}catch(Exception e){

}

}

System.

out

.println(sage());

Dao.

close

();

return i;

图5: 新进图书添加界面

本功能涉及到图书管理员操作系统对新进的图书修改,及时更进图书

的信息,达到对图书的进一步管理。

代码部分

public static int Updatebook(String ISBN,String typeId,String

bookname,String writer,String translator,String publisher,Date

date,Double price){

int i=0;

try{

String sql="update tb_bookInfo set

typeId='"+typeId+"',bookname='"+bookname+"',writer='"+writer+"',tr

anslator='"+translator+"',publisher='"+publisher+"',date='"+date+"',pri

ce="+price+" where ISBN='"+ISBN+"'";

//n(sql);

i=Dao.

executeUpdate

(sql);

}catch(Exception e){

}

Dao.

close

();

return i;

第五节 图书查询功能模块

tackTrace();

在允许管理员对图书馆里面的书籍进行查询,返回内容包含书名,编号,分

类和库存几个方面。总的来说该功能是本系统最重要的核心功能之一。

图6:图书查询界面

代码部分

//图书名称模糊查询

public static List selectbookmohu(String bookname){

List list=new ArrayList();

String sql="select * from tb_bookInfo where bookname like

'%"+bookname+"%'";

System.

out

.print(sql);

ResultSet s=Dao.

executeQuery

(sql);

try {

while(()){

}

BookInfo bookinfo=new BookInfo();

N(ing(1));

eid(ing(2));

kname(ing(3));

ter(ing(4));

nslator(ing(5));

lisher(ing(6));

e(e(7));

ce(ble(8));

(bookinfo);

} catch (SQLException e) {

}

}

// TODO 自动生成 catch 块

tackTrace();

return list;

//图书作者名称模糊查询

public static List selectbookmohuwriter(String writer){

List list=new ArrayList();

String sql="select * from tb_bookInfo where writer like

'%"+writer+"%'";

System.

out

.print(sql);

ResultSet s=Dao.

executeQuery

(sql);

try {

while(()){

BookInfo bookinfo=new BookInfo();

N(ing(1));

eid(ing(2));

kname(ing(3));

ter(ing(4));

}

}

nslator(ing(5));

lisher(ing(6));

e(e(7));

ce(ble(8));

(bookinfo);

} catch (SQLException e) {

}

return list;

// TODO 自动生成 catch 块

tackTrace();

图7:显示所有图书界面

上图为显示界面主要是实现对图书的所有查询,内容包括书名,图书编号,

分类,库存量。

代码部分

//查询搜索图书所有信息

public static List selectbookmohu(String bookname){

List list=new ArrayList();

String sql="select * from tb_bookInfo where bookname like

'%"+bookname+"%'";

System.

out

.print(sql);

ResultSet s=Dao.

executeQuery

(sql);

try {

while(()){

BookInfo bookinfo=new BookInfo();

N(ing(1));

eid(ing(2));

kname(ing(3));

ter(ing(4));

nslator(ing(5));

lisher(ing(6));

e(e(7));

ce(ble(8));

}

}

(bookinfo);

} catch (SQLException e) {

}

return list;

// TODO 自动生成 catch 块

tackTrace();

第六节 图书借阅归还功能模块

下图为该系统最核心的方面,图书管理系统对图书可以进行借阅,管理,归

还等一系列操作

图8:图书借阅界面

代码部分

//对借阅表进行操作

public static int InsertBookBorrow(String bookISBN,String

readerISBN,String operatorId,Timestamp borrowDate,Timestamp

backDate){

int i=0;

try{

String sql="insert into

tb_borrow(bookISBN,readerISBN,operatorId,borrowDate,backDat

e)values('"+bookISBN+"','"+readerISBN+"','"+operatorId+"','

"+borrowDate+"','"+backDate+"')";

}

public static List selectBorrow(String readerISBN) {

i=Dao.

executeUpdate

(sql);

}catch(Exception e){

}

Dao.

close

();

return i;

tackTrace();

List list=new ArrayList();

String sql = "select * from tb_borrow where

readerISBN='"+readerISBN+"'";

ResultSet rs = Dao.

executeQuery

(sql);

try {

while (()) {

Borrow borrow=new Borrow();

(("id"));

kISBN(ing("bookISBN"));

derISBN(ing("readerISBN"));

rowDate(ing("borrowDate"));

kDate(ing("backDate"));

kName(ing("borrowBookName"));

}

}

(borrow);

} catch (Exception e) {

}

Dao.

close

();

return list;

tackTrace();

图9:图书归还界面

代码部分

//图书归还操作

public static List selectBookBack(String readerISBN) {

List list=new ArrayList();

String sql = "SELECT AS bookISBN, me,

AS ,,orId, Date, te,

readerName, AS readerISBN FROM tb_bookInfo a INNER JOIN

tb_borrow b ON = BN INNER JOIN tb_reader c ON

ISBN = WHERE ( = '"+readerISBN+"' and

System.

out

.println(sql);

ResultSet rs = Dao.

executeQuery

(sql);

try {

while (()) {

}

Back back=new Back();

kISBN(ing("bookISBN"));

kname(ing("bookname"));

eId(("typeId"));

ratorId(ing("operatorId"));

rowDate(ing("borrowDate"));

kDate(ing("backDate"));

derName(ing("readerName"));

derISBN(ing("readerISBN"));

(("id"));

(back);

} catch (Exception e) {

}

Dao.

close

();

return list;

tackTrace();

}

public static int UpdateBookBack(String bookISBN,String

readerISBN,int id){//归还图书操作

int i=0;

try{

String sql="update tb_borrow set isback=0 where

bookISBN='"+bookISBN+"'and readerISBN='"+readerISBN+"' and

id="+id+"";

System.

out

.println(sql);

i=Dao.

executeUpdate

(sql);

}catch(Exception e){

}

Dao.

close

();

return i;

}

第五章 图书馆管理系统系统测试

测试

tackTrace();

本系统测试环境: SQL sever2008,JDK1.6,在WIN7下测试通过.测试结

果完全符合预期目标。但有部分BUG,现总结如下:

一:未能最终达到图书借阅归还日期延迟罚款金额等方面。

二:界面设计的不是很美观。

最终经过详细功能测试和代码修正后,本系统完全实现借书与还书的手续操

作与对图书和人员的管理功能。其系统界面简单、易用,其查询功能模块支持模

糊查询最终使得系统更加强大。

第六章 总结

本文提出的基于WEB的图书管理系统完成了借书,还书,查询图书,管理

借书证和管理员帐户设置等主要功能,本系统是基于B/S模式,其后台部分完全

实现借书与还书的手续操作与对图书和人员的管理功能,系统界面简单、易用,

任何人都可以在短时间内学会使用该系统,在前台部分,创新设计的WAP图书

查询部分,不仅大大方便了同学们查询图书,而且使得系统多样化,多元化,具

有有很强的扩展性。由于是由JAVA语言编写,移植性也很好。

在技术方面掌握了sql2008登录的验证模式、数据备份和恢复、用户管理;

提高了综合运用sql2008数据库安全管理解决实际问题的能力。

对于不足之处在于管理员权限没有细分,有条件的话可以采用给予角色的分配方

法来分配权限。部分功能相对于简单,可以继续加入留言板,图书续借,公告等

实用功能。项目的前期准备工作不够充分,包括新技术的学习和需求的理解,这

样就给后面的开发带来了很大不便

致 谢

在本文完成之际,我由衷地感谢学校3年来对我们的精心培养,感谢学校

为我们提供的舒适的学习环境。感谢教诲、关怀、帮助、支持和鼓励我们完成学

业的老师、朋友和亲人。

首先感谢我们的指导老师王涛老师! 王老师以浩瀚渊博的学识、高瞻远瞩

的洞察力、勤奋严谨的治学态度、实事求是的科研精神、一丝不苟的工作作风和

热情真诚的待人处事态度给我留下了非常深刻的印象,也时时刻刻感染着我。在

这次毕业设计中,王老师为我们提供了一个很好的环境,在他的精心指导下,我

们才能够健康的成长。无论是在本文的选题上,还是论文的查找资料以及最后的

完成过程中,王老师都给予了我们热情的帮助和悉心的指导。王老师高尚的人品、

敏锐的目光、和蔼可亲的态度、敬业的精神都使我们终身受益。另外也对指导教

育过我们的老师们表示感谢,他们不但传授我们知识,给予我们关怀和支持,也

教会我们为人做事的道理。

感谢各位好友在三年的学业和生活上的关心和帮助!与大家朝夕相处的日

子令我们终身难忘!

深深地感谢养育我们的父母和家人,他们几十年始终如一日的关怀、鼓励

和支持,使我们能够坚定地克服各种困难顺利完成学业并能够健康成长。

最后,向所有关心和帮助过我们的老师、同学和朋友们表示衷心地感谢!