数据库课程设计图书借阅管理系统.docx
《数据库课程设计图书借阅管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计图书借阅管理系统.docx(18页珍藏版)》请在冰点文库上搜索。
数据库课程设计图书借阅管理系统
毕业论文设计
题目:
图书借阅管理系统设计
院(系):
专业年级:
姓名:
某某某
学号:
0000000000
指导教师:
2012年月日
目录
1问题描述和要求1
2系统数据库设计3
3系统设计与实现6
4系统集成测试7
5附录9
参考文献15
1问题描述和要求
该系统是一个专门为学校图书管理而设计的系统。
学生从图书馆借书,对图书馆来说,学生好像书籍一样,都是先被注册到系统中的。
图书馆需要处理新买的图书,包括添加和删除等,图书管理员是图书馆的雇员,所有图书登记、读者注册的工作由图书管理员完成,他们负责和学生交互,该系统支持他们的工作。
图书馆要求系统能方便的建立、更新和删除存在该系统中有关书名、读者等信息,也能方便的登记图书的借出与归还等信息。
1.1系统分析
通过对现行图书馆业务的调查,明确了图书馆工作由图书管理、读者管理、借书服务和还书服务4部分组成。
对现有系统功能的描述如下:
(1)图书管理
对馆内的所有图书按类别统一编码;对各类图书建立图书登记卡,登记图书的主要信息。
新购的图书要编码和建卡,对遗失的图书要注销其图书登记卡。
(2)读者管理
建立读者信息表,对读者统一编号。
对新加盟的读者,将其信息加入到读者信息表中;对某些特定的读者,将其信息从读者信息表中删除。
当读者情况变化时,修改读者信息表中相应的记录。
(3)借书服务
未借出的图书要按类别上架,供读者查看。
建立借书登记卡,卡上记录着书号、读者姓名和编号、借书日期;将借书登记卡按读者单位、读者编号集中保管。
读者提出借书请求时,先查看该读者的借书卡,统计读者已借书的数量。
如果该读者无借书超期或超量情况,则办理借书手续。
办理借书手续的方法是:
填写借书登记卡,管理员核实后读者可将图书带走。
(4)还书服务
读者提出还书要求时,先对照相应的借书卡,确认书号和书名无误后可办理还书手续。
办理还书手续的方法是:
在借书卡上填写还书时间,管理员签名;将已还的借书卡集中保管;收回图书。
将收回的图书上架,供读者查看和借阅。
2系统数据库设计
2.1数据库概念结构设计
根据学生图书借阅管理系统的需求分析,我们可以先得到3个实体:
书、学生、管理员。
再分析他们之间的关系,管理员与书之间存在着一对多的联系,将该联系命名为登记,一个管理员可以登记多本图书,联系如图所示:
管理员与学生(也就是读者)之间也存在着一对多的联系,该联系命名为注册,一个管理员可以注册多名学生,联系如图所示:
管理员、书、学生(读者)之间存在着多对多的借阅联系,一个学生可以借阅多本图书,一个管理员可以办理多次借阅与归还,一本书可以被多名学生借阅,
因此3个实体与他们之间的联系如图所示:
根据系统需求分析,对每个实体我们分析相应的属性,图书管理员的属性有:
职工号、姓名、性别,读者的属性只有:
借书证号、姓名、性别、系别,书的属性只有:
书号、书名、作者、出版社、分类号。
将上述实体、属性、联系等集成,得到学生图书借阅管理系统完整的E-R模型图如下图所示:
2.2数据库逻辑结构设计
将图书馆管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:
管理员(职工号,姓名,性别,权限级别),
书(书号,书名,作者,出版社,分类号),
读者(借书证号,姓名,性别,系别),
根据1:
n联系的转换规则,我们把联系“登记”的属性即“读者权限”和管理员关系的主键即职工号加入到读者关系中,得到读者改进后的关系:
读者(借书证号,姓名,性别,系别,职工号),
这里职工号是外键。
根据1:
n联系的转换规则,我们把联系“注册”的属性即“入库时间”和管理员关系的主键即职工号加入到读者关系中,得到书改进后的关系:
书(书号,书名,作者,出版社,分类号,入库时间,职工号),
这里职工号也是外键。
将一个三元关系管理员、书、读者之间的借阅关系转换为一个关系:
借阅(职工号,借书证号,书号,借出日期,归还日期)。
所以最终得到的关系模型为:
管理员(职工号,姓名,性别,权限级别),
书(书号,书名,作者,出版社,分类号,入库时间,职工号),
读者(借书证号,姓名,性别,系别,职工号),
借阅(职工号,借书证号,书号,借出日期,归还日期)。
用英文命名的关系模式为:
Administrator(Ano,Aname,Asex,Aprivilege),
BOOK(Bno,Bname,Bauthor,Bpublisher,BTPno,Indate,Ano),
READER(Rno,Rname,Rsex,Rdept,Ano),
Borrow(Ano,Rno,Bno,Bdate,Rdata)。
3系统设计与实现
3.1系统体系结构及实现方法
图书馆管理系统采用B/S(浏览器/服务器)结构。
服务器主要任务是承担网络监听和实现客户端链接、数据库管理、数据存取和数据传输功能。
浏览器面向用户,承担着图书馆管理系统的管理和服务工作。
3.2系统工作环境及支撑软件
(1)服务器端的工作环境要求及支撑软件
操作系统:
WindowsXP或与之兼容的系统
数据库管理系统:
SQLServer2000企业版
数据库应用系统开发软件:
MicrosoftVisualStudio2008
(2)客户机的工作环境要求及支撑软件
操作系统:
Windows98或更高与之兼容的系统
数据库应用系统开发软件:
MicrosoftVisualStudio2008
4系统集成测试
4.1登录界面
4.2数据库后台关系图
5附录
1.数据库创建代码
CREATEDATABASEBOOKmanage
useBOOKmanage
go
createtableAdministrator
(
Anochar(10)primarykey,
Anamenvarchar(30)notnull,
Asexchar
(2),
Aprivilegechar(20)
)
go
createtableBOOK
(
Bnochar(10)primarykey,
Bnamenvarchar(30)notnull,
Bauthornvarchar(30),
Bpublishernvarchar(50),
BTPnochar(10),
Indatadatetime,
Anochar(10)
)
go
createtableREADER
(
Rnochar(10)primarykey,
Rnamenvarchar(30)notnull,
Rsexchar
(2),
Rdeptchar(20),
Anochar(10)
)
go
createtableBorrow
(
Anochar(10),
Rnochar(10),
Bnochar(10),
Bdatedatetime,
Rtimedatetime,
PRIMARYKEY(Ano,Rno,Bno),
foreignkey(Ano)referencesAdministrator(Ano),
foreignkey(Rno)referencesREADER(Rno),
foreignkey(Bno)referencesBOOK(Bno)
)
Go
2.网站后台部分代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Text;
usingSystem.Collections;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Web.UI.HtmlControls;
usingSystem.Configuration;
publicpartialclassAdministrator:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
//gridviewdiv.Style.Add("display","none");
gridviewdiv.Disabled=true;
gridviewdiv.EnableViewState=false;
}
///
///查询读者个人信息
///
///
///
protectedvoidbtqueryREADERinfo_Click(objectsender,EventArgse)
{
if(tbRnumber.Text=="")
{
Response.Write("alert('请输入要查询的借书证号');");
return;
}
stringconn=MySql.ConnectionStringLocalTransaction;
stringRno=tbRnumber.Text.ToString();
stringcmdstr="selectRnoas借书证号,Rnameas姓名,Rsexas性别,Rdeptas系别fromREADERwhere
Rno=@number";
SqlParametersqlpara=newSqlParameter("@Rnumber",SqlDbType.Char);
sqlpara.Value=tbRno.Text.ToString();
SqlParameter[]cmdparas={sqlpara};
DataSetds=MySql.ExecuteDataSet(conn,CommandType.Text,cmdstr,cmdparas);
GridView1.DataSource=ds;
GridView1.DataBind();
gridviewdiv.Disabled=false;
gridviewdiv.Disabled=false;
gridviewdiv.EnableViewState=true;
}
///
///查询图书信息
///
///
///
protectedvoidbtquerybook_Click(objectsender,EventArgse)
{
if(tbBnumber.Text=="")
{
Response.Write("alert('请输入要查询的书号');");
return;
}
stringconn=MySql.ConnectionStringLocalTransaction;
stringBno=tbBnumber.Text.ToString();
stringcmdstr="selectBnoas书号,Bnameas书名,Bauthoras作者,Bpublisheras出版社BTPnoas分类
号,Indateas入库时间,Anoas职工号fromBOOKwhereBno=@Bnumber";
SqlParametersqlpara=newSqlParameter("@Bnumber",SqlDbType.Char);
sqlpara.Value=tbBnumber.Text.ToString();
SqlParameter[]cmdparas={sqlpara};
DataSetds=MySql.ExecuteDataSet(conn,CommandType.Text,cmdstr,cmdparas);
GridView1.DataSource=ds;
GridView1.DataBind();
gridviewdiv.Disabled=false;
gridviewdiv.EnableViewState=true;
}
///
///查询读者借阅情况
///
///
///
protectedvoidbtqueryBorrow_Click(objectsender,EventArgse)
{
if(tbRnoBorrow.Text=="")
{
Response.Write("alert('请输入要查询的读者借书证号');");
return;
}
stringconn=MySql.ConnectionStringLocalTransaction;
stringBnumber=tbRnoBorrow.Text.ToString();
stringcmdstr="selectRnoas学号,BOOK.Bnoas书号,Bnameas书名,Btimeas借出时间,Rtimeas归还时间
fromBorrow,BOOKwhereRno=@RnumberandBowwer.Bno=BOOK.Bno";
SqlParametersqlpara=newSqlParameter("@Rnumber",SqlDbType.Char);
sqlpara.Value=tbRnoBorrow.Text.ToString();
SqlParameter[]cmdparas={sqlpara};
DataSetds=MySql.ExecuteDataSet(conn,CommandType.Text,cmdstr,cmdparas);
GridView1.DataSource=ds;
GridView1.DataBind();
gridviewdiv.Disabled=false;
gridviewdiv.EnableViewState=true;
}
///
///修改读者个人信息或添加新读者
///
///
///
protectedvoidbtchangeREADERinfo_Click(objectsender,EventArgse)
{
Buttonbt=(Button)sender;
if(bt.ID=="bttuinfoedit")
{
if(tbRno.Text.ToString()!
="")
{
stringRnumber=tbRno.Text.ToString().TrimEnd();
stringurl="READERinfoedit.aspx?
Rno="+snumber;
Response.Redirect(url);
}
else
{
Response.Write("alert('请输入要修改的读者借书证号');");
return;
}
}
else
{
stringurl="READERinfoedit.aspx?
Rno=addnew";
Response.Redirect(url);
}
}
protectedvoidbtBOOKedit_Click(objectsender,EventArgse)
{
Buttonbt=senderasButton;
if(bt.Text=="修改图书信息")
{
if(tbBnumber.Text!
="")
{
stringBnumber=tbBnumber.Text;
stringurl="BOOK.aspx?
cno="+Bnumber+"&btxiugai=xg";
Response.Redirect(url);
}
else
{
Response.Write("alert('请输入要修改的书号');");
return;
}
}
else
{
stringurl="BOOK.aspx?
btxiugai=btadd";
Response.Redirect(url);
}
}
protectedvoidbtBorrowedit_Click(objectsender,EventArgse)
{
if(tbRnoBorrow.Text!
="")
{
stringRnumber=tbRnoBorrow.Text;
stringurl="Browwer.aspx?
Rno="+Rnumber+"&btxiugai=xg";
Response.Redirect(url);
}
else
{
Response.Write("alert('请输入要修改的读者借书证号');");
return;
}
}
protectedvoidbtqueryallREADER_Click(objectsender,EventArgse)
{
stringconn=MySql.ConnectionStringLocalTransaction;
stringRno=tbRno.Text.ToString();
stringcmdstr="selectRnoas学号,Rnameas姓名,Rsexas性别,Rdeptas系别,Anoas职工号fromREADER";
SqlParameter[]cmdparas={};
DataSetds=MySql.ExecuteDataSet(conn,CommandType.Text,cmdstr,cmdparas);
GridView1.DataSource=ds;
GridView1.DataBind();
gridviewdiv.Disabled=false;
gridviewdiv.Disabled=false;
gridviewdiv.EnableViewState=true;
}
protectedvoidbtqueryallbook_Click(objectsender,EventArgse)
{
stringconn=MySql.ConnectionStringLocalTransaction;
stringcnumber=tbBnunber.Text.ToString();
stringcmdstr="selectBnoas书号,Bnameas书名,Bpublisheras出版社,Bauthoras作者,BTPnoas分类号,Indateas入库时间,Anoas职工号fromBOOK";
SqlParameter[]cmdparas={};
DataSetds=MySql.ExecuteDataSet(conn,CommandType.Text,cmdstr,cmdparas);
GridView1.DataSource=ds;
GridView1.DataBind();
gridviewdiv.Disabled=false;
gridviewdiv.EnableViewState=true;
}
}
参考文献
1.《数据库系统概论(第4版)》高等教育出版社;
2.《数据库设计》机械工业出版社;
3.《C#程序设计及应用教程(第2版)》人民邮电出版社。