面向对象图书管理系统Word格式.doc
《面向对象图书管理系统Word格式.doc》由会员分享,可在线阅读,更多相关《面向对象图书管理系统Word格式.doc(9页珍藏版)》请在冰点文库上搜索。
![面向对象图书管理系统Word格式.doc](https://file1.bingdoc.com/fileroot1/2023-5/7/b46c9ae9-7f9d-41b1-b523-07668a85af73/b46c9ae9-7f9d-41b1-b523-07668a85af731.gif)
第二步系统将验证读者是否有效,并查询数据库以确认借阅图书是否存在。
只有这两个条件都被满足时,借阅请求才被接受,读者才可以借出图书。
同时,系统还要保存读者的借阅记录,以便读者归还图书后,系统可以删除被借阅图书的借阅记录。
三、概要设计
图书馆管理信息系统需要完成功能主要有:
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
where(a.类型=b.类型)and(a.条形码='
SqlDataReaderdr=cmd.ExecuteReader();
//执行查询,并读入读者数据
dr.Read();
if(dr.HasRows==false)//如未能查询到读者信息,则提示重新输入
MessageBox.Show("
无此读者,请检查后重新输入"
"
错误"
MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
{
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()))//如果借书达到上限,则不允许再借
已经达到最大借书数量,请先归还书籍后再借书"
借书数量达到上限"
MessageBoxButtons.OK,MessageBoxIcon.Information);
groupBox2.Enabled=false;
stringstrConn="
workstationid=localhost;
IntegratedSecurity=SSPI;
database=libbook"
DataRowaRow=tblBooks.NewRow();
stringbookType;
//保存新借图书的类型
if(rbt3.Checked)
select编号,书名,出版社,价格,类型from图书信息where编号='
+txt5.Text.Trim()+"
select编号,书名,出版社,价格,类型from图书信息where条形码='
//执行查询,并读入图书数据
if(dr.HasRows==false)//如未能查询到图书信息,则提示重新输入
无此图书,请检查后重新输入"
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).ToString();
书名"
]=dr.GetValue
(1).ToString();
出版社"
]=dr.GetValue
(2).ToString();
价格"
]=Convert.ToDecimal(dr.GetValue(3));
状态"
]="
新借"
借阅时间"
]=System.DateTime.Now.ToString();
bookType=dr.GetValue(4).ToString();
cmd.CommandText="
select可借天数from图书类型where类型名称='
+bookType+"
//计算归还时间
intdays=Convert.ToInt32(cmd.ExecuteScalar());
DateTimereturnTime=System.DateTime.Now.AddDays(days);
aRow["
应还时间"
]=returnTime.ToString();
tblBooks.Rows.Add(aRow);
//增加新借书记录
totalCount++;
thisCount++;
本次借书"
+thisCount.ToString()+"
五、程序使用说明、测试分析及结果
进入VisualStudio2010,创建一个新的“Windows应用程序”类型的项目,名为“图书馆管理”。
将默认创建的窗体命名为“图书馆管理系统”,把“图书馆管理系统”作为本系统中的主界面。
在窗体中添加一个菜单(MenuStrip)控件,一个工具栏(ToolStrip)控件。
本系统的用户非为普通用户和管理用户,管理用户具有系统提供的所有权限,普通用户可以查询图书、借阅图书。
管理员有权限将图书添加到数据库中,图书入库界面的设计.
在窗体的左边的分组框中添加标签和文本框,用来接收管理员输入的图书信息,以便保存到数据库中。
在右边的分组框中添加DataGridView控件,可以显示数据库中的图书信息,新添加的图书信息也可以显示出来。
根据图书馆中已有的图书信息,用户可以通过图书证号实现借阅。
六、课程设计总结
在这次项目工作中,虽然很辛苦,但收获也不少。
我们懂得众人拾柴火焰高,团队的合作不但节省时间,而且提高效率,从合作过程中,我们互相请教,也学了不少的东西,团队的成员在这过程中编写代码的能力也提高了不少;
我们懂得严谨的精神,编写代码过程中都要很细心,有时小小的错误,就会是给后期的改正增加难度;
我们也懂得做软件要有专注的精神,想做好软件,就要全心全意地投入进去。
回想这个过程,我们一步步克服苦难,也一步步积累我们的成就感,到做完软件那一刻,我们感到无比地兴奋。
我们也懂得了,做软件也是一件很幸福的事情。
l参考文献
1.王汝涌,
管理信息系统,中国财政经济,2001.7
2.张海藩,软件工程,清华大学出版社,2001.6
3.萨师煊、王珊《数据库系统概论(第二版)》高等教育出版社,2001.4
4.李红等编著,管理信息系统开发与应用,电子工业出版社,2003