VB图书管理系统.docx
《VB图书管理系统.docx》由会员分享,可在线阅读,更多相关《VB图书管理系统.docx(12页珍藏版)》请在冰豆网上搜索。
![VB图书管理系统.docx](https://file1.bdocx.com/fileroot1/2023-5/25/2be01ca6-dd3c-4791-b578-2fd07eb466b1/2be01ca6-dd3c-4791-b578-2fd07eb466b11.gif)
VB图书管理系统
1、概述
为适应教育现代化的迫切要求,提高高校图书馆的现代化管理水平,提高图书馆使用效率,更好的配置图书资源,降低工作人员劳动强度;结合本人实际兴趣及知识,开发了此软件。
2、详细设计
2.1.系统功能模块图
2.2.数据流图:
3.数据库设计
3.1数据库概念结构设计:
3.2数据库逻辑结构的设计
包括有系统用户表yonghu、读者表duzhe、图书表tushu、借阅表jieshu、设置表shez。
图书表tushu
字段名称
类型
说明
图书编号
文本
书名
文本
作者
文本
文本
单价
文本
本数
文本
已借出数
文本
借出次数
文本
读者表duzhe
字段名称
类型
说明
读者编号
文本
文本
班级
文本
电话号码
文本
借阅次数
文本
已借本数
文本
已交罚款
文本
借阅表jieshu
字段名称
类型
说明
读者编号
文本
图书编号
文本
借书日期
日期/时间
还书日期
日期/时间
应还日期
日期/时间
续借
文本
设置表shez
字段名称
类型
说明
还书期限
整型
续借期限
整型
最大借书数
整型
4、主要功能模块设计
4.1.系统登陆界面设计
功能介绍:
用户选择用户名并输入密码,系统按用户名查看yonghu表,若密码正确,则按权限进入图书管理系统的主界面;若用户密码输入不正确,则系统提示出错,要求重新输入密码否则不得进入本系统。
(注:
还定义了一个模块名为module1.bas,pubyh和quanxian都是全局变量,一个保存用户名,一个保存权限、还有hsqx、xjqx、zdjss用于保存还书期限、续借期限、最大借书数。
)
代码实现:
PrivateSubCommand1_Click()
Adodc1.RecordSource="select*fromyonghuwhere用户名='"&DataCombo1.Text&"'and密码='"&Text1.Text&"'"
Adodc1.Refresh
IfAdodc1.Recordset.EOF=FalseThen
pubyh=DataCombo1.Text
quanxian=Adodc1.Recordset.Fields("权限")
Me.Hide
MDIForm1.Show
Else
MsgBox"密码错误,请重新输入!
",vbOKOnly+vbExclamation,"图书馆"
Text1.Text=""
CallForm_Load
EndIf
EndSub
PrivateSubForm_Load()
Adodc1.ConnectionString="Provider=Microsoft.Jet."&"OLEDB.4.0;DataSource="&App.Path&"kcsj.mdb;PersistSecurityInfo=False" '数据库的连接,使用相对路径
Adodc1.RecordSource="select*fromyonghu"
Adodc1.Refresh
Label5.Caption="日期:
"&Date
EndSub
4.2图书管理系统的主界面设计
(a)界面设计:
(b)功能介绍:
主界面的功能有系统管理模块:
系统设置、用户管理、注销、退出。
数据管理模块:
借书管理、续借管理、还书管理、图书管理、读者管理。
数据查询模块:
借阅查询、图书查询、读者查询。
统计排行模块:
读者统计排行、图书统计排行。
今日盘点模块:
今日借出图书、今日归还图书、今日到期图书。
使用了菜单、工具栏和状态栏。
(c)代码实现:
PrivateSubMDIForm_Activate()
Unloadfrmlogin
Adodc1.ConnectionString="Provider=Microsoft.Jet."&"OLEDB.4.0;DataSource="&App.Path&"kcsj.mdb;PersistSecurityInfo=False"
Adodc1.RecordSource="select*fromshez"
Adodc1.Refresh
hsqx=Adodc1.Recordset.Fields("还书期限")
xjqx=Adodc1.Recordset.Fields("续借期限")
zdjss=Adodc1.Recordset.Fields("最大借书数")
string1="当前还书期限:
"&hsqx&"个月 续借期限:
"&xjqx&"个月 最大借书数:
"&zdjss&"本"
SelectCasequanxian '根据权限分配功能的使用
Case"1":
beizu="系统管理员:
"
menuxtsz.Enabled=True
……
Case"2":
beizu="操作员:
" '权限为2的是一般操作人员
menuxtsz.Enabled=False
……
Toolbar1.Buttons.Item
(1).Enabled=True
……
Case"3":
beizu="读者:
" '权限为3的是读者
……
EndSelect
StatusBar1.Panels
(1).Text=beizu+pubyh
StatusBar1.Panels
(2).Text=string1
EndSub
4.4借书管理模块
(a)界面设计
b)功能介绍
该部分完成对读者的借书管理并将借书信息写入jieshu表中,并修改duzhe表中借阅次数、已借本数两字段和tushu表中借出次数、已借本数两字段,读者借书数超过系统参数设定的最多本数的不能再借。
(c)代码实现
PrivateSubCommand1_Click()
b=CInt(Text6.Text) ‘读者已借图书数
e=CInt(Text5.Text) ‘读者的借阅次数
c=CInt(Text17.Text) ‘图书的本数
d=CInt(Text18.Text) ‘图书已借出数
f=CInt(Text12.Text) ‘图书的借出次数
Ifzdjss-b<=0Then
MsgBox"你已借满图书了",借书
ExitSub
EndIf
Ifc-d<=0Then
MsgBox"你要的图书已全部借出",借书
ExitSub
EndIf
Adodc1.Recordset.Update"已借本数",Str(b+1)
Adodc1.Recordset.Update"借阅次数",Str(e+1)
Text6.Text=Adodc1.Recordset.Fields("已借本数")
Text5.Text=Adodc1.Recordset.Fields("借阅次数")
Adodc2.Recordset.Update"已借出本数",Str(d+1)
Adodc2.Recordset.Update"借出次数",Str(f+1)
Text18.Text=Adodc2.Recordset.Fields("已借出本数")
Text12.Text=Adodc2.Recordset.Fields("借出次数")
Adodc3.Recordset.AddNew
Adodc3.Recordset.Fields("读者编号")=Text1.Text
Adodc3.Recordset.Fields("图书编号")=Text16.Text
Adodc3.Recordset.Fields("借书日期")=DTPicker1.Value
Adodc3.Recordset.Fields("应还日期")=DTPicker2.Value
Adodc3.Recordset.Fields("续借")="0"
Adodc3.Recordset.Update
Adodc3.Refresh
EndSub
PrivateSubForm_Load()
Adodc1.ConnectionString="Provider=Microsoft.Jet."&"OLEDB.4.0;DataSource="&App.Path&"kcsj.mdb;PersistSecurityInfo=False"
Adodc1.RecordSource="select*fromduzhe"
Adodc1.Refresh
……
DTPicker1.Value=Date
DTPicker2.Value=DateAdd("m",hsqx,DTPicker1) ‘hsqx是还书期限
EndSub
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=13Then
Adodc1.Refresh
Adodc1.Recordset.Find"读者编号='"&Text1.Text&"'"
IfAdodc1.Recordset.EOF=TrueThen
MsgBox"无此读者编号",借书
Text2.Text=""
……
Adodc1.Refresh
ExitSub
EndIf
Text2.Text=Adodc1.Recordset.Fields("")
……
EndIf
EndSub
PrivateSubText16_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=13Then
Adodc2.Refresh
Adodc2.Recordset.Find"图书编号='"&Text16.Text&"'"
IfAdodc2.Recordset.EOF=TrueThen
MsgBox"无此图书编号",借书
Text15.Text=""
……
Adodc2.Refresh
ExitSub
EndIf
Text15.Text=Adodc2.Recordset.Fields("书名")
……
EndIf
EndSub
4.5图书查询
(a)界面设计:
(b)功能介绍:
对图书可根据不同的条件进行查询(图书编号、书名、作者、)。
(c)代码实现:
PrivateSubCommand1_Click()
SelectCasecombo1.ListIndex
Case0
Adodc1.Recordset.Find"图书编号='"&Text8.Text&"'"
IfAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find"图书编号='"&Text8.Text&"'"
EndIf
Case1 '书名采用模糊查询
Adodc1.Recordset.Find"书名like'*"&Text8.Text&"*'"
IfAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find"书名like'*"&Text8.Text&"*'"
EndIf
……
EndSelect
EndSub
5.结束语
本程序严格按照软件工程的设计流程,使用编程简洁、面向对象的可视化编程语言VisualBasic6.0,并结合MSACCESS实现数据库的操作。
整个系统实现了一般图书馆系统中的功能。