VB图书管理系统

VB图书管理系统
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用于保存还书期限、续借期限、最大借书数。)

代码实现:

Private Sub Command1_Click()

Adodc1.RecordSource = "select * from yonghu where 用户名='" & DataCombo1.Text & "' and 密码='" & Text1.Text & "'"

Adodc1.Refresh

If Adodc1.Recordset.EOF = False Then

pubyh = DataCombo1.Text

quanxian = Adodc1.Recordset.Fields("权限")

Me.Hide

MDIForm1.Show

Else

MsgBox "密码错误,请重新输入!", vbOKOnly + vbExclamation, "图书馆"

Text1.Text = ""

Call Form_Load

End If

End Sub

Private Sub Form_Load()

Adodc1.ConnectionString = "Provider=Microsoft.Jet." & "OLEDB.4.0;Data Source=" & App.Path & "kcsj.mdb;Persist Security

Info=False" '数据库的连接,使用相对路径

Adodc1.RecordSource = "select * from yonghu"

Adodc1.Refresh

Label5.Caption = "日期:" & Date

End Sub

4.2图书管理系统的主界面设计

(a)界面设计:

(b)功能介绍:

主界面的功能有系统管理模块:系统设置、用户管理、注销、退出。数据管理模块:借书管理、续借管理、还书管理、图书管理、读者管理。数据查询模块:借阅查询、图书查询、读者查询。统计排行模块:读者统计排行、图书统计排行。今日盘点模块:今日借出图书、今日归还图书、今日到期图书。使用了菜单、工具栏和状态栏。

(c)代码实现:

Private Sub MDIForm_Activate()

Unload frmlogin

Adodc1.ConnectionString = "Provider=Microsoft.Jet." & "OLEDB.4.0;Data Source=" & App.Path & "kcsj.mdb;Persist Security Info=False"

Adodc1.RecordSource = "select * from shez"

Adodc1.Refresh

hsqx = Adodc1.Recordset.Fields("还书期限")

xjqx = Adodc1.Recordset.Fields("续借期限")

zdjss = Adodc1.Recordset.Fields("最大借书数")

string1 = " 当前还书期限:" & hsqx & "个月续借期限:" & xjqx & "个月最大借书数:" & zdjss & "本"

Select Case quanxian '根据权限分配功能的使用

Case "1": beizu = "系统管理员:"

menuxtsz.Enabled = True

……

Case "2": beizu = "操作员:" '权限为2的是一般操作人员

menuxtsz.Enabled = False

……

Toolbar1.Buttons.Item(1).Enabled = True

……

Case "3": beizu = "读者:" '权限为3的是读者

……

End Select

StatusBar1.Panels(1).Text = beizu + pubyh

StatusBar1.Panels(2).Text = string1

End Sub

4.4 借书管理模块

(a) 界面设计

b)功能介绍

该部分完成对读者的借书管理并将借书信息写入jieshu表中,并修改duzhe表中借阅次数、已借本数两字段和tushu表中借出次数、已借本数两字段,读者借书数超过系统参数设定的最多本数的不能再借。

(c)代码实现

Private Sub Command1_Click()

b = CInt(Text6.Text) ‘读者已借图书数

e = CInt(Text5.Text) ‘读者的借阅次数

c = CInt(Text17.Text) ‘图书的本数

d = CInt(Text18.Text) ‘图书已借出数

f = CInt(Text12.Text) ‘图书的借出次数 If zdjss - b <= 0 Then

MsgBox "你已借满图书了", 借书

Exit Sub

End If

If c - d <= 0 Then

MsgBox "你要的图书已全部借出", 借书

Exit Sub

End If

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

End Sub

Private Sub Form_Load()

Adodc1.ConnectionString = "Provider=Microsoft.Jet." & "OLEDB.4.0;Data Source=" & App.Path & "kcsj.mdb;Persist Security

Info=False"

Adodc1.RecordSource = "select * from duzhe"

Adodc1.Refresh

……

DTPicker1.Value = Date

DTPicker2.Value = DateAdd("m", hsqx, DTPicker1) ‘hsqx是还书期限

End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = 13 Then

Adodc1.Refresh

Adodc1.Recordset.Find "读者编号 ='" & Text1.Text & "'" If Adodc1.Recordset.EOF = True Then

MsgBox "无此读者编号", 借书

Text2.Text = ""

……

Adodc1.Refresh

Exit Sub

End If

Text2.Text = Adodc1.Recordset.Fields("姓名")

……

End If

End Sub

Private Sub Text16_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then

Adodc2.Refresh

Adodc2.Recordset.Find "图书编号 ='" & Text16.Text & "'"

If Adodc2.Recordset.EOF = True Then

MsgBox "无此图书编号", 借书

Text15.Text = ""

……

Adodc2.Refresh

Exit Sub

Text15.Text = Adodc2.Recordset.Fields("书名")

……

End If

End Sub

4.5图书查询

(a)界面设计:

(b)功能介绍:对图书可根据不同的条件进行查询(图书编号、书名、作者、出版社)。

(c)代码实现:

Private Sub Command1_Click()

Select Case combo1.ListIndex

Adodc1.Recordset.Find "图书编号 ='" & Text8.Text & "'"

If Adodc1.Recordset.EOF Then

Adodc1.Recordset.MoveFirst

Adodc1.Recordset.Find "图书编号 ='" & Text8.Text & "'" End If

Case 1 '书名采用模糊查询

Adodc1.Recordset.Find "书名 like '*" & Text8.Text & "*'" If Adodc1.Recordset.EOF Then

Adodc1.Recordset.MoveFirst

Adodc1.Recordset.Find "书名 like '*" & Text8.Text & "*'" End If

End Select

End Sub

5.结束语

本程序严格按照软件工程的设计流程,使用编程简洁、面向对象的可视化编程语言Visual Basic 6.0,并结合MS ACCESS实现数据库的操作。整个系统实现了一般图书馆系统中的功能。

相关主题
相关文档
最新文档