JAVA图书馆管理系统.docx
《JAVA图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《JAVA图书馆管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
JAVA图书馆管理系统
1系统开发环境
1.1开发背景
随着社会的发展,每天都有数以十万、百万计的图书/期刊问世,图书馆的图书和期刊也在迅速的增加。
面对这些数量庞大的图书管理,需要处理复杂的读者信息,频繁的借还图书信息,图书增减信息,如果仍然采用传统的人工管理方法,既费时费力,更容易出错[1]。
信息技术的发展给图书的管理带来了新的机遇。
使用图书管理系统对图书馆进行管理,这不仅解决了一系列的弊端和问题,更加提高了工作效率。
1.2开发工具
1.2.1ASP.NET语言的发展
1996年,ASP1.0诞生,它的诞生给Web开发界带来了福音。
它作为IIS的附属产品免费发送,并且不久就在Windows平台上广泛使用[2]。
早期的Web开发是十分繁琐的,以至于要制作一个简单的动态页面都需要编写大量的代码才能完成,而ASP却允许使用VBScript这样简单的脚本语言,执行嵌在HTML网页中的代码,在进行程序设计时可以使用它的内部组件来实现一些高级的功能。
它的最大贡献在于它的ADO(ActiveXDataObject),使得对数据库的操作十分简单,进行动态网页设计也变成了一件轻松的事情[3]。
1998年,微软发布了ASP2.0。
与ASP1.0的主要区别在于它的外部组件是可以初始化的。
这样,在ASP程序内部的所有组件都有了自己的独立内存空间,并可以进行事务处理。
2000年,随着Windows2000的发行,它内带的ASP3.0也开始流行。
与ASP2.0的主要区别是它使用了COM+,并且效果提高,版本稳定。
2000年7月,ASP.NET发行。
ASP.NET不是ASP的简单升级,而是微软推出的新一代ActiveServerPages。
ASP.NET是微软发展的新的体系结构.NET的一部分,其中全新的技术架构会让每个人员的编程生活变得更为简单,Web应用程序的开发人员使用这个开发环境可以实现更加模块化、功能更强大的应用程序的编程[4]。
1.2.2ASP.NET语言的特色
网页的交互作用是通过CGI来实现的。
CGI程序的伸缩性不是很理想,因为它为每一个正在运行的CGI程序开一个独立进程。
解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的Web服务器[5]。
ASP.NET是MicroSoft.NET的一部分,作为战略产品,微软为ASP.NET设计了这样一些策略:
易于写出结构清晰的代码,代码易于重用和共享,可用编译类语言编写等等,目的是让程序员更容易的开发出Web应用程序,满足计算向Web转移的战略方向的需要[6]。
ASP.NET不仅仅是ActiveServerPage(ASP)的下一个版本,而且是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。
ASP.NET提供许多比现在的Web开发模式强大的优势。
1.2.3SQLServer2000
SQLServer是一个关系数据库管理系统,它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本,在WindowsNT推出后Microsoft与Sybase在SQLServer的开发上就分道扬镳了[7]。
Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本,Sybase则较专注于SQLServer在UNIX操作系统上的应用。
在本书中介绍的是MicrosoftSQLServer以后简称为SQLServer或MSSQLServer。
SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的较新版本,该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows2000的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用[8]。
1.3应用环境
1.3.1硬件环境
(1)能够运行Windows系统的高档PC台式机,笔记本电脑。
1.3.2软件环境:
(1)中文WindowsXP操作系统。
(2)MicrosoftVisualStudio2005集成开发环境。
(3)IIS5.1服务器。
(4)MicrosoftSQLServer2000数据库服务器。
2系统需求分析
2.1系统目标
(1)设计界面友好、美观、数据存储安全、可靠。
(2)基本信息设置保证图书信息和读者信息的分类管理。
(3)强大的查询功能,保证数据查询的灵活性。
(4)实现对图书借阅、续借、归还过程的全程数据信息跟踪。
(5)设置读者借阅和图书借阅排行榜,为图书管理提供真实的数据信息。
(6)提供借阅到期提醒,使管理者可以及时了解到期的图书借阅信息。
(7)提供管理员修改自己密码的功能,保证系统的安全性。
(8)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
(9)采用人机对话的操作方式,方便管理员的日常操作。
(10)系统最大限度地实现了易维护性和易操作性。
2.2流程图
根据系统的需求分析和可行性分析,画出图书馆管理系统的系统流程图,如图2-1所示。
图书归还档案
图2-1系统流程图
2.3系统功能结构
根据图书馆管理系统的特点,可以将其分为系统设置、读者管理、图书管理、图书借还、系统查询等5个部分,其中各个部分及其包括的具体功能模块如图2-2所示。
推出系统
图2-2系统功能模块
2.4文件夹结构组织
系统完成后的文件夹结构组织,如图2-3所示。
图2-3系统文件夹
3数据库设计
通过对系统进行需求分析、系统流程图以及系统功能结构的确定,设计数据库,名称为db_tsrj,共9个表[11]。
(1)管理员权限设置表tb_admSet,如表3-1所示。
只有系统分配的用户才能操作图书馆管理系统,而用户的权限又各不相同。
表3-1管理员权限设置表
字段名
数据类型
长度
主键否
描述
userName
Varchar
80
否
管理员名称
systemSet
bit
1
否
系统设置
readerManage
bit
1
否
读者管理
bookManage
bit
1
否
图书管理
bookBorrow
bit
1
否
图书借还
systemSearch
bit
1
否
系统查询
(2)图书借阅表tb_bookBorrow,如表3-2所示。
图书借阅信息实体,用于存储所有图书借阅情况的信息,以准确地记录每本图书的借阅信息。
表3-2图书借阅表
字段名
数据类型
长度
主键否
描述
bookBarcode
varchar
50
否
图书条形码
bookName
varchar
20
否
图书名称
borrowTime
datetime
8
否
借阅日期
returnTime
datetime
8
否
应还日期
readerBarCode
varchar
50
否
读者条形码
readerName
varchar
20
否
读者姓名
isReturn
bit
1
否
是否归还
(3)书架信息表tb_bookcase,如表3-3所示。
图书馆对图书的分类,通常是将不同类型的图书分别放置在相应类型的书架上。
书架信息实体,用于存储图书馆中所有的书架信息。
表3-3书架信息表
字段名
数据类型
长度
主键否
描述
bookcaseID
Int
4
是
书架编号
bookcaseName
varchar
80
否
书架名称
(4)图书信息表tb_bookInfo,如表3-4所示。
不同的图书,会有不同的图书信息。
对这些图书信息进行详细的记录,方便了图书的分类和查询。
图书信息实体,用于存储所有图书的相关信息。
表3-4图书信息表
字段名
数据类型
长度
主键否
描述
bookBarCode
varchar
100
是
图书条形码
bookName
varchar
100
否
图书名称
bookType
int
4
否
图书类型
bookcase
int
4
否
书架类别
bookConcern
varchar
100
否
出版社名称
author
varchar
80
否
作者名称
price
money
8
否
图书价格
borrowSum
int
4
否
借阅次数
(5)图书类型信息表tb_bookType如表3-5所示。
图书馆会有不同类型的图书,为了避免图书归类发生混乱,必须建立一个图书类型信息实体,用于存储图书的类型信息。
表3-5图书类型信息表
字段名
数据类型
长度
主键否
描述
typeID
Int
4
否
图书类型编号
typeName
varchar
50
否
类型名称
borrowDay
Int
4
否
可借天数
(6)图书馆信息表tb_library,如表3-6所示。
每个事物都会有其自身的历史背景,图书馆也不例外。
为了记录图书馆的历史背景及其相关的信息,需要建立一个图书馆信息实体,用于存储图书馆的有关信息。
表3-6图书馆信息表
字段名
数据类型
长度
主键否
描述
libraryName
varchar
80
否
图书馆名称
curator
varchar
80
否
馆长名称
tel
varchar
100
否
联系电话
address
varchar
200
否
联系地址
email
varchar
100
否
电子邮件
net
varchar
200
否
网址
upbuildTime
datetime
8
否
建馆时间
remark
varchar
500
否
备注
(7)读者信息表tb_readerInfo,如表3-7所示。
当有读者借阅图书时,要对读者的各项信息进行记录,以方便归还图书和已借阅图书的历史查询,读者信息实体,用于存储所有借阅图书的读者信息。
表3-7读者信息表
字段名
数据类型
长度
主键否
描述
readerBarCode
varchar
50
是
读者条形码
readerName
varchar
50
否
读者名称
sex
char
10
否
读者性别
readerType
varchar
50
否
读者类型
certificateType
Varchar
50
否
证件类型
certificate
Varchar
50
否
证件号码
tel
Varchar
50
否
联系电话
email
Varchar
50
否
电子邮件
remark
varchar
500
否
备注
(8)读者类型信息表tb_readerType,如表3-8所示。
在读者群体中,会有不同的分类,例如借阅图书的读者可能是教师、学生和市民等,所以对读者人群进行有效的分类是至关重要的。
读者类型信息实体,用于存储读者的类型信息。
表3-8读者类型信息表
字段名
数据类型
长度
主键否
描述
id
int
4
是
类型编号
type
varchar
50
否
类型名称
num
varchar
50
否
可借数量
(9)管理员信息表tb_user,如表3-9所示。
当管理员登录图书馆管理系统时,需要通过登录窗口验证成功后才能进入系统主页。
管理员信息实体,用于存储管理员的登录名称和登录密码。
表3-9管理员信息表
字段名
数据类型
长度
主键否
描述
userId
int
4
是
管理员编号
userName
varchar
50
否
管理员名称
userPwd
varchar
50
否
管理员密码
4主要模块设计
4.1网站首页设计
管理员通过“系统登录”模块验证后,可以登录到图书馆管理系统的主页。
系统主页主要包括Banner信息栏、导航栏、借阅排行榜和版权信息等4个部分[12]。
网站首页运行效果,如图4-1所示。
图4-1网站首页
4.2系统设置
4.2.1图书馆信息
图书馆信息记录图书馆的各种相关信息,图书馆信息的E-R图,如图4-2所示。
电子邮件
图4-2图书馆信息E-R图
根据图书馆E-R图设计出图书馆信息页面,选择“系统设置”/“图书馆信息”命令,进入到图书馆信息页面,页面运行,如图4-3所示。
图4-3图书馆信息页面
4.2.2管理员设置
管理员设置模块主要包括查看管理员列表、添加管理员、管理员权限设置和删除管理员4个功能。
选择“系统设置”/“管理员设置”命令,进入到管理员设置页面。
在此页面中将显示所有管理员的名称和管理员拥有的权限[13]。
管理员设置页面,如图4-4所示。
图4-4管理员设置页面
单击“添加管理员”连接按钮将弹出添加管理员页面对话框,在此对话框中可以添加新的管理员,新添加的管理员默认拥有图书借还权限和系统查询权限,如图4-5所示。
图4-5添加管理员图4-6权限设置
单击“权限设置”链接按钮将弹出管理员权限设置,在此对话框中可以设置某一个管理员所拥有的权限,如图4-6所示。
单击“删除”按钮可以删除某一个管理员信息。
4.2.3书架设置
书架信息设置,可以帮助对图书进行分类,也可以快速进行图书查找。
书架信息的E-R图,如图4-7所示。
书架名称
图4-7书架信息E-R图
根据信息E-R图设计出的书架设置。
选择“系统设置”/“书架设置”,进入到书架设置页面,页面如图4-8所示。
图4-8书架设置页面
在该页面中,单击“添加书架信息”可以添加书架,单击“修改”按钮可以修改已有书架的信息,单击“删除”按钮可以删除空书架,如果该书架有图书,则弹出提示对话框,禁止删除。
4.3图书借还模块
在图书借还模块中,主要应该有图书借阅、图书续借和图书归还这3个功能。
在图书借阅页面中,输入读者条形码,点击“查找读者”按钮,下面可以显示出系统中已经存在的读者的各种信息。
页面设计如图4-9所示。
图4-9图书借阅页面
图书续借模块中,根据输入的读者条形码,显示出读者的信息和读者借阅未还的图书信息,如果想续借某本书,则输入图书条形码,单击“查找”,然后在该图书中点击“续借”,该页面的运行效果如图4-10所示。
图4-10图书续借页面
图书归还模块中,根据输入的读者条形码,显示出读者的信息和读者借阅未还的图书信息,如果归还某本书,则输入图书条形码,单击“查找”,然后在该图书中点击“归还”,该页面的运行效果如图4-11所示。
图4-11图书归还页面
4.4更改口令模块
在该模块中,可以修改管理员的密码,进入到更改口令模块中,输入管理员名称和旧密码,可以重新设置密码。
页面运行效果如图4-12所示。
图4-12更改口令页面
5
系统功能测试
5.1系统测试的意义
系统测试是系统开发周期中的一个十分重要的环节。
在系统开发周期中的各个阶段采取了严格仔细的审查,但是仍然会有很多的错误,在系统运行之前需要对系统的各项功能进行严格的测试,以便使问题及时更早的暴露出来,这样才能在投入使用时减少损失,否则到那时再纠正就会付出更大的代价[14]。
5.2系统测试内容
(1)登录测试
正确输入管理员名称和管理员密码,点击“确定”按钮,就会进入到系统首页。
点击“关闭”系统则提示是否要关闭当前窗口。
(2)图书馆信息测试
登录成功后,进入首页面,点击“系统设置”/“图书馆信息”,进入到图书管信息页面,在该页面中显示出图书馆的信息。
(3)管理员设置测试
点击“系统设置”/“管理员设置”,进入到管理员设置页面,在该页面中可以添加管理员、权限设置和删除三个功能。
点击添加管理员,弹出添加管理员对话框,输入系统中已有的登录名称和未有的登录名称,不同的登录密码和确认密码,点击添加,查看效果。
(4)书架设置测试
点击“系统设置”/“书架设置”,进入到管理员设置页面。
在该页面中分别测试添加书架信息,修改和删除三个功能。
(5)读者类型管理测试
在读者类型管理页面中,分别测试添加读者类型信息管理,修改和删除功能。
(6)读者档案管理测试
在读者档案管理测试中,有添加读者信息,修改读者信息和删除读者信息者三个功能,在每个功能中输入不同的数据,查看运行效果。
(7)图书类型设置测试
在图书类型设置的页面中需要分别测试添加图书类型信息,修改和删除功能。
(8)图书档案设置测试
在该页面中,测试打印图书信息、添加图书信息,修改和删除功能。
(9)图书借阅测试
在图书借阅中,输入不同的数据,测试查找读者和查找图书功能。
(10)图书续借测试
在这个页面中,输入不同读者条形码和图书条形码,测试续借功能。
(11)图书归还测试
在图书归还中,测试归还功能。
(12)图书档案查询测试
选择不同的查询条件,输入不同的信息,测试搜书功能。
(13)图书借阅查询测试
选择不同的查询条件,输入不同的信息,测试图书借阅的信息。
(14)更改口令测试
在该页面中,测试管理员口令的更改。
(15)退出系统测试
点击退出系统,则进入到登录页面中[15]。
6代码
系统主要代码:
1网站首页主要代码:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclass_Default:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["userName"]!
=null)//判断用户是否登录
{
bindBookInfo();//调用自定义方法用来绑定图书借阅排行
}
else
Response.Redirect("entry.aspx");//跳转到登录页面
}
protectedvoidbindBookInfo()
{
stringsql="selecttop10*fromtb_bookInfoorderbyborrowSumdesc";//设置SQL语句
gvBookTaxis.DataSource=dataOperate.getDataset(sql,"tb_bookInfo");//获取图书信息数据源
gvBookTaxis.DataBind();//绑定GridView控件
}
protectedvoidgvBookTaxis_RowDataBound(objectsender,GridViewRowEventArgse)
{
if(e.Row.RowIndex!
=-1)//判断GridView控件中是否有值
{
intid=e.Row.RowIndex+1;//将当前行的索引加上一赋值给变量id
e.Row.Cells[0].Text=id.ToString();//将变量id的值传给GridView控件的每一行的单元格中
}
if(e.Row.RowType==DataControlRowType.DataRow)
{
//绑定图书类型
stringbookType=e.Row.Cells[3].Text.ToString();//获取图书类型编号
stringtypeSql="select*fromtb_bookTypewhereTypeID="+bookType;
SqlDataReadertypeSdr=dataOperate.getRow(typeSql);
typeSdr.Read();//读取一条数据
e.Row.Cells[3].Text=typeSdr["typeName"].ToString();//设置图书类型
//绑定书架
stringbookcase=e.Row.Cells[4].Text.ToString();//获取书架编号
stringcaseSql="select*fromtb_bookcasewherebookcaseID="+bookcase;
SqlDataReadercaseSdr=dataOperate.getRow(caseSql);
caseSdr.Read();
e.Row.Cells[4].Text=caseSdr["bookcaseName"].ToString();//设置书架
//设置鼠标悬停行的颜色
e.Row.Attributes.Add("onMouseOver","Color=this.style.backgroundColor;this.style.backgroundColor='lightBlue'");
e.Row.Attributes.Add("onMouseOut","this.style.backgroundColor=Color;");
}
}
}
2图书馆信息主要代码:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclasslibraryInfo:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Ses