面向对象图书管理系统.doc
- 文档编号:1468514
- 上传时间:2022-10-22
- 格式:DOC
- 页数:9
- 大小:127.28KB
面向对象图书管理系统.doc
《面向对象图书管理系统.doc》由会员分享,可在线阅读,更多相关《面向对象图书管理系统.doc(9页珍藏版)》请在冰豆网上搜索。
面向对象课程设计报告
——图书馆管理系统
班级:
学号:
、
姓名:
、
一、课程设计题目
图书馆管理系统
二、需求分析
数据库应用系统简介
SQLServer2005数据库是微软公司精心打造的企业级数据库平台产品,该产品不仅包含了丰富的企业及数据管理功能,还集成了商业智能等特性。
数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。
它主要包括四个要素:
用户数据、元数据、索引和应用元数据。
图书管理系统
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
在图书管理系统中,要为每位读者建立一个帐户,帐户中存储着读者的个人信息和借阅信息。
读者借阅图书要通过管理员来实现,即读者并不直接与系统进行交互,而是管理员充当读者的代理与系统进行交互。
在借阅图书时,第一步需要输入图书ID与读者ID,输入完成后系统提交所填表格信息;第二步系统将验证读者是否有效,并查询数据库以确认借阅图书是否存在。
只有这两个条件都被满足时,借阅请求才被接受,读者才可以借出图书。
同时,系统还要保存读者的借阅记录,以便读者归还图书后,系统可以删除被借阅图书的借阅记录。
三、概要设计
图书馆管理信息系统需要完成功能主要有:
1.读者基本信息的输入,包括借书证编号、读者姓名、读者性别。
2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。
3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。
4.书籍类别信息的查询、修改,包括类别编号、类别名称。
5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。
6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。
7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。
8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。
9.还书信息的输入,包括借书证编号、书籍编号、还书日期。
10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。
11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。
12.超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等
关系模式
(一)书籍类别(种类编号,种类名称)
(二)读者(借书证编号,读者姓名,读者性别,读者种类,登记时期)
(三)书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)
(四)借阅(借书证编号,书籍编号,读者借书时间)
(五)还书(借书证编号,书籍编号,读者还书时间)
(六)罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)
全组成员
成员分工
四、详细设计
1、图书管理信息系统可以划分的实体有:
书籍类别信息实体、读者信息实体、书籍信息实体、借阅记录信息实体,归还记录信息实体。
书籍类别实体
读者姓名
类别名称
2、读者信息
读者信息实体
读者借书证编号
读者姓名
读者性别
读者种类e
登记时间
3、信息实体
书籍信息实体
书籍编号
书籍名称
书籍类别编号
书籍作者
出版时间
收录时间
是否被借
出版社
2.2数据流程图
源代码
查询并读入读者信息以及读者已经借书的信息
privatevoidtxt1_KeyPress(objectsender,System.Windows.Forms.KeyPressEventArgse)
{
if(e.KeyChar==13&&txt1.Text.Trim()!
="")
{
txt2.Clear();
txt3.Clear();
txt4.Clear();
this.showInfo();//显示读者信息
}
显示读者信息和所借图书信息
privatevoidshowInfo()
{
stringstrConn="DataSource=.;InitialCatalog=libbook;IntegratedSecurity=True";
SqlConnectioncn=newSqlConnection(strConn);
cn.Open();
SqlCommandcmd=cn.CreateCommand();
if(rbt1.Checked)//判断根据编号查询读者信息还是根据条形码
{
cmd.CommandText="selecta.姓名,a.类型,b.图书册书,a.编号from读者信息a,读者类型b"
+"where(a.类型=b.类型)and(a.编号='"+txt1.Text.Trim()+"')";
}
else
{
cmd.CommandText="selecta.姓名,a.类型,b.图书册书,a.编号from读者信息a,读者类型b"
+"where(a.类型=b.类型)and(a.条形码='"+txt1.Text.Trim()+"')";
}
SqlDataReaderdr=cmd.ExecuteReader();//执行查询,并读入读者数据
dr.Read();
if(dr.HasRows==false)//如未能查询到读者信息,则提示重新输入
{
MessageBox.Show("无此读者,请检查后重新输入","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
else
{
txt2.Text=dr.GetValue(0).ToString().Trim();//显示读者信息
txt3.Text=dr.GetValue
(1).ToString().Trim();
txt4.Text=dr.GetValue
(2).ToString().Trim();
readerID=dr.GetValue(3).ToString().Trim();
}
dr.Close();
stringstrCmd="selecta.状态,a.图书编号,b.书名,a.借阅时间,a.应还时间,b.出版社,b.价格"
+"from图书借阅a,图书信息bwhere(a.图书编号=b.编号)and(a.状态='未还')"
+"and(读者编号='"+readerID+"')";//查询读者所借书籍信息
SqlDataAdapterda=newSqlDataAdapter(strCmd,cn);
tblBooks.Clear();//清空借书记录
da.Fill(tblBooks);//读入读者借阅图书信息
totalCount=tblBooks.Rows.Count;//显示已借书数量和本次借书数量
thisCount=0;
label1.Text="已借书"+totalCount.ToString()+"本";
label2.Text="本次借书0本";
groupBox2.Enabled=true;//允许借书
txt5.Focus();//光标移动到输入图书编号文本框处,开始借书
}
读者借书
privatevoidborrowBook() if(this.totalCount>=Convert.ToInt32(txt4.Text.Trim()))//如果借书达到上限,则不允许再借
{
MessageBox.Show("已经达到最大借书数量,请先归还书籍后再借书","借书数量达到上限",MessageBoxButtons.OK,MessageBoxIcon.Information);
groupBox2.Enabled=false;
return;
}
stringstrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=libbook";
SqlConnectioncn=newSqlConnection(strConn);
cn.Open();
SqlCommandcmd=cn.CreateCommand();
DataRowaRow=tblBooks.NewRow();
stringbookType;//保存新借图书的类型
if(rbt3.Checked)
{
cmd.CommandText="select编号,书名,出版社,价格,类型from图书信息where编号='"+txt5.Text.Trim()+"'";
}
else
{
cmd.CommandText="select编号,书名,出版社,价格,类型from图书信息where条形码='"+txt5.Text.Trim()+"'";
}
SqlDataReaderdr=cmd.ExecuteReader();//执行查询,并读入图书数据
dr.Read();
if(dr.HasRows==false)//如未能查询到图书信息,则提示重新输入
{
MessageBox.Show("无此图书,请检查后重新输入","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
else
{
stringnewbookID=dr.GetValue(0).ToString();
foreach(DataRownewRowintblBooks.Rows)//不允许重复借书
{
if(newRow["图书编号"].ToString().Trim()==newbookID.Trim())
{
MessageBox.Show("该读者已经借有此书,不能再借","信息",MessageBoxButtons.OK,MessageBoxIcon.Warning);
return;
}
}
aRow["图书编号"]=dr.GetValue(0).To
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 图书 管理 系统