图书借阅管理系统C#报告.docx
《图书借阅管理系统C#报告.docx》由会员分享,可在线阅读,更多相关《图书借阅管理系统C#报告.docx(21页珍藏版)》请在冰点文库上搜索。
图书借阅管理系统C#报告
武汉工业学院
数学与计算机学院
2012-2013学年第一学期
数据库应用系统设计
题目:
图书借阅管理系统
专业:
软件工程系
班级:
xx
学号:
xx
姓名:
xx
指导老师:
xx
2013年 6月 6日
1需求分析
绝大多数管理人员已经认识到采用图书借阅管理系统的必要性,纷纷开发或选购适合本企业特点的图书借阅管理系统。
图书借阅管理系统具体以下优点:
⑴采用图书借阅管理系统,可以用集中的数据库将与图书借阅管理相关的信息全面、有机地联系起来,有效地减少了信息更新和查找中的重复劳动,保证了信息的相容性,从而大大地提高了工作效率。
⑵图书借阅管理系统有着易访问、易查询的信息库。
在没有采用和实施图书借阅管理系统之前,当管理人员要统计数字时,往往依赖于某个人或某些人来获取。
这种依赖于人的过程往往会因为花费的时间较长或某个人不在办公室而不能及时完成。
在采用和实施图书借阅管理系统之后,就会将依赖于人的过程改为依赖于计算机系统的过程。
管理人员只要获取了相应的权限,就可以随时进入系统,直接查阅相应的信息。
实施了图书借阅管理系统之后,不仅可以得到较为全面的、详细的、未经过过滤的第一手图书借阅信息,还可以从这些信息中得到某些有用的决策信息及灵感和启发,从而改进图书馆的管理及经营效率,避免或减少经营风险。
⑶采用和实施图书借阅管理系统不仅仅是为了提高工作效率。
应该看到,在实施图书借阅管理系统之后,可提高单位的形象。
2系统设计
系统功能图如下:
3数据库设计
1各表的物理结构:
BookMessage表:
其中的每个字段都不为空,Type只能为图书或杂志;
ReaderMessage表:
其中每个字段都不为空,Sex只能为男或女,Type只能为学生或管理员,Passwords默认值为123456;
BorrowMessage表:
其中每个字段都不为空;
2三个表的关系图:
2数据库的安全设计
软件系统方面
用户登录系统必须提供用户名和密码,选择相应角色,系统自动查询数据库判断用户名密码是否正确及是否符合用户所选择的的身份。
权限设置
本系统分为两个角色,管理员和学生。
管理员登录系统可以管理书籍信息,添加新的管理员和注销自己的账户;学生登录可以查看个人信息,查询书籍,借书,还书,查询借阅记录,查询已还书,查询未还书和注销自己的账户。
4图书借阅系统的实现
1登录窗体
⑴界面及最终运行效果如图4.1所示。
图4.1登录界面
⑵用户选择管理员或学生,填写用户名,如“aa”,然后输入密码,系统对输入的用户名及相应的密码进行校验。
具体流程图如下图所示:
图4.2密码验证流程图
⑶有关代码如下:
namespaceBooksManagementSystem
{
publicpartialclassload:
Form
{
publicstaticstringreaderindex=null;
publicload()
{
InitializeComponent();
}
privatevoidload_Load(objectsender,EventArgse)
{
}
privatevoidbt_load_Click(objectsender,EventArgse)
{
if(tb_user.Text.Trim()=="")
{
MessageBox.Show("请填写用户名!
");
return;
}
boolisStudent;
OleDbConnectionmycon;
OleDbDataAdaptermyda;
DataSetmyds;
stringstrSelect;
stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=BooksManagementSystem.mdb;PersistSecurityInfo=True";
if(rb_student.Checked==true)
{
strSelect="selectpasswordsfromReaderMessagewhereReaderIndex='"+tb_user.Text+"'andType='学生'";
isStudent=true;
//MessageBox.Show(strSelect);
}
else
{
strSelect="selectpasswordsfromReaderMessagewhereReaderIndex='"+tb_user.Text+"'andType='管理员'";
//MessageBox.Show(strSelect);
isStudent=false;
}
mycon=newOleDbConnection(strCon);
myda=newOleDbDataAdapter(strSelect,mycon);
myds=newDataSet();
myda.Fill(myds);
if(myds.Tables[0].Rows.Count>0)
{
if(tb_password.Text.Equals(myds.Tables[0].Rows[0][0].ToString()))
{
load.readerindex=tb_user.Text.ToString();
if(isStudent)
{
this.Hide();
StudentIndexSIndex=newStudentIndex();
SIndex.ShowDialog();
this.Show();
}
else
{
this.Hide();
ManagerIndexMIndex=newManagerIndex();
MIndex.ShowDialog();
this.Show();
}
}
else
{
MessageBox.Show("用户名错误或密码错误!
");
}
}
else
{
MessageBox.Show("用名错误或密码错误!
");
}
}
privatevoidbt_register_Click(objectsender,EventArgse)
{
Registerreg=newRegister();
reg.ShowDialog();
}
privatevoidbt_cancel_Click(objectsender,EventArgse)
{
this.Close();
}
}
}
2.学生首页
学生登录后,进入学生首页,如下图所示:
A.查询书籍可以有条件查询,如填写书籍编号,书名,作者,出版社任意几项,点击查询,则DataGridView控件会显示查询的书籍,无条件查询效果如下图:
B.借书要先查询书籍,然后在控件上点击你要借的书,最后点击借书,如果此书在库则提示借书成功,否则提示此书已借出,借书成功效果如下:
C.还书需要输入书籍编号进行还书,如果你借了此书且没还则提示还书成功,否则提示你未借此书,还书成功效果如下图:
D.查询借阅记录,查询已还书,查询未还书时,则控件会显示相应的信息,查询借阅记录的效果如下图:
E.点击个人信息,则会进入个人信息界面;
上述有关代码如下:
namespaceBooksManagementSystem
{
publicpartialclassStudentIndex:
Form
{
publicDataGridViewCellEventArgsborrowBook;
OleDbConnectionmycon;
OleDbDataAdaptermyda;
DataSetmyds;
boolisBorrow=false;
boolisSelect=false;
publicStudentIndex()
{
InitializeComponent();
}
publicvoidUpdate()
{
stringstrSelect="selectBookIndexas书º¨¦籍?
编À¨¤号?
BookNameas书º¨¦籍?
名?
称?
Authoras作Á¡Â者?
Publishas出?
版ã?
社¦?
JoinTimeas入¨?
库a时º¡À间?
Priceas价?
格?
Typeas类¤¨¤型¨ª,Stateas是º?
否¤?
在¨²库afromBookMessage";
boolisAll=true;
if(tb_bookindex.Text.Trim()!
="")
{
strSelect=strSelect+"whereBookIndex='"+tb_bookindex.Text+"'";
isAll=false;
}
if(tb_bookname.Text.Trim()!
="")
{
if(isAll)
{
strSelect=strSelect+"whereBookName='"+tb_bookname.Text+"'";
isAll=false;
}
else
{
strSelect=strSelect+"andBookName='"+tb_bookname.Text+"'";
}
}
if(tb_author.Text.Trim()!
="")
{
if(isAll)
{
strSelect=strSelect+"where[Author]='"+tb_author.Text+"'";
isAll=false;
}
else
{
strSelect=strSelect+"and[Author]='"+tb_author.Text+"'";
}
}
if(tb_publish.Text.Trim()!
="")
{
if(isAll)
{
strSelect=strSelect+"wherePublish='"+tb_publish.Text+"'";
isAll=false;
}
else
{
strSelect=strSelect+"andPublish='"+tb_publish.Text+"'";
}
}
myda=newOleDbDataAdapter(strSelect,mycon);
myds=newDataSet();
myda.Fill(myds);
dataGridView1.DataSource=myds.Tables[0];
}
privatevoidbt_querybook_Click(objectsender,EventArgse)
{
isBorrow=true;
Update();
}
privatevoidbt_borrow_Click(objectsender,EventArgse)
{
if(!
isBorrow)
{
MessageBox.Show("请?
先¨¨查¨¦询¡¥书º¨¦籍?
");
return;
}
if(!
isSelect)
{
MessageBox.Show("请?
选?
择?
书º¨¦籍?
");
return;
}
stringbookid;
if(borrowBook.RowIndex{
if(myds.Tables[0].Rows[borrowBook.RowIndex][7].ToString().Equals("False"))
{
MessageBox.Show("此ä?
书º¨¦已°?
借¨¨出?
");
return;
}
bookid=myds.Tables[0].Rows[borrowBook.RowIndex][0].ToString();
stringtime=DateTime.Now.ToShortDateString();
mycon.Open();
stringstrInsert="InsertintoBorrowMessage(ReaderIndex,BookIndex,BorrowTime,IsReturn)values('"+load.readerindex+"','"+bookid+"','"+time+"',false)";
OleDbCommandmycom=newOleDbCommand(strInsert,mycon);
mycom.ExecuteNonQuery();
stringstrUpdate="updateBookMessagesetState=falsewhereBookIndex='"+bookid+"'";
OleDbCommandmycom1=newOleDbCommand(strUpdate,mycon);
mycom1.ExecuteNonQuery();
mycon.Close();
Update();
isSelect=false;
MessageBox.Show("借¨¨书º¨¦成¨¦功|!
ê?
");
}
else
MessageBox.Show("请?
选?
择?
正y确¨¡¤的Ì?
书º¨¦籍?
!
ê?
");
}
privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse)
{
borrowBook=e;
isSelect=true;
}
privatevoidbt_return_Click(objectsender,EventArgse)
{
isBorrow=false;
if(tb_bookindex.Text.Trim()=="")
{
MessageBox.Show("请?
输º?
入¨?
书º¨¦籍?
编À¨¤号?
");
return;
}
stringstrSelect="select*fromBorrowMessagewhereBookIndex='"+tb_bookindex.Text+"'andIsReturn=False";
OleDbDataAdaptermyda1;
DataSetmyds1;
myda1=newOleDbDataAdapter(strSelect,mycon);
myds1=newDataSet();
myda1.Fill(myds1);
if(myds1.Tables[0].Rows.Count<=0)
{
MessageBox.Show("你?
没?
有®D借¨¨这a本À?
书º¨¦");
return;
}
mycon.Open();
stringtime=DateTime.Now.ToShortDateString();
stringstrUpdate="updateBookMessagesetState=truewhereBookIndex='"+tb_bookindex.Text+"'";
stringstrUpdate1="updateBorrowMessagesetIsReturn=true,ReturnTime='"+time+"'whereBookIndex='"+tb_bookindex.Text+"'andIsReturn=False";
OleDbCommandmycom=newOleDbCommand(strUpdate,mycon);
mycom.ExecuteNonQuery();
OleDbCommandmycom1=newOleDbCommand(strUpdate1,mycon);
mycom1.ExecuteNonQuery();
mycon.Close();
MessageBox.Show("还1书º¨¦成¨¦功|");
Update();
}
privatevoidbt_borrowrecord_Click(objectsender,EventArgse)
{
isBorrow=false;
stringstrSelect="selectAutoIdas编À¨¤号?
ReaderNameas读¨¢者?
姓?
名?
ReaderMessage.ReaderIndexas读¨¢者?
编À¨¤号?
BookNameas书º¨¦籍?
名?
称?
BookMessage.BookIndexas书º¨¦籍?
编À¨¤号?
Authoras作Á¡Â者?
Publishas出?
版ã?
社¦?
Priceas价?
格?
BorrowTimeas借¨¨书º¨¦时º¡À间?
ReturnTimeas还1书º¨¦时º¡À间?
IsReturnas是º?
否¤?
已°?
还1fromBorrowMessage,BookMessage,ReaderMessagewhereBorrowMessage.BookIndex=BookMessage.BookIndexANDBorrowMessage.ReaderIndex=ReaderMessage.ReaderIndexANDReaderMessage.ReaderIndex='"+load.readerindex+"'";
OleDbDataAdaptermyda1=newOleDbDataAdapter(strSelect,mycon);
DataSetmyds1=newDataSet();
myda1.Fill(myds1);
dataGridView1.DataSource=myds1.Tables[0];
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
isBorrow=false;
stringstrSelect="selectAutoIdas编À¨¤号?
ReaderNameas读¨¢者?
姓?
名?
ReaderMessage.ReaderIndexas读¨¢者?
编À¨¤号?
BookNameas书º¨¦籍?
名?
称?
BookMessage.BookIndexas书º¨¦籍?
编À¨¤号?
Authoras作Á¡Â者?
Publishas出?
版ã?
社¦?
Priceas价?
格?
BorrowTimeas借¨¨书º¨¦时º¡À间?
ReturnTimeas还1书º¨¦时º¡À间?
IsReturnas是º?
否¤?
已°?
还1fromBorrowMessage,BookMessage,ReaderMessagewhereBorrowMessage.BookIndex=BookMessage.BookIndexANDBorrowMessage.ReaderIndex=ReaderMessage.ReaderIndexandIsReturn=FalseANDReaderMessage.ReaderIndex='"+load.readerindex+"'";
OleDbDataAdaptermyda1=newOleDbDataAdapter(strSelect,mycon);
DataSetmyds1=newDataSet();
myda1.Fill(myds1);
dataGridView1.DataSource=myds1.Tables[0];
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
isBorrow=false;
stringstrSelect="selectAutoIdas编À¨¤号?
ReaderNameas读¨¢者?
姓?
名?
ReaderMessage.ReaderIndexas读¨¢者?
编À¨¤号?
BookNameas书º¨¦籍?
名?
称?
BookMessage.BookIndexas书º¨¦籍?
编À¨¤号?
Authoras作Á¡Â者?
Publishas出?
版ã?
社¦?
Priceas价?
格?
BorrowTimeas借¨¨书º¨¦时º¡À间?
ReturnTimeas还1书º¨¦时º¡À间?
IsReturnas是º?
否¤?
已°?
还1fromBorrowMessage,BookMessage,ReaderMessagewhereBorrowMessage.BookIndex=BookMessage.BookIndexANDBorrowMessage.ReaderIndex=ReaderMessage.ReaderIndexandIsReturn=TrueANDReaderMessage.ReaderIndex='"+load.readerindex+"'";
OleDbDataAdaptermyda1=newOleDbDataAdapter(strSelect,mycon);
DataSetmyds1=newDataSet();
myda1.Fill(myds1);
dataGridView1.DataSource=myds1.Tables[0];
}
privatevoidStudentIndex_Load(objectsender,EventArgse)
{
stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=BooksManagementSystem.mdb;PersistSecurityInfo=True";
mycon=newOleDbConnection(strCon);
}
privatevo