
实 验 报 告
实验报告名称: 图书借阅系统
专 业 班 级 :
学 生 姓 名 :
学 号 :
1需求分析
为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便全面掌握图书的流通情况。
2概要设计
流程图如下
在用户名和密码的对话框的代码比较难,也是整个程序的关键。Str = "select * from baoan_users where 姓名='" & test1.Text & "' and 密码='" & Text2.Text & "'".表示索取的的路径并与后台的数据库对应查找并判断提示对话框。
管理员登录后与借阅人员登录后的界面不同,其,蓝线表示保安人员的走管理员可以修改相关的借阅人员信息,而读者却不能,他只能查看书的情况。在这里登录界面的代码是关键,也是难点,有两个导向,由于需要判断管理员与读者,所以比较复杂。在输入姓名的对话框比较简单。只需要将前面的代码复制到他的代码区,并且对相应的名字或者变量进行修改即可
3 运行环境
硬件坏境:
CPU: Pentium 4的Northwood
显卡:显卡 4800+
内存:2 GB
硬盘:160GB
软件坏境:
系统为windows xp
使用的软件是Microsoft Visual Basic 6.0企业版
和SQL sever 2000数据库
4开发工具和编程语言
VB6.和数据库SQL2000
VB是Visual Basic的简写,是可视化的编程语言。是一种简单、高效地开发应用软件的工具。
VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。
SQL Server 是一个关系数据库管理系统它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的于1988 年推出了第一个OS/2 版本在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了Microsoft 将SQL Server 移植到Windows NT。
5详细设计
Private Sub cmdcancel_Click()
End
End Sub
Private Sub cmdOK_Click()
Static i As Integer '定义静态变量
i = i + 1
If i > 3 Then
MsgBox "对不起,您已经输入三次,关闭程序"
End
End If
'如果数据连接是关闭,则打开
'If con.State = 0 Then
'con.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hyx_bookmanage;Data Source=."
'End If
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim S As String
Dim Str As String
S = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hyx_bookmanage;Data Source=." '这里的数据库换成你自己的数据库
Str = "select * from Operator where Account='" & txtname.Text & "' and Password='" & txtpwd.Text & "'"
rs.CursorLocation = adUseClient
con.Open S
rs.Open Str, con, 3, 3
登录成功"
重新初始化i
用户名或密码错误,请重新输入"
'If txtname <> "" Then
'If txtname.Text = "admini" Then '用户类型为管理员
' If rs.Fields(3).Value = True Then '如果该帐号已经注销
'该帐号已经注销!"
'关闭数据集
' End If
' If Trim(rs.Fields("Password").Value) = txtpwd.Text Then
'当帐号为普通类型
'记录帐号名
'重新初始化i
' Else
'密码不正确", 48
' End If
'End If
' If rs.State <> 0 Then
'关闭数据集
' End If
'End If
End Sub
Private Sub MDIForm_Unload(Cancel As Integer)
Dim a As Integer
判断关闭主窗体的类型exittype
如果是退出
确认要退出系统吗?", 36)
点击“确定”
退出程序
取消,不关闭
End If
Case 1
'如果是重新登陆
确认要重新登陆系统吗?", 36)
点击“确定”
重新赋值给全局变量
Else
Cancel = -1 '取消,不关闭
exitType = 0 '重新赋值给全局变量
End If
End Select
End Sub
Private Sub mnuBookRecord_Click()
frmBookRecord.Show
End Sub
Private Sub mnuExit_Click()
Unload Me
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index '判断是点击哪个按钮
Case 1
基本信息菜单
Case 2
图书入库菜章
Case 3
图书销售菜单
Case 4
价格维护菜单
Case 5
图书报表菜单
Case 6
销售明细报表菜单
Case 7
销售报表菜单
Case 8
退出菜单
End Select
End Sub
Private Sub cmdadd_Click()
AdoBookRecord.Recordset.AddNew
End Sub
Private Sub cmdcancel_Click()
AdoBookRecord.Recordset.CancelBatch
End Sub
Private Sub cmddel_Click()
'Dim a As Integer
'If AdoBookRecord.Recordset.EOF = True Then Exit Sub '没有记录则跳开
'a = MsgBox("确认要删除当前记录?", 36)
'If a = 6 Then
AdoBookRecord.Recordset.Delete
'End If
End Sub
Private Sub cmdexit_Click()
Unload Me
End Sub
Private Sub cmdfind_Click()
frmfind.Show
End Sub
Private Sub cmdfirst_Click()
AdoBookRecord.Recordset.MoveFirst
End Sub
Private Sub cmdlast_Click()
AdoBookRecord.Recordset.MoveLast
End Sub
Private Sub cmdnext_Click()
AdoBookRecord.Recordset.MoveNext
If AdoBookRecord.Recordset.EOF Then
AdoBookRecord.Recordset.MoveLast
End If
End Sub
Private Sub cmdpre_Click()
AdoBookRecord.Recordset.MovePrevious
If AdoBookRecord.Recordset.BOF Then
AdoBookRecord.Recordset.MoveFirst
End If
End Sub
Private Sub cmdrefresh_Click()
'On Error GoTo handle
'AdoBookRecord.Recordset.Update
'AdoBookRecord.RecordSource = "select * from bookrecord"
AdoBookRecord.Refresh
'handle:
'MsgBox Err.Description '描述错误原因
'AdoBookRecord.Recordset.CancelBatch
End Sub
Private Sub cmdsave_Click()
AdoBookRecord.Recordset.Update
End Sub
Private Sub Command1_Click()
Dim Cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim S As String
Dim Str As String
S = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hyx_bookmanage;Data Source=."
Str = "select * from BookRecord where BookName='" & Trim(Text1.Text) & "'"
rs.CursorLocation = adUseClient
Cnn.Open S
rs.Open Str, Cnn, 3, 3
If rs.RecordCount > 0 Then
frmBookRecord.txtbook.Text = rs.Fields(0)
frmBookRecord.Txtbook1.Text = rs.Fields(1)
frmBookRecord.Txtbook2.Text = rs.Fields(2)
frmBookRecord.Txtbook3.Text = rs.Fields(3)
frmBookRecord.Txtbook4.Text = rs.Fields(4)
frmBookRecord.Txtbook5.Text = rs.Fields(5)
frmBookRecord.Txtbook6.Text = rs.Fields(6)
Else
MsgBox "没有记录"
End If
Unload Me
End Sub
Private Sub Command2_Click()
Dim Cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim S As String
Dim Str As String
S = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hyx_bookmanage;Data Source=."
Str = "select * from BookRecord where BookNO='" & Trim(Text2.Text) & "'"
rs.CursorLocation = adUseClient
Cnn.Open S
rs.Open Str, Cnn, 3, 3
If rs.RecordCount > 0 Then
frmBookRecord.txtbook.Text = rs.Fields(0)
frmBookRecord.Txtbook1.Text = rs.Fields(1)
frmBookRecord.Txtbook2.Text = rs.Fields(2)
frmBookRecord.Txtbook3.Text = rs.Fields(3)
frmBookRecord.Txtbook4.Text = rs.Fields(4)
frmBookRecord.Txtbook5.Text = rs.Fields(5)
frmBookRecord.Txtbook6.Text = rs.Fields(6)
Else
MsgBox "没有记录"
End If
Unload Me
End Sub
6 调试分析
在开始编写程序的时候总是有一些出错,在查找有关书籍和向老师询问后得出了结果,在调试时候出现错误,即404 。由于在姓名的文本框出现了错误,在命名时要注意。Str = "select * from baoan_users where 姓名='" & test1.Text & "' and 密码='" & Text2.Text & "'"中的test的大小写要注意。还有数据表baoan_users要正确,这才可以保证运行成功。在添加代码的时候要注意你要添加到那个控件的代码中,并且函数名不能够重复,在调试的过程中很容易出现上述的错误。
7心得体会
通过学习此课程设计掌握了有关VB和数据库的不少知识,本次数据库课程设计是以Access数据库作为后台以VB作为前台的应用型设计课程。这次课程设计加强了我们动手、思考和解决问题的能力。计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限。做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。
开发一个编译器是一个比较漫长的过程。需要我对每一个模块都深思熟虑,每一个算法都充分理解,每一个数据结构都人身设计。在整个完成课程设计的过程中。
由于这次设计涉及到数据库,我的学到了不少编程工具与数据库连接的知识,对数据库的操作有了进一步的了解。这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识还很肤浅。所以今后我的学习道路还是很漫长的。
