图书馆管理系统.docx
《图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统.docx(29页珍藏版)》请在冰豆网上搜索。
图书馆管理系统
《ASP.NET程序设计》课程大作业
题目名称:
图书馆管理系统
系名称:
专业班级:
学号姓名:
2015年12月
目录
一、选题意义3
二、需求分析4
三、总体设计5
四、详细设计10
五、系统测试19
六、总结20
七、参考文献21
一、选题的意义
随着现在科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用越来越重要,在我国图书馆计算机等信息技术的应用起步于20世纪70年代末期,随着改革开放的步伐得迅速发展,特别是90年代以后,我国图书馆信息网络建设取得了较大发展,图书馆信息化建设迈向了一个新台阶。
1.1课题背景
近些年来,图书馆事业的巨大进步已为图书馆在新世纪的发展打下了坚实的基础.全球信息化和高新技术的发展也为图书馆提供了更好的发展机遇,传统的单一以书本作为单元信息服务手段已不能满足读者的需求,现代化服务手段的实施势在必行。
随着社会的发展,信息社会的建立,图书馆开始冲破传统服务模式,紧密地配合社会需求,提供特色服务,有针对性的服务,不断提高读者的满意率。
随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。
在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。
对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本图书管理系统系统就是为了管理好图书馆信息而设计的。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
1.2系统开发的意义
随着图书管理系统是图书管理工作中不可缺少的部分,它的内容对于图书馆的管理员和使用者来说都至关重要。
所以图书管理系统应该能够为管理员或读者提供充足的信息和快捷的数据处理手段。
作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理所无法比拟的优点,如:
检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。
这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情。
二、需求分析
2.1系统分析
长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较繁琐。
在借书时,读者首先将要借的书和借阅证交给工作人员,工作人员然后将每本书的信息卡片和读者的借阅证放在一个小格栏里,最后在借阅证和每本书贴的借阅条上填写借阅信息。
在还书时,读者首先将要还的书交给工作人员,工作人员然后根据图书信息找到相应的书卡和借阅证,并填写相应的还书信息。
从上述描述中可以发现,传统的手工流程存在种种不足。
首先处理借书、还书业务流程的效率很低;其次处理能力比较低,一段时间内,所能服务的读者人数是很有限的。
为此,图书信息管理系统需要为企业解决上述问题,提供快速的图书信息检索功能及快捷的图书借阅、归还流程。
2.2系统目标
(1)设计界面友好、美观、数据存储安全、可靠。
(2)基本信息设置保证图书信息和读者信息的分类管理。
(3)强大的查询功能,保证数据查询的灵活性。
(4)实现对图书借阅、续借、归还过程的全程数据信息跟踪。
(5)设置读者借阅和图书借阅排行榜,为图书管理提供真实的数据信息。
(6)提供借阅到期提醒,使管理者可以及时了解到期的图书借阅信息。
(7)提供管理员修改自己密码的功能,保证系统的安全性。
(8)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
(9)采用人机对话的操作方式,方便管理员的日常操作。
(10)系统最大限度地实现了易维护性和易操作性。
2.3系统可行性分析
(1)技术可行性:
根据系统的功能、性能及实现系统的各项约束条件。
现有的技术及硬件软件都能够满足。
(2)经济可行性:
本系统建立在ASP.NET开发的基础上,项目开发成本非常小。
只需要有一台能够运行Windows系统的高档PC台式机即可,并不需要什么高的成本。
(3)运行可行性:
系统采用完全的图形化界面,易于管理,方便管理者查询设备信息,能够满足使用者的要求。
该系统应该提供简单的操作界面,能够快速的实现查书、借书、还书功能。
综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。
2.4系统运行开发环境
系统开发环境:
MicrosoftVisualStudio2008
系统开发语言:
ASP.NET
运行平台:
Windows7/WindowsXP
数据库:
SqlServer2008
Web服务器:
IIS6.0
三、总体设计
该系统主要分为两部分:
读者部分和管理员部分。
为了方便读者查找自己感兴趣的主题进行阅读,要将图书按照内容进行分类。
读者可以按照类别进行查找,逐级浏览、可以查看自己的信息。
本系统还可对用户的账号和书目的阅读权限进行管理。
管理员需要给用户分配用户名和密码,及设定用户的级别,还为用户提供图书的排行榜让用户能知道那些图书受到大家的欢迎。
3.1系统模块设计
1.登陆模块
●管理员账号登陆
●读者账号登陆
2.系统设置模块
●图书管设置
●管理员设置
●书架设置
3.读者管理设置模块
●读者类型管理
●读者档案管理
4.图书管理设置模块
●图书类型管理
●图书档案管理
5.图书借还模块
●图书借阅
●图书归还
6.系统查询模块
●图书档案查询
●图书借阅查询
7.排行榜模块
●图书借阅排行榜
8.更改口令
●更改密码
各个功能模块说明:
(1)系统登陆:
管理员登陆,读者登陆,不同的权限进行登陆。
(2)系统设置模块:
添加删除管理员、设置管理员的权限、说明图书存放书架信息添加删除书架信息。
(3)读者管理模块:
添加删除不同类型的读者及注明可借图书的数量、添加删除读者的档案。
(4)图书管理模块:
添加删除不同类型的的图书及注明图书可借的天数库存数量、添加删除图书的档案。
(5)图书借还模块:
可查询读者借阅和归还图书的信息及图书的现有库存量。
(6)系统查询模块:
可根据不同的条件(条形码、书名、类别、作者、书架、出版社)查询读者需要的图书、读者可根据不同的条件(图书条形码、图书名称、读者编号、读者名字、到期时间)查询自己借阅图书信息。
(7)排行榜模块:
可以让读者知道图书借阅的排行榜及读者借阅的排行榜。
(8)更改口令模块:
更改登录信息。
(9)系统退出模块:
退出系统。
3.2系统功能结构
根据图书管理系统的实际需求,可以将图书管理系统划分为登陆模块、系统设置、图书管理、读者管理、图书借还、系统查询、排行榜、更改口令、退出系统9个部分,各个部分的具体功能的系统功能结构图如图3-1所示
图3-1系统结构图
3.2系统流程图
图书管理系统的流程是用户先输入自己的账号密码及系统显示的验证码进入系统如有一项不符合则不能进入系统,成功登陆系统后系统根据登陆的账号信息从数据库中的数据进行对比判断是读者还是管理员,如果是读者则能进行信息查询,及修改自己的相关信息,查询到自己所需要的图书就能通过管理员进行借阅图书、归还图书也是通过管理员完成的。
如果不是读者而是管理员,那管理员可以进行相关信息的查询、添加删除图书及读者的所有信息、设置相应的权限、为图书更新排行榜的信息、以及完成读者的图书借阅与归还。
系统流程图如图6.5所示。
图3-2系统流程图
3.2数据库设计
图书管理系统通过对系统进行需求分析、系统流程图以及系统功能结构的确定,设计数据库,名称为db_tsrj,共9个表[11]。
(1)管理员权限设置表tb_admSet,如表3-3所示。
只有系统分配的用户才能操作图书馆管理系统,而用户的权限又各不相同。
表3-3管理员权限设置表
字段名
数据类型
长度
主键否
描述
userName
Varchar
80
否
管理员名称
systemSet
bit
1
否
系统设置
readerManage
bit
1
否
读者管理
bookManage
bit
1
否
图书管理
bookBorrow
bit
1
否
图书借还
systemSearch
bit
1
否
系统查询
(2)图书借阅表tb_bookBorrow,如表3-4所示。
图书借阅信息实体,用于存储所有图书借阅情况的信息,以准确地记录每本图书的借阅信息。
表3-4图书借阅表
字段名
数据类型
长度
主键否
描述
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-5所示。
图书馆对图书的分类,通常是将不同类型的图书分别放置在相应类型的书架上。
书架信息实体,用于存储图书馆中所有的书架信息。
表3-5书架信息表
字段名
数据类型
长度
主键否
描述
bookcaseID
Int
4
是
书架编号
bookcaseName
varchar
80
否
书架名称
(4)图书信息表tb_bookInfo,如表3-6所示。
不同的图书,会有不同的图书信息。
对这些图书信息进行详细的记录,方便了图书的分类和查询。
图书信息实体,用于存储所有图书的相关信息。
表3-6图书信息表
字段名
数据类型
长度
主键否
描述
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-7所示。
图书馆会有不同类型的图书,为了避免图书归类发生混乱,必须建立一个图书类型信息实体,用于存储图书的类型信息。
表3-7图书类型信息表
字段名
数据类型
长度
主键否
描述
typeID
Int
4
否
图书类型编号
typeName
varchar
50
否
类型名称
borrowDay
Int
4
否
可借天数
(6)图书馆信息表tb_library,如表3-8所示。
每个事物都会有其自身的历史背景,图书馆也不例外。
为了记录图书馆的历史背景及其相关的信息,需要建立一个图书馆信息实体,用于存储图书馆的有关信息。
表3-8图书馆信息表
字段名
数据类型
长度
主键否
描述
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-9所示。
当有读者借阅图书时,要对读者的各项信息进行记录,以方便归还图书和已借阅图书的历史查询,读者信息实体,用于存储所有借阅图书的读者信息。
表3-9读者信息表
字段名
数据类型
长度
主键否
描述
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-10所示。
在读者群体中,会有不同的分类,例如借阅图书的读者可能是教师、学生和市民等,所以对读者人群进行有效的分类是至关重要的。
读者类型信息实体,用于存储读者的类型信息。
表3-10读者类型信息表
字段名
数据类型
长度
主键否
描述
id
int
4
是
类型编号
type
varchar
50
否
类型名称
num
varchar
50
否
可借数量
(9)管理员信息表tb_user,如表3-11所示。
当管理员登录图书馆管理系统时,需要通过登录窗口验证成功后才能进入系统主页。
管理员信息实体,用于存储管理员的登录名称和登录密码。
表3-11管理员信息表
字段名
数据类型
长度
主键否
描述
userId
int
4
是
管理员编号
userName
varchar
50
否
管理员名称
userPwd
varchar
50
否
管理员密码
四、详细设计
4.1网站登陆模块设计
根据图书管理系统的功能需求,图书管理系统划分为了登陆、系统设置、图书管理、读者管理、图书借还、系统查询、排行榜六个模块,部分模块实现如下所示。
从系统功能需求分析中,我们可以看出对于系统功能的操作,分为两部分人群操作。
在进入系统进行各项具有相关权限操作功能的操作之前,首先会先进入登录界面,在此需要输入相关的登录名和密码,管理员登录,登录运行界面如图4-1所示:
图4-1登陆页面
4.2系统设置模块
系统设置模块包括管理员权限设置页面、书架管理页面和图书馆信息页面,图书馆信息记录图书馆的各种相关信息,图书馆信息的E-R图,如图4-2所示。
图4-2图书管信息E-R图
根据图书馆E-R图设计出图书馆信息页面,选择“系统设置”/“图书馆信息”命令,进入到图书馆信息页面,页面运行,如图4-3所示。
图4-3图书管信息页面
管理员设置页面主要包括查看管理员列表、添加管理员、管理员权限设置和删除管理员4个功能。
选择“系统设置”/“管理员设置”命令,进入到管理员设置页面。
在此页面中将显示所有管理员的名称和管理员拥有的权限。
单击“添加管理员”连接按钮将弹出添加管理员页面对话框,在此对话框中可以添加新的管理员,新添加的管理员默认拥有图书借还权限和系统查询权限。
管理员设置页面,如图4-4所示。
图4-4管理员设置页面
4.3图书借还模块
在图书借还模块中,主要应该有图书借阅和图书归还这3个功能。
在图书借阅页面中,输入读者条形码,点击“查找读者”按钮,下面可以显示出系统中已经存在的读者的各种信息。
页面设计如图4-5所示。
图4-5图书借阅页面
图书归还模块中,根据输入的读者条形码,显示出读者的信息和读者借阅未还的图书信息,如果归还某本书,则输入图书条形码,单击“查找”,然后在该图书中点击“归还”,该页面的运行效果略。
4.4系统查询模块
系统查询模块包括图书档案查询页面和图书借阅查询页面。
图书档案查询页面中可以根据不同的查询条件对图书信息进行查询,在查询过程中用到了模糊查询的方法,即使不知道查询的具体信息也能把想得到的数据给查询出来,页面运行效果图如图4-6所示。
如图4-6图书档案查询页面
部分代码如下:
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;
///
///AdminManage的摘要说明
///
publicclassAdminManage
{
publicAdminManage()
{
//
//TODO:
在此处添加构造函数逻辑
//
}
DataBasedata=newDataBase();
#region定义管理员信息--数据结构
privatestringid="";
privatestringname="";
privatestringpwd="";
///
///管理员编号
///
publicstringID
{
get{returnid;}
set{id=value;}
}
///
///管理员名称
///
publicstringName
{
get{returnname;}
set{name=value;}
}
///
///管理员密码
///
publicstringPwd
{
get{returnpwd;}
set{pwd=value;}
}
#endregion
#region自动生成管理员编号
///
///自动生成管理员编号
///
///
publicstringGetAdminID()
{
DataSetds=GetAllAdmin("tb_admin");
stringstrAdminID="";
if(ds.Tables[0].Rows.Count==0)
strAdminID="GLY1001";
else
strAdminID="GLY"+(Convert.ToInt32(ds.Tables[0].Rows[ds.Tables[0].Rows.Count-1][0].ToString().Substring(3,4))+1);
returnstrAdminID;
}
#endregion
#region添加--管理员信息
///
///添加--管理员信息
///
///
///
publicintAddAdmin(AdminManageadminmanage)
{
SqlParameter[]prams={
data.MakeInParam("@id",SqlDbType.VarChar,50,adminmanage.ID),
data.MakeInParam("@name",SqlDbType.VarChar,50,adminmanage.Name),
data.MakeInParam("@pwd",SqlDbType.VarChar,30,adminmanage.Pwd),
};
return(data.RunProc("INSERTINTOtb_admin(id,name,pwd)VALUES(@id,@name,@pwd)",prams));
}
#endregion
#region修改--管理员信息
///
///修改--管理员信息
///
///
///
publicintUpdateAdmin(AdminManageadminmanage)
{
SqlParameter[]prams={
data.MakeInParam("@name",SqlDbType.VarChar,50,adminmanage.Name),
data.MakeInParam("@pwd",SqlDbType.VarChar,30,adminmanage.Pwd),
};
return(dat