图书管理系统的设计论文Word文件下载.docx
《图书管理系统的设计论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统的设计论文Word文件下载.docx(26页珍藏版)》请在冰点文库上搜索。
(2)兼容性良好
由于今天Windows操作系统占领着主导地的位,选择SQLServer一定会在兼容性方面取得一些优势。
另外,SQLServer2005除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。
尤其是它可以直接存贮XML数据,可以将搜索结果以XML格式输出等特点,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。
这些特点在.NET战略中发挥着重要的作用。
(3)电子商务
在使用由MicrosoftSQLServer2005关系数据库引擎的情况下,XML数据可在关系表中进行存储,而查询则能以XML格式将有关结果返回。
此外,XML支持还简化了后端系统集成,并实现了跨防火墙的无缝数据传输。
你还可以使用HypertextTransferProtocol(超文本传输协议,HTTP)来访问SQLServer2005,以实现面向SQLServer2005数据库的安全Web连接和无须额外编程的联机分析处理(OLAP)多维数据集。
(4)数据仓库
MicrosoftSQLServer2005非常明显的改进就是增加了OLAP(联机分析处理)功能,这可以让很多中小企业用户也可以使用数据仓库的一些特性进行分析。
OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。
数据挖掘功能能够揭示出隐藏在大量数据中的倾向及趋势,它允许组织或机构最大限度的从数据中获取价值。
通过对现有数据进行有效分析,这一功能可以对未来的趋势进行预测。
3系统需求分析
随着互联网的爆炸性发展,人们越来越习惯于利用网络来实现所需的服务,网络已深深影响到人们生活的各个方面。
另外,传统的图书馆不能满足一部分现代人的需要,而电子阅览室,由于其不受时间与空间的限制同时又具有传统图书馆的大部分功能,能够满足各类用户的常规与特殊需求,而且其方便快捷,实现技术又比较成熟,因此受到当代人的喜爱。
该系统主要分为两部分:
读者部分和管理员部分。
为了方便读者查找自己感兴趣的主题进行阅读,要将图书按照内容进行分类。
读者可以按照类别进行查找,逐级浏览、可以查看自己的信息。
本系统还可对用户的账号和书目的阅读权限进行管理。
管理员需要给用户分配用户名和密码,及设定用户的级别,还为用户提供图书的排行榜让用户能知道那些图书受到大家的欢迎。
(1)系统设置模块:
添加删除管理员、设置管理员的权限、说明图书存放书架信息添加删除书架信息。
(2)读者管理模块:
添加删除不同类型的读者及注明可借图书的数量、添加删除读者的档案。
(3)图书管理模块:
添加删除不同类型的图书及注明图书可借的天数库存数量、添加删除图书的档案。
(4)图书借还模块:
可查询读者借阅和归还图书的信息及图书的现有库存量。
(5)系统查询模块:
可根据不同的条件(条形码、书名、类别、作者、书架、出版社)查询读者需要的图书、读者可根据不同的条件(图书条形码、图书名称、读者编号、读者名字、到期时间)查询自己借阅图书信息。
(6)排行榜模块:
可以让读者知道图书借阅的排行榜及读者借阅的排行榜。
3.1系统功能结构图
根据图书管理系统的实际需求,可以将图书管理系统划分为系统设置、图书管理、读者管理、图书借还、系统查询、排行榜6个部分各个部分的具体功能的系统功能结构图如图3-1所示。
图3-1系统功能结构图
(1)图书借阅系统完成用户的借书过程其数据流图如图3-2所示。
图3-2借阅系统的数据流图
(2)还书系统完成图书的归还过程其数据流图如图3-3所示。
图3-3归还系统的数据流图
(3)图书档案管理系统为用户提供图书档案信息其数据流图如图3-4所示。
图书档案
图3-4图书档案管理数据流图
(4)读者档案系统用于记录读者的详细信息其数据流图如图3-5所示。
图3-5读者档案管理数据流图
3.2系统流程图
图书管理系统的流程是用户先输入自己的账号密码及系统显示的验证码进入系统如有一项不符合则不能进入系统,成功登陆系统后系统根剧登陆的账号信息从数据库中的数据进行对比判断是读者还是管理员,如果是读者则能进行信息查询,及修改自己的相关信息,查询到自己所需要的图书就能通过管理员进行借阅图书、归还图书也是通过管理员完成的。
如果不是读者而是管理员,那管理员可以进行相关信息的查询、添加删除图书及读者的所有信息、设置相应的权限、为图书更新排行榜的信息、以及完成读者的图书借阅与归还。
图书管理系统的系统流程图如图3-6所示。
’
图3-6图书管理系统的流程图、
4.图书管理系统的系统E-R图
图书管理系统的系统E-R图如图4-5所示。
m
1
n
图4-5图书管理系统的系统E-R图
4.1数据表设计
本系统使用的数据库管理系统为SQLServer2005。
数据库中的表有管理员信息表、图书信息表、读者信息表、管理员权限表、图书借阅归还表等。
图书管理员基本信息表tb_admin,如表4-6所示
表4-6tb_admin(管理员)表。
字段名
数据类型
长度
主键
描述
id
Varchar
50
是
管理员编号
name
否
管理员名称
pwd
30
密码
读者详细信息表tb_reader,如表4-7所示。
表4-7tb_reader(读者信息)表
读者编号
读者名称
sex
Char
4
性别
type
读者类型
birthday
smalldatetime
生日
paperType
20
证件类型
paperNum
证件号码
tel
电话
email
E-mail
createDate
注册日期
oper
操作员
remark
Text
16
备注
borrownum
Int
否
借阅次数
图书详细信息表tb_bookkifo,如表4-8所示。
表4-8tb_bookkifo(图书信息)表
Bookcode
图书条形码
bookname
图书名称
图书类型
autor
作者
translator
译者
pubname
100
出版社
price
Money
8
价格
page
页码
bcase
书架
storage
Bigint
存储数量
inTime
Smalldatetime
入馆时间
被借次数
图书借阅和归还信息表tb_borrowandback,如表4-9所示。
表4-9tb_borrowandback(图书借阅和归还信息)表
借书编号
readid
bookcode
borrowTime
借书时间
ygbackTime
应该还书时间
sjbackTime
实际还书时间
borrowoper
借书操作
backoper
还书操作
isback
Bit
是否归还
权限信息表tb_purview,如表4-10所示。
表4-10tb_purview(权限信息)表
Id
用户编号
syset
系统设置
readset
读者管理
bookset
图书管理
borrowback
图书借还
syaquery
系统查询
}
5.图书信息管理模块
图书信息管理模块主要分为查看图书信息页面和添加修改图书信息页面,用户可以在查看图书信息页面查看图书的基本信息,管理员也可以看这些信息,并且可以通过单击“添加图书信息”这个超级链接或GridView控件中的“详情”超级链接转到添加或删除图书信息界面,并在该页中添加或修改图书信息,如图5-2与5-3所示。
图5-2添加或修改图书信息界面
图5-3查看图书信息界面
添加图书信息模块实现
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;
publicpartialclassBookManage_AddBook:
System.Web.UI.Page
{
ValidateClassvalidate=newValidateClass();
BookcaseManagebookcasemanage=newBookcaseManage();
BTypeManagebtypemanage=newBTypeManage();
BookManagebookmanage=newBookManage();
protectedvoidPage_Load(objectsender,EventArgse)
{
this.Title="
添加/修改图书信息页面"
;
if(!
IsPostBack)
DataSetbcaseds=bookcasemanage.GetAllBCase("
tb_bookcase"
);
ddlBCase.DataSource=bcaseds;
ddlBCase.DataTextField="
name"
ddlBCase.DataBind();
DataSetbtypeds=btypemanage.GetAllBType("
tb_booktype"
ddlBType.DataSource=btypeds;
ddlBType.DataTextField="
typename"
ddlBType.DataBind();
if(Request["
bookcode"
]==null)
btnAdd.Enabled=true;
txtInTime.Text=DateTime.Now.ToShortDateString();
}
else
btnSave.Enabled=true;
txtBCode.ReadOnly=txtBName.ReadOnly=true;
txtBCode.Text=Request["
].ToString();
bookmanage.BookCode=txtBCode.Text;
DataSetbookds=bookmanage.FindBookByCode(bookmanage,"
tb_bookinfo"
txtBName.Text=bookds.Tables[0].Rows[0][1].ToString();
ddlBType.SelectedValue=bookds.Tables[0].Rows[0][2].ToString();
txtAuthor.Text=bookds.Tables[0].Rows[0][3].ToString();
txtTranslator.Text=bookds.Tables[0].Rows[0][4].ToString();
txtPub.Text=bookds.Tables[0].Rows[0][5].ToString();
txtPrice.Text=bookds.Tables[0].Rows[0][6].ToString();
txtPage.Text=bookds.Tables[0].Rows[0][7].ToString();
ddlBCase.SelectedValue=bookds.Tables[0].Rows[0][8].ToString();
txtStorage.Text=bookds.Tables[0].Rows[0][9].ToString();
txtInTime.Text=bookds.Tables[0].Rows[0][10].ToString();
txtOper.Text=bookds.Tables[0].Rows[0][11].ToString();
protectedvoidbtnAdd_Click(objectsender,EventArgse)
ValidateFun();
if(bookmanage.FindBookByCode(bookmanage,"
).Tables[0].Rows.Count>
0)
bookmanage.BookName=txtBName.Text;
bookmanage.Type=ddlBType.SelectedValue;
bookmanage.Author=txtAuthor.Text;
bookmanage.Translator=txtTranslator.Text;
bookmanage.PubName=txtPub.Text;
bookmanage.Price=Convert.ToDecimal(txtPrice.Text);
bookmanage.Page=Convert.ToInt32(txtPage.Text);
bookmanage.Bcase=ddlBCase.SelectedValue;
bookmanage.Storage=Convert.ToInt32(txtStorage.Text)+Convert.ToInt32(bookmanage.FindBookByCode(bookmanage,"
).Tables[0].Rows[0][9].ToString());
bookmanage.InTime=Convert.ToDateTime(txtInTime.Text);
bookmanage.Oper=txtOper.Text;
bookmanage.UpdateBook(bookmanage);
bookmanage.Storage=Convert.ToInt32(txtStorage.Text);
bookmanage.AddBook(bookmanage);
Response.Redirect("
BookManage.aspx"
protectedvoidbtnSave_Click(objectsender,EventArgse)
protectedvoidbtnCancel_Click(objectsender,EventArgse)
txtBName.Text=txtAuthor.Text=txtTranslator.Text=txtPub.Text=txtPrice.Text=txtPage.Text=txtStorage.Text=txtOper.Text=string.Empty;
protectedvoidValidateFun()
if(txtBCode.Text=="
"
)
Response.Write("
<
script>
alert('
图书条形码不能为空!
'
location='
javascript:
history.go(-1)'
/script>
return;
if(txtBName.Text=="
图书名称不能为空!
validate.validateNum(txtPrice.Text))
图书价格输入有误!
validate.validateN