图书馆管理系统文档2.docx
- 文档编号:10352675
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:70
- 大小:2.81MB
图书馆管理系统文档2.docx
《图书馆管理系统文档2.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统文档2.docx(70页珍藏版)》请在冰点文库上搜索。
图书馆管理系统文档2
图书馆管理系统文档2
LT
●实现对图书借阅、续借、归还过程的全程信息服务跟踪。
●设置读者借阅和图书借阅排行榜,为图书馆管理提供真实的数据信息。
●提供借阅到期提醒功能,使管理者可以及时了解到期的图书借阅信息。
●提供管理员修改自己密码的功能,保证系统的安全性。
●提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
●采用人机对话的操作方式,方便管理员的日常操作。
●系统要最大限度地实现易维护性和易操作性。
1.3.2业务流程图
图书馆管理系统的系统流程如图1.1所示。
图1.1系统流程图
1.3.3系统功能结构
根据图书馆管理系统的特点,可以将其分为系统设置、读者管理、图书管理、图书借还、系统查询等部分,其中各个部分及其包括的具体功能模块如图1.2所示。
图1.2系统功能结构图
1.3.4系统预览
为使读者对图书馆管理系统有初步的了解,下面给出系统中的几个页面。
系统登录页面如图1.3所示,系统主页如图1.4所示。
图书借阅页面如图1.5所示,图书归还页面如图1.6所示。
图书管理页面如图1.7所示,图书信息打印页面如图1.8所示。
图1.3系统登录页面
图1.4系统主页
图1.5图书借阅页面
图1.6图书归还页面
图1.7图书管理页面
图1.8图书信息打印页面
1.3.5构建开发环境
1.网站开发环境网站开发环境:
MicrosoftVisualStudio2008集成开发环境。
网站开发语言:
ASP.NET+C#。
网站后台数据库:
SQLServer2005。
开发环境运行平台:
WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)
2.服务器端操作系统:
WindowsServer2003(SP1)。
Web服务器:
Internet信息服务管理器。
数据库服务器:
SQLServer2005。
浏览器:
速达。
网站服务器运行环境:
Microsoft.NETFrameworkSDKv2.0。
3.客户端浏览器:
速达。
分辨率:
最佳效果:
1024x768像素。
1.3.6数据库设计
本系统采用SQLServer2005数据库,名称为:
db_tsrj,其中包含9张表。
下面分别给出数据表概要说明、数据表E-R图及主要数据表的结构。
1.数据库概要说明从读者角度出发,为了使读者对本系统的数据库中的数据表有一个更清晰的认识,我们设计了一个数据表树形结构图,如图1所示,其中包含系统所有数据表。
图1.9数据库并结构
2.数据库概要设计
通过对本系统的需求分析、系统流程设计以及系统功能结构的确定,规划出系统中使用的数据库实体对象,具体说明如下。
只有系统分配的用户才可以操作图书馆管理系统,而用户的权限又各不相同。
管理员权限设置信息实体E-R图如图1.10所示。
图1.10管理员权限设置信息实体E-R图
图书借阅信息实体,用于存储所有图书借阅情况的信息,以准确地记录每本图书的借阅情况。
图书借阅信息实体E-R图如图1.11所示。
图书馆对图书的分类,通常是将不同类型的图书分别放置在相应类型的书架上。
书架信息实体,用于存储图书馆中所有的书架信息。
书架信息实体ER图如图1.12所示。
图1.11图书借阅信息实体E-R图
图1.12书架信息实体E-R图
不同的书,会有不同的图书信息。
对这些信息进行详细的记录,方便了图书的分类和查询。
图书信息实体,用于存储所有图书的相关信息。
图书信息实体E-R图如图1.13所示。
图1.13图书信息实体E-R图
图书馆中会有不同类型的图书,为了避免图书归类发生混乱,必须建立一个图书类型信息实体,用于存储图书的类型信息。
图书类型信息实体E-R图如图1.14所示。
图1.14图书类型信息实体E-R图
每个事物都会有其自身的历史背景,图书馆也不例外。
为了记录图书馆的历史背景及其相关的信息,需要建立一个图书馆信息实体,用于存储与图书馆有关的信息。
图书馆信息实体E-R图如图1.15所示。
图1.15图书馆信息实体E-R图
当有读者借阅图书时,要对读者的各项信息进行记录,以方便归还图书和已借阅图书的历史查询。
读者信息实体,用于存储所有借阅图书的读者信息。
读者信息实体E-R图如图1.16所示。
图1.16读者信息实体E-R图
在读者群体中,会有不同的分类,例如借阅图书的读者可能是教师、学生和普通市民等,所以对读者人群进行有效的分类是至关重要的。
读者类型信息实体,用于存储读者的类型信息。
读者类型信息实体E-R图如图1.17所示。
图1.17读者类型信息实体E-R图
当管理员登录图书馆管理系统时,需要通过登录窗口验证成功后才能进入系统主页。
管理员信息实体,用于存储管理员的登录名称和登录密码。
管理员信息信息实体E-R图如图1.18所示。
图1.18管理员信息信息实体E-R图
3.数据库逻辑结构设计
在设计完数据库实体E-R图之后,需要根据实体E-R图设计数据表结构。
下面给出主要的数据表的数据结构和用途。
●tb_admSet(管理员权限设置表)。
表tb_admSet用于保存与管理员设置相关的信息,该表的结构如表1.1所示。
表1.1管理员权限设置表
字段名
数据类型
长度
是否关键
描述
userName
varchar
80
否
管理员名称
systemSet
bit
1
否
系统设置
readerManage
bit
1
否
读者管理
bookManage
bit
1
否
图书管理
bookBorrow
bit
1
否
图书借还
systemSearch
bit
1
否
系统查询
●tb_bookBorrow(图书借阅表)。
表tb_bookBorrow用于保存所有已借阅图书的信息,该表的结构如表1.2所示。
表1.2图书借阅表
字段名
数据类型
长度
是否主键
描述
bookBarcode
varchar
50
否
图书条形码
bookName
varchar
20
否
图书名称
borrowTime
datetime
8
否
借阅日期
returnTime
datetime
8
否
应还日期
readerBarCode
varchar
50
否
读者条形码
readerTime
varchar
20
否
读者姓名
isReturn
bit
1
否
是否归还
●tb_bookcase(书架信息表)。
表tb_bookcase用于保存书架的详细信息,该表的结构如表1.3所示。
字段名
数据类型
长度
是否主键
描述
bookcaseID
int
4
是
书架编号
bookcaseName
varchar
80
否
书架名称
●tb_bookInfo(图书信息表)。
表tb_bookInfo用于保存与图书相关的所有信息,该表的结构如表1.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
否
借阅次数
●tb_bookType(图书类型信息表)。
表tb_bookType用于保存图书类型信息,该表的结构如表1.5所示。
字段名
数据类型
长度
是否主键
描述
typeID
int
4
否
图书类型编号
typeName
varchar
5
否
类型名称
borrowDay
int
10
否
可借天数
●tb_library(图书馆信息表)。
表tb_library用于保存与图书馆相关的信息,该表的结构如表1.6所示。
字段名
数据类型
长度
是否主键
描述
libraryName
varchar
80
否
图书馆名称
curator
varchar
80
否
馆长名称
tel
varchar
100
否
联系电话
address
varchar
200
否
联系地址
varchar
100
否
电子邮件
net
varchar
200
否
网址
upbuildTime
datetime
8
否
建管时间
remark
varchar
500
否
备注
●tb_readerInfo(读者信息表)。
表tb_readerInfo用于保存所有读者信息,该表的结构如表1.7所示。
字段名
数据类型
长度
是否主键
描述
readerBarCode
varchar
50
否
读者条形码
readerName
varchar
50
否
读者名称
sex
char
10
否
读者性别
readerType
varchar
50
否
读者类型
certificateType
varchar
50
否
证件类型
certificate
varchar
50
否
证件号码
tel
varchar
50
否
联系电话
varchar
50
否
电子邮件
remark
varchar
500
否
备注
●tb_readerType(读者类型信息表)。
表tb_readerType用于保存所有读者类型信息,该表的结构如表1.8所示。
字段名
数据类型
长度
是否主键
描述
id
int
4
是
类型编号
type
varchar
50
否
类型名称
num
varchar
50
否
可借数量
●tb_user(管理员信息表)。
表tb_user用于保存所有管理员信息,该表的结构如表1.9所示。
字段名
数据类型
长度
是否主键
描述
userId
int
4
是
管理员编号
userName
varchar
50
否
管理员名称
userPwd
varchar
50
否
管理员密码
1.3.7文件夹组织机构
为了便于读者对本网站的学习,在此将网站文件的组织结构展示出来,如图1.19所示。
图1.19系统文件组织结构图
1.4公共类设计
在开发过程中,经常会用到一些公共模块,如数据库连接及操作的类、字符串处理的类等,因此,在开发系统前首先需要设计这些公共模块。
下面将具体介绍图书馆管理系统中所需要的数据库操作类。
数据库操作类用来完成数据库的连接操作,以及数据库的查询、添加、删除和修改操作。
将这几种操作编写到一个公共类里,可以减少重复代码的编写,有利于代码的维护。
在dataOperate类中一共定义了5个方法,下面分别对这几个方法进行分析。
首先在命名空间区域引用usingSystem.Data.SqlClient命名空间。
代码如下:
usingSystem.Data.SqlClient;
●creatCon()方法。
creatCon()方法用来连接数据库,此方法返回的类型为SqlConnection。
代码如下:
例程01
publicstaticSqlConnectioncreatCon()
{
//生成SqlConnection的一个对象用于连接数据库
SqlConnetcioncon=newSqlConnection("server=.;database=db_WL;uid=sa;pwd=;");returncon;
}
●execSQL()方法
execSQL(stringsql)方法用来添加、插入和删除数据。
此方法返回一个布尔型值,用来表示添加、插入和删除数据是否成功,执行成功返回true,否则返回false。
调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。
代码如下:
例程02
publicstaticboolexecSQL(stringsql)
{
//创建连接对象
SqlConnectioncon=createCon();
con.Open();
SqlCommandcom=newSqlCommand(sql,con);
try
{
//执行SQL语句
com.ExecuteNonQuery();
//关闭连接对象
con.Close();
}
catch(Exceptione)
{
con.Close();
//执行失败返回false
returnfalse;
}
//执行成功返回true
returntrue;
}
●selsSQL()方法
execSQL(stringsql)方法用来查找数据是否存在。
此方法返回一个布尔型值,用来表示是否查找到数据,如查找到数据则返回true,否则返回false。
调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。
代码如下:
例程03
publicstaticboolseleSQL(stringsql)
{
Inti;
SqlConnectioncon=createCon();
con.Open();
SqlCommandcom=newSqlCommand(sql,con);
try
{
i=Convert.ToInt32(com.ExecuteScalar());
con.Close();
}
catch(Exceptione)
{
con.Close();
returnfalse;
}
if(i>0)
{
returntrue;
}
else
{
returnfalse;
}
}
●getDataset()方法
getDataset(stringsqlstringtable)方法用来查找并返回多行数据。
此方法返回一个Dataset数据集。
在调用此方法时应传入两个string类型的参数,第一个参数表示所要执行的SQL语句,第二个参数表示表名。
代码如下:
例程04
publicstaticDataSetgetDataset(stringsql,stringtable)
{
SqlConnectioncon=createCon();
con.Open();
DataSetds;
SqlDataAdaptersda=newSqlDataAdapter(sql,con);
ds=newDataSet();
sda.Fill(ds,table);
returnds;
}
●getRow()方法
getRow(stringsql)方法用来查找并返回一行数据。
此方法返回一个SqlCommand对象。
在调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。
代码如下:
例程05
publicstaticSqlDataReadergetRow(stringsql)
{
SqlConnectioncon=createCon();
con.Open();
SqlCommandcom=newSqlCommand(sql,con);
returncom.ExecuteReader();
}
1.5网站首页设计
1.5.1网站首页概述
管理员通过系统登录模块的验证后,可以登录到图书馆管理系统的主页。
系统主页主要包括Banner信息栏、导航栏、借阅排行榜和版权信息4部分。
网站首页运行效果如图1.20所示
图1.20图书馆管理系统首页
1.5.2网站首页技术分析
在开发网站时,如果使用GridView控件显示信息,为其添加一个自动编号列,是一个比较有用的功能,可以一目了然地看到当前页共有多少条记录。
在图书馆管理系统的首页开发中用到了这一技术,实现按照借阅次数的多少进行排名的功能。
在实现自动编号功能时,主要触发了GridView控件的RowDataBound事件,该事件详细说明如下。
RowDataBound事件:
呈现GridView控件之前,该控件中的每一行都必须绑定到数据源中的一条记录。
将某个数据行绑定到GridView控件中的数据以后,将引发RowDataBound事件。
网站首页在实现自动编号功能时,主要是通过在GridView控件的RowDataBound事件中动态修改GridView控件中的第一列的值实现的。
GridView控件的RowDataBound事件中实现的代码如下:
if(e.Row.RowIndex!
=-1)//判断GridView控件中是否有值
{
intid=e.Row.RowIndex+1;//将当前行的索引加上一赋值给变量id
e.Row.Cells[0].Text=id.ToString();//将变量id的值传给GridView控件的每一行的单元格中
}
1.5.3网站首页实现过程1.设计步骤
(1)在该网站中新建一个Web窗体,将其命名为index.aspx,用于显示网站首页。
(2)在Web窗体中添加Table表格,用于页面的布局。
(3)在Table表格中添加相关的服务器控件,控件的属性设置其用途如表1.10所示。
控件类型
控件名称
主要属性设置
控件用途
gvBookTaxis
AutoGenerateColumns属性设置为False(去掉GridView控件自动生成的列)
显示图书借阅排行榜
Header.ascx
均为默认值
网站导航功能
Bottom.ascx
均为默认值
网站版本信息
表1.10页面中控件属性及用途
1.实现代码
首先导入必要的命名空间usingSystem.Data.SqlClient.引入命名空间的代码如下:
usingSystem.Data.SqlClient;
在page_Load单击事件中,利用Session对象判断用户登录的状态,如果Session中存在的变量为空,说明用户未登录,页面将跳转到登录页面;如果用户已登录,则调用自定义方法bindBookInfo().代码如下:
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["userName"]!
=null)//判断用户是否登录
{
bindBookInfo();//调用自定义方法用来绑定图书借阅排行
}
else
Response.Redirect("entry.aspx");//跳转到登录页面
}
bindBookInfo()自定义方法用来显示图书借阅排行榜,在此方法中使用数据库操作类中的getDataset()方法,查找出借阅率高的图书信息绑定到GridView控件上。
实现代码如下:
protectedvoidbindBookInfo()
{
stringsql="selecttop10*fromtb_bookInfoorderbyborrowSumdesc";//设置SQL语句
gvBookTaxis.DataSource=dataOperate.getDataset(sql,"tb_bookInfo");//获取图书信息数据源
gvBookTaxis.DataBind();//绑定GridView控件
}
在图书信息表中,图书类型存储的是类型的编号,为了查看方便将图书类型编号转换为类型名称。
此功能在GridView控件的RowDataBound事件中实现,在此事件中先获取图书类型的编号,通过编号在图书类型表中获取类型名称,将类型名称绑定到图书类型列中。
实现代码如下:
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;"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 文档