资源描述
V B课程设计汇报
题目: 图书馆管理系统
指导老师:吴志强老师
班 级: 10410111
学 号:
姓 名: 黄 流 华
时间:12月20日
目 录
1、课程设计目标
2、课程设计题目
3、课程设计要求
4、课程设计说明
5、源代码
6、运行结果
7、课程设计体会
1、 课程设计目标
课程设计为学生提供了一个既动手又动脑,独立实践机会,将书本上VB理论知识和实际有机结合起来,锻炼学生分析处理实际问题能力,提升用VB编程实现具体问题能力。
2、 课程设计题目
图书馆管理系统
3、 课程设计要求:
用户登陆、图书借阅和归回、图书信息添加、修改、查询和删除操作。
4、 课程设计说明
依据对我院图书馆及图书信息进行调查和分析,图书管理系统应该含有以下功效:
系统管理(即登录)、图书管理、还书和借书操作。各个功效模块以下:
a、系统管理模块 在这个模块,能够进行登录和退出等操作。
b、图书管理模块 在这个模块,能够进行增加、删除、修改、查找、上一个和下一个。
C、还书和借书模块 在这个模块,能够完成借书、还书操作。
d、报表模块
图书馆管理系统
5、图书管理信息系统数据库设计
系统数据库名为Data,数据库中包含(1)图书信息表;(2)借出图书信息表;(3)归还图书信息表
1、 图书信息表数据结构
字段名
类型
大小
空值
描述
ID
int
4
ID
图书编号
nvarchar
10
y
图书编号
书名
nvarchar
30
y
书名
价格
real
4
y
价格
出版社
nvarchar
30
y
出版社
借出日期
smalldatetime
4
y
借出日期
是否借出
bit
1
y
是否借出
类别
nvarchar
10
类别
2、 借出图书信息表
字段名
类型
大小
空值
描述
输入借出图书编号
nvarchar
10
y
输入借出图书编号
图书编号
nvarchar
10
y
图书编号
价格
real
4
y
价格
类别
nvarchar
10
类别
书名
nvarchar
30
y
书名
出版社
nvarchar
30
出版社
今天日期
smalldatetime
4
y
今天日期
3、 归还图书信息表
字段名
类型
大小
空值
描述
图书编号
nvarchar
10
y
图书编号
书名
nvarchar
30
y
书名
价格
real
4
y
价格
出版社
nvarchar
30
y
出版社
借出日期
smalldatetime
4
y
借出日期
类别
nvarchar
10
类别
借出天数
smalldatetime
2
y
借出天数
限定天数
Text
4
y
限定天数
超出天数
Text
4
y
超出天数
罚款金额
Text
5
y
罚款金额
今天日期
Text
5
y
今天日期
输入要还图书编号
nvarchar
10
y
输入要还图书编号
6、源代码
(1)a、系统管理(即登录源代码)
Public Sub Command1_Click()
If Text1.Text = "" Then
MsgBox "请输入正确用户名", 11, "错误信息"
ElseIf Text2.Text = "" Then
MsgBox "请输入正确密码", 11, "错误信息"
End If
If Text1.Text = "huang" And Text2.Text = "" Then
Load form2
form2.Show 1
Unload Form1
Else
MsgBox "用户名或密码错误", 11, "错误信息"
End If
End Sub
b、登录界面
(2)a、图书管理模块源代码
Public msg '定义过程级变量
Private Sub Cmd_Del_Click()
Dim areturn As Integer
areturn = MsgBox("你确定要删除统计吗?", vbYesNo)
If areturn = vbYes Then
Data1.Recordset.Delete
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
End If
End If
End Sub
Private Sub Cmd_Fnd_Click()
msg = InputBox("请输入正确图书编号", "查找统计")
Data1.Recordset.FindFirst "图书编号 ='" & msg & "'"
If Data1.Recordset.NoMatch Then
MsgBox "没有符合条件图书!"
Else
MsgBox "符合条件图书为" & Data1.Recordset.Field(1)
End If
End Sub
Private Sub Cmd_Ins_Click()
vb_msg = MsgBox("请输入", vbOKCancel)
If vb_msg = vbCancel Then
Exit Sub
End If
Data1.Recordset.AddNew
Data1.Recordset.Fields("TD") = Val(Text1.Text)
Data1.Recordset.Fields("图书编号") = Text2.Text
Data1.Recordset.Fields("书名") = Text3.Text
Data1.Recordset.Fields("价格") = Val(Text4.Text)
Data1.Recordset.Fields("出版社") = Text5.Text
Data1.Recordset.Fields("借出日期") = Text6.Text
Data1.Recordset.Fields("是否借出") = Text7.Text
Data1.Recordset.Fields("类别") = Text8.Text
End Sub
Private Sub Cmd_Nxt_Click()
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
MsgBox ("已经是最终一条统计了!")
End If
End Sub
Private Sub Cmd_Pre_Click()
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
Data1.Recordset.MoveFirst
MsgBox ("已经是第一条统计了!")
End If
End Sub
Private Sub Cmd_Upd_Click()
Dim areturn As Integer
areturn = MsgBox("你确定要修改统计吗?", vbYesNo)
If areturn = vbYes Then
Data1.Recordset.Edit
Data1.Recordset.Fields("TD") = Val(Text1.Text)
Data1.Recordset.Fields("图书编号") = Text2.Text
Data1.Recordset.Fields("书名") = Text3.Text
Data1.Recordset.Fields("价格") = Val(Text4.Text)
Data1.Recordset.Fields("出版社") = Text5.Text
Data1.Recordset.Fields("借出日期") = Text6.Text
Data1.Recordset.Fields("是否借出") = Text7.Text
Data1.Recordset.Fields("类别") = Text8.Text
Data1.Recordset.Update
End If
End Sub
b、图书管理模块界面
C、当单击“删除”或“修改”按钮时,程序中使用了MsgBox,弹出类似图示对话框来要求用户确定
(3)a、借书模块源代码
Public index As Integer
Private Sub cmdokcancel_Click()
Select Case index
Case 1
If rst3.Fields("是否借出") + True Then
MsgBox "此书已经借出!", 0 + 48, "提醒"
txtbookbian.Text = ""
txtbookbian.SetFocus
frame4.Visible = False
frame7.Visible = True
Exit Sub
End If
rst2.AddNew
rst2.Fields("图书编号") = rst3.Fields("图书编号")
rst2.Fields("书名") = rst3.Fields("书名")
rst2.Fields("价格") = rst3.Fields("价格")
rst2.Fields("出版社") = rst3.Fields("出版社")
rst2.Fields("类别") = rst3.Fields("类别")
rst2.Fields("姓名") = txtname.Text
rst2.Fields("借出日期") = rst3.Fields("借出日期")
rst2.Fields("借书证号") = bookid
rst2.Update
rst3.Edit
rst3.Fields("是否借出") = True
rst3.Fields("借出日期") = rst3.Fields("借出日期")
rst3.Update
DataRef
txtbookbian.Text = ""
txtbookbian.SetFocus
'cmdlogin.setfocus
frame4.Visible = False
frame7.Visible = True
End Select
End Sub
Public keyascii As Integer
Private Sub txtbookbian_keypress_Click()
If keyascii2 = 13 Then
If txtbookid.Text = "" Then
MsgBox "请先登录!", 0 + 48, "提醒"
cmdlogin.SetFocus
txtbookbian.Text = ""
Exit Sub
End If
rst3.Seek "=", txtbookbian.Text
If rst3.NoMatch Then
MsgBox "没有此图书编号,请重新填写", 0 + 48, "填写错误"
txtbookbian.SetFocus
frame4.Visible = False
frame7.Visible = True
Exit Sub
End If
frame4.Visible = True
frame7.Visible = True
txtbookhao.Text = txtbookbian.Text
txtbookname.Text = rst3.Fields("书名") & vbNullString
txtchuban.Text = rst3.Fields("出版社") & vbNullString
txtcost.Text = rst3.Fields("价格") & Empty
txtlentdate.Text = rst3.Fields("借出日期") & vbNullString
txttype.Text = rst3.Fields("类别") & vbNullString
End If
End Sub
b、借出图书界面
(4)a、归还图书源代码
Public index As Integer
Private Sub cmdokcancel_Click()
Select Case index
Case 1
rst2.Seek "=", txtbookbian1.Text
If rst2.nomath Then
MsgBox "没有借过这本书!是不是编号错了?", 0 + 48, "提醒"
txtbookbian1.Text = ""
txtbookbian1.SetFocus
frame6.Visible = False
cmdokcance1.Visible = False
Exit Sub
If rst3.Fields("是否借出") = False Then
MsgBox "此书还没有借出", 0 + 48, "提醒"
Exit Sub
End If
rst1.Seek "=", rst2.Fields("借书证号")
rst1.Edit '奖罚款金额写入数据库中
rst1.Fields("罚款") = Val(txtfa.Text) + rst1.Fields("罚款")
rst1.Update
If txtfa.Text > 0 Then
MsgBox "罚款金额已经写入数据库!", 0 + 48, "提醒"
End If
rst2.Delete
rst3.Edit
rst3.Fields("是否借出") = False
rst3.Fields("借出日期") = Empty
rst3.Update
txtbookbian1.Text = ""
txtbookbian1.SetFocus
frame6.Visible = False
cmdokcancel.Visible = False
MsgBox "还书成功!按回车键继续", 0 + 48, "完成"
End If
End Select
End Sub
Public keyascii As Integer
Private Sub txtbookbian1_keypress_Click()
If keyascii = 13 Then
rst3.Seek "=", txtbookbian1.Text
If rst3.NoMatch Then
MsgBox "没有此图书编号,请重新填写", 0 + 48, "填写错误"
txtbookbian1.Text = ""
'txtbookbian1.seilength
txtbookbian1.SetFocus
Exit Sub
End If
frame6.Visible = True
txtbookhao1.Text = txtbookbian1.Text
txtbookname1.Text = rst3.Fields("书名") & vbNullString
txtchuban1.Text = rst3.Fields("出版社") & vbNullString
txtcost1.Text = rst3.Fields("价格") & Empty
txtlentdate1.Text = rst3.Fields("借出日期") & Empty
txttoday.Text = rst3.Fields("今天日期") & vbNullString
txttype1.Text = rst3.Fields("类别") & vbNullString
txtlentday.Text = rst3.Fields("今天日期") - rst3.Fields("借出日期") & Empty
rst.Seek "=", rst3.Fields("类别")
bookdday = rst.Fields("借出天数")
txtxianding.Text = bookday 'bookday 为限定借出天数
If Val(txtlentday.Text) - bookday <= 0 Then '判定是否超出了天数
txtchaochu.Text = "未超出"
txtfa.Text = "0"
Exit Sub
Else
txtchaochu.Text = Val(txtlentday.Text) - bookday
End If
'txtfa.text=format(facost*val(txtchaochu.text),"#.00") '计算金额
End If
End Sub
b、归还图书界面
(5)报表模块
操作步骤以下:
a、 打开“图书信息表.mdb”工程文件,找到数据环境DataEnvironment1
b、 打开DataEnvironment1,选择“Connection1”,图所表示
C、单击右键,在弹出菜单中选择“属性”命令,得到图所表示数据链接属性页
d、选择OLE DB驱动程序,选项Microsoft Jet 3.51 OLE DB Provider
f、然后选择或输入Access数据库名称
e、单击“测试连接”按钮,测试成功后,出现测试成功提醒
6、课程设计体会
展开阅读全文