图书馆管理系统.docx
- 文档编号:27509574
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:33
- 大小:594.34KB
图书馆管理系统.docx
《图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统.docx(33页珍藏版)》请在冰豆网上搜索。
图书馆管理系统
目录
图书馆管理系统1
一、课程设计的目的和意义1
二、需求分析1
三、概念结构设计(E-R图)3
四、逻辑结构设计4
五、数据库实施与维护4
六、界面设计与代码(用VB作为界面设计语言)8
七、结果分析25
八、参考文献25
图书馆管理系统
一、课程设计的目的和意义
图书馆管理系统是图书馆管理工作中不可缺少的一部分,它对图书馆的管理者和使用者都是非常重要的。
图书馆管理系统应该为图书馆管理者与读者提供充足的信息和快捷的处理手段。
一个成功的图书馆管理系统应该提供快速的图书检索功能、快速的图书借阅和归还流程。
设计图书馆管理系统可以涉及到大多数Access数据库的重要数据库对象、重要功能和特性,从而掌握使用应用软件开发工具开发数据库管理系统的基本方法。
本课程设计的主要目的是学习和练习Access数据库的实际应用,所以选择Access2000作为数据库服务器。
二、需求分析
图书馆管理系统从读者与图书馆管理员的角度出发,本着以读者借书、还书快捷、方便的原则。
设计图书馆管理系统的系统功能结构如下:
包括信息设置、借阅管理、报表打印共三个部分。
具体功能如下:
●图书检索、新书订购、读者信息查询。
●图书的借阅、归还、续借。
●图书的验收报表打印
系统功能结构图如图所示:
系统的流程分析图如下:
三、概念结构设计(E-R图)
四、逻辑结构设计
将E-R图转换成关系模式:
图书(书籍名称,类别代码,作者,出版社,订购价格,复本数,附件,条码号,规定天数,ISBN,借书数量)
读者信息(读者编号,读者姓名,性别,出生日期,单位,家庭住址,家庭电话,手机号码,传真号码,Email,证件类型,证件号码,登记日期,读者类别,备注)
读者借书(读者编号,书籍名称,条码号,书籍价格,规定天数,出版社,作者,借书数量,类别代码,借书日期,应还日期)
读者还书(条码号,读者编号,书籍名称,书籍价格,出版社,作者,规定天数,借出日期,借出日期,还书日期,实际天数,超出天数)
订书(订单号,订购日期,订购人,书籍名称,类别代码,作者,出版社,出版日期,版次,订购价格,附件,条码号,ISBN,是否验收)
五、数据库实施与维护
建立数据库打开Access2000管理器,建立数据库:
db_library添加数据表在db_library数据库中,添加表如图所示
建立相应的表:
图书表:
读者信息表:
新书订阅表:
读者借书表:
读者还书表:
图书类别表:
借书数量表:
建立关系图
六、界面设计与代码(用VB作为界面设计语言)
1、系统主界面
其主要代码如下:
Publicopen_iAsInteger
PrivateSubForm_Load()
Adodc1.ConnectionString=cnn.ConnectionString
Adodc2.ConnectionString=cnn.ConnectionString
EndSub
PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
DimiAsInteger
Fori=0ToLbl_info.Count-1
Lbl_info(i).ForeColor=RGB(0,0,0)
Nexti
EndSub
PrivateSubLbl_Pic_Click(IndexAsInteger)
SelectCaseIndex
Case0:
frm_lb_cx.Show1
Case1:
frmdzxxgl.Show1
Case2:
frmdzjsgl.Show1
Case3:
frmdzhsgl.Show1
EndSelect
EndSub
PrivateSubLbl_Pic_MouseMove(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
Lbl_info(Index).ForeColor=RGB(255,0,0)
EndSub
PrivateSubTimer1_Timer()
StatusBar1.Panels(3).Text=Format(Now,"yyyy年mm月dd日hh点mm分ss秒")
EndSub
PrivateSubmnudzgl_Click()
frmdzxxgl.Show1
frmdzxxgl.SSTab1.Tab=0
EndSub
PrivateSubmnuexit_Click()
End
EndSub
PrivateSubmnuhsgl_Click()
frmdzhsgl.Show1
EndSub
PrivateSubmnujs_Click()
frmdzjsgl.Show1
EndSub
PrivateSubmnuxjgl_Click()
frmxubook.Show1
EndSub
PrivateSubmnuyuebao_Click()
frmyuebao.Show1
EndSub
PrivateSubnewbook_Click()
frmaddnew.Show1
EndSub
PrivateSubtsjs_Click()
frm_lb_cx.Show1
EndSub
2、读者信息设置界面
添加读者信息:
其主要代码如下:
DimrsAsADODB.Recordset
PrivateSubCombo1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenDTPicker1.SetFocus
EndSub
PrivateSubCombo2_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenText9.SetFocus
EndSub
PrivateSubCombo3_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenCombo6.SetFocus
EndSub
PrivateSubCombo4_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenDTPicker3.SetFocus
EndSub
PrivateSubCombo5_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenText19.SetFocus
EndSub
PrivateSubCombo6_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenText23.SetFocus
EndSub
PrivateSubCommand1_Click()
Dimtemp1
temp1=100000
Adodc1.RecordSource="select*fromdzxxtborderby读者编号"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
Adodc1.Recordset.MoveLast
Text1.Text=Val(Adodc1.Recordset.Fields("读者编号"))+1
Else
Text1.Text=temp1+"000001"
EndIf
Adodc1.RecordSource="select*fromdzxxtborderby读者编号"
Adodc1.Refresh
clear1
Text6.Text=""
Text2.SetFocus
Command3.Enabled=True
EndSub
PrivateSubCommand2_Click()
IfAdodc1.Recordset.EOF=FalseThen
c=MsgBox("您确认要删除该记录吗?
",17)
Ifc=vbOKThen
Adodc1.Recordset.Delete
Adodc1.Refresh
EndIf
Else
MsgBox"当前数据库中已经没有可删除的记录",64
EndIf
EndSub
PrivateSubCommand3_Click()
DimsqlAsString
sql="insertintodzxxtbvalues('"&Text1&"','"&Text2&"','"&Combo1&"','"&DTPicker1&"','"&Text3&"','"&Text4&"','"&Text5&"','"&Text6&"','"&Text7&"','"&Text8&"','"&Combo2&"','"&Text9&"','"&DTPicker2&"','"&Text22&"','"&Text10&"')"
cnn.Execute(sql)
MsgBox"数据保存成功",64
Adodc1.Refresh
Adodc2.RecordSource="select*fromdzxxtb"
Adodc2.Refresh
EndSub
PrivateSubCommand4_Click()
UnloadMe
EndSub
修改读者信息:
其主要代码如下:
PrivateSubCommand7_Click()
DimCounterAsInteger
Dimworkarea(100)AsString
Counter=0
OnErrorResumeNext
ProgressBar1.Value=ProgressBar1.Min
ForCounter=LBound(workarea)ToUBound(workarea)
Debug.PrintCounter
IfCheck1.Value=1AndCheck2.Value=0Then
IfCombo6.Text="like"Then
Adodc2.RecordSource="select*fromdzxxtbwheredzxxtb."&Combo3.Text&"like+'%"+Text23.Text+"%'"
Adodc2.Refresh
Else
Adodc2.RecordSource="select*fromdzxxtbwheredzxxtb."&Combo3.Text&Combo6&"+'"+Text23.Text+"'"
Adodc2.Refresh
EndIf
EndIf
IfCheck1.Value=0AndCheck2.Value=1Then
Adodc2.RecordSource="select*fromdzxxtbwhere登记日期between"&Chr(35)&DTPicker5.Value&Chr(35)&"and"&Chr(35)&DTPicker6.Value&Chr(35)&""
Adodc2.Refresh
EndIf
IfCheck1.Value=1AndCheck2.Value=1Then
IfCombo6.Text="like"Then
Adodc2.RecordSource="select*fromdzxxtbwhere("&Combo3.Text&"like'%"+Text23.Text+"%'and登记日期between"&Chr(35)&DTPicker5.Value&Chr(35)&"and"&Chr(35)&DTPicker6.Value&Chr(35)&")"
Adodc2.Refresh
Else
Adodc2.RecordSource="select*fromdzxxtbwhere("&Combo3.Text&Combo6&"+'"+Text23.Text+"'and登记日期between"&Chr(35)&DTPicker5.Value&Chr(35)&"and"&Chr(35)&DTPicker6.Value&Chr(35)&")"
Adodc2.Refresh
EndIf
EndIf
IfCounter=100Then
Me.MousePointer=0
EndIf
ProgressBar1.Value=Counter
NextCounter
ProgressBar1.Value=ProgressBar1.Min
'ProgressBar1.Value=0
EndSub
PrivateSubCommand8_Click()
UnloadMe
EndSub
查询读者信息:
其主要代码如下:
PrivateSubDataGrid1_DblClick()
SSTab1.Tab=1
Text11.Text=Adodc1.Recordset.Fields(0)
Text12.Text=Adodc1.Recordset.Fields
(1)
Combo4.Text=Adodc1.Recordset.Fields
(2)
DTPicker3.Value=Adodc1.Recordset.Fields(3)
Text13.Text=Adodc1.Recordset.Fields(4)
Text14.Text=Adodc1.Recordset.Fields(5)
Text15.Text=Adodc1.Recordset.Fields(6)
Text16.Text=Adodc1.Recordset.Fields(7)
Text17.Text=Adodc1.Recordset.Fields(8)
Text18.Text=Adodc1.Recordset.Fields(9)
Combo5.Text=Adodc1.Recordset.Fields(10)
Text19.Text=Adodc1.Recordset.Fields(11)
DTPicker4.Value=Adodc1.Recordset.Fields(12)
Text20.Text=Adodc1.Recordset.Fields(13)
Text21.Text=Adodc1.Recordset.Fields(14)
EndSub
PrivateSubDTPicker1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenText3.SetFocus
EndSub
PrivateSubDTPicker2_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=13Then
Text10.SetFocus
EndIf
EndSub
PrivateSubDTPicker3_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenText13.SetFocus
EndSub
PrivateSubDTPicker5_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenDTPicker6.SetFocus
EndSub
3、新书订阅界面
其主要代码如下:
Dimrs1AsNewADODB.Recordset
PrivateSubcombo1_Click()
Adodc1.ConnectionString=cnn.ConnectionString
Adodc2.ConnectionString=cnn.ConnectionString
Adodc1.RecordSource="select*fromlbtbwhere书籍类别='"&Trim(Combo1.Text)&"'"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
Text4.Text=Adodc1.Recordset.Fields(0)
Text12.Text=Adodc1.Recordset.Fields
(2)
EndIf
EndSub
PrivateSubCombo1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenText4.SetFocus
EndSub
PrivateSubCommand1_Click()
IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""OrText7.Text=""OrText8.Text=""OrText9.Text=""OrText10.Text=""OrText11.Text=""OrText12.Text=""Then
MsgBox"输入的信息不能为空!
",vbCritical
ElseIfIsNumeric(Text7.Text)=FalseOrIsNumeric(Text8.Text)=FalseOrIsNumeric(Text9.Text)=FalseOrIsNumeric(Text11.Text)=FalseOrIsNumeric(Text13)=FalseOrIsNumeric(Text12)=FalseThen
MsgBox"输入的信息类型不正确!
",vbInformation
Else
Adodc2.RecordSource="select*fromnewtbwhere条码号='"&Text11.Text&"'"
Adodc2.Refresh
IfAdodc2.Recordset.RecordCount>0Then
MsgBox"此条码号已经存在!
",vbCritical
Adodc2.RecordSource="select*fromnewtb"
Adodc2.Refresh
Else
rs1.Open"select*fromnewtbwhere订单号='"&Text1.Text&"'",cnn,adOpenKeyset,adLockOptimistic
Ifrs1.RecordCount>0Then
MsgBox"订单号已存在!
",vbInformation
Else
Dimsql,tempAsString
temp="0"
sql="insertintonewtbvalues('"&Text1&"','"&DT1&"','"&Text2&"','"&Text3&"','"&Text4&"','"&Text5&"','"&DT2&"','"&Text6&"','"&Text7&"',"&Text8.Text&",'"&Text9&"','"&Text10&"','"&Text11&"','"&Text12&"','"&Text13&"','"&temp&"')"
cnn.Execute(sql)
MsgBox"数据保存成功!
",64
Adodc2.RecordSource="select*fromnewtbwhere是否验收='0'orderby订单号"
Adodc2.Refresh
EndIf
rs1.Close
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
clear
EndSub
PrivateSubCommand3_Click()
UnloadMe
EndSub
PrivateSubCommand4_Click()
IfAdodc2.Recordset.EOF=FalseThen
c=MsgBox("您确认要删除该记录吗?
",17)
Ifc=vbOKThen
Adodc2.Recordset.Delete
Adodc2.Refresh
UnloadMe
Me.Show
EndIf
Else
MsgBox"当前数据库中已经没有可删除的记录",64
EndIf
EndSub
PrivateSubCommand5_Click()
clear
Dimtemp1
temp1=Format(Now,"yyyymmdd")
Adodc2.RecordSource="select*fromnewtbwhere订单号like'%"+temp1+"%'orderby订单号"
Adodc2.Refresh
IfAdodc2.Recordset.RecordCount>0T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统