资源描述
目录
(1)设计目的 (2)
(2)设计要求
设计和实验报告要求 (2)
(3)设计方法
系统功能 (3)
(4)总体设计
模块功能说明和源程序 (3)
(5)调试与测试 (14)
调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施
(6)实验总结 (15)
1.设计目的:
1、目的:
(1)要求学生达到熟练掌握SQL数据库的基本知识和技能;
(2)基本掌握数据库程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的程序设计问题。
2. 设计要求:
1、模块化程序设计
2、锯齿型书写格式
3、必须上机调试通过
实验报告要求:
1、程序设计组成框图、流程图
2、模块功能说明
3、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及
4、采取的解决措施
5、源程序清单和执行结果(附盘):清单中应有足够的注释
3. 设计方法
图书借阅管理系统
功能:设计一个图书借阅管理系统。实现下列功能:
1. 图书信息的维护(包括录入,修改和删除);
2. 读者信息的维护(包括录入,修改和删除);
3. 借阅(借,还)信息的维护(包括借,还信息录 入,修改和删除);
4.总体设计
1、程序设计组成框图
图书
读者
分馆
图书类别
读者类型
图书种类
用户
属于
1
n
属于
1
n
分类
n
1
属于
1
n
借阅
m
n
m
n
属于
1
n
借阅
2、程序设计流程图
开始
用户登录
图书管理
借阅者管理
用户管理
全部图书管理
借出图书管理
未借图书管理
借阅者信息
用户信息管理
重试
通 过
3、模块功能说明
1、frmStar 登录界面
Option Explicit
Dim Times As Integer
Dim ADOLogin As New ADODB.Recordset
Private Sub btnCancle_Click()
End
End Sub
Private Sub btnOK_Click()
If Login(Trim(txtUser.Text), Trim(txtPwd.Text)) = True Then
Unload Me
Else
If MsgBox("输入的用户名称或者口令非法,请重新输入!", vbInformation + vbYesNo, "非法的操作员口令") = vbYes Then
txtUser.Text = ""
txtPwd.Text = ""
txtUser.SetFocus
Times = Times + 1
Else
End
End If
End If
End Sub
Private Sub Form_Load()
ADOLogin.Open "Login", ADOCon, adOpenDynamic, adLockOptimistic, -1
End Sub
Private Sub Form_Unload(Cancel As Integer)
ADOLogin.Close
End Sub
Private Sub Timer1_Timer()
If Times = 3 Then End
End Sub
Private Sub txtUser_Change()
btnOK.Enabled = True
End Sub
Private Sub txtPwd_Change()
btnOK.Enabled = True
End Sub
Private Function Login(ByVal strUSER As String, ByVal strPWD As String) As Boolean
If strUSER = "Administrator" Then
If strPWD = "Administrator" Then
User = "Administrator"
UserPermission = "Administrator"
Login = True
Exit Function
Else
Login = False
End If
Else
ADOLogin.MoveFirst
Do Until ADOLogin.EOF
If strUSER = ADOLogin.Fields(0).Value And strPWD = ADOLogin.Fields(2).Value Then
User = ADOLogin.Fields(0).Value
UserPermission = ADOLogin.Fields(1).Value
Login = True
Exit Function
Else
ADOLogin.MoveNext
End If
Loop
Login = False
End If
End Function
2、MDIMain 主菜单页面
Option Explicit
Private Sub MDIForm_Load()
sbrMain.Panels(1).Text = "当前登陆用户:" & User & " " & "权限:" & UserPermission
UserPower (UserPermission)
frmReader.AddReader = False
End Sub
Private Sub mnuAddBook_Click()
frmAddBook.Show
End Sub
Private Sub mnuBorrowBook_Click()
frmBorrowBook.Show
End Sub
Private Sub mnuBorrower_Click()
frmBorrower.Show
End Sub
Private Sub mnuBrowse_Click()
frmBrowse.Show
End Sub
Private Sub mnuManager_Click()
'MsgBox "Hello"
End Sub
Private Sub mnuReader_Click()
frmReader.Show
End Sub
Private Sub mnuReload_Click()
frmLogin.Show vbModal
sbrMain.Panels(1).Text = "当前登陆用户:" & User & " " & "权限:" & UserPermission
UserPower (UserPermission)
End Sub
Private Sub mnuReturnBook_Click()
frmReturnBook.Show
End Sub
Private Sub mnuShutdomn_Click()
End
End Sub
Private Sub mnuUserManager_Click()
frmUser.Show
End Sub
Private Sub tbrMain_ButtonClick(ByVal ButtonIndex As Integer, ByVal ButtonKey As String)
Select Case ButtonKey
Case "Browse Books"
frmBrowse.Show
Case "Add Books"
frmAddBook.Show
Case "Borrow Books"
frmBorrowBook.Show
Case "Return Books"
frmReturnBook.Show
Case "Reader"
frmReader.Show
Case "Borrower"
frmBorrower.Show
Case "System User"
frmUser.Show
Case "Reload"
frmLogin.Show vbModal
sbrMain.Panels(1).Text = "当前登陆用户:" & User & " " & "权限:" & UserPermission
UserPower (UserPermission)
Case "ShutDown"
End
End Select
End Sub
Private Sub UserPower(ByVal strUserPower As String)
Select Case strUserPower
Case "User"
tbrMain.ButtonEnabled(2) = False
tbrMain.ButtonEnabled(6) = False
tbrMain.ButtonEnabled(9) = False
mnuAddBook.Enabled = False
mnuUserManager.Enabled = False
mnuReader.Enabled = False
Case "Administrator"
tbrMain.ButtonEnabled(2) = True
tbrMain.ButtonEnabled(6) = True
tbrMain.ButtonEnabled(9) = True
mnuAddBook.Enabled = True
mnuUserManager.Enabled = True
mnuReader.Enabled = True
Case Else
tbrMain.ButtonEnabled(2) = False
tbrMain.ButtonEnabled(6) = False
tbrMain.ButtonEnabled(9) = False
mnuAddBook.Enabled = False
mnuUserManager.Enabled = False
mnuReader.Enabled = False
End Select
End Sub
Private Sub Timer1_Timer()
Dim Title As String
Static L As Integer
Title = "图书借阅管理系统"
If L > Len(Title) Then L = 0
MDIMain.Caption = Mid(Title, 1, L)
L = L + 1
End Sub
3、frmAddBook 添加图书界面
Option Explicit
Public ADOAdd As New ADODB.Recordset
Private Sub btnAdd_Click()
On Error GoTo LabErr
txtBookID.Enabled = True
txtBookName.Enabled = True
txtBookAuthor.Enabled = True
txtBookConcern.Enabled = True
txtBookPrice.Enabled = True
txtBookDate.Enabled = True
txtBookClass.Enabled = True
txtbookContain.Enabled = True
cmbBookStatus.Enabled = True
txtBookID.BackColor = vbWhite
txtBookName.BackColor = vbWhite
txtBookAuthor.BackColor = vbWhite
txtBookConcern.BackColor = vbWhite
txtBookPrice.BackColor = vbWhite
txtBookDate.BackColor = vbWhite
txtBookClass.BackColor = vbWhite
txtbookContain.BackColor = vbWhite
cmbBookStatus.BackColor = vbWhite
txtBookID.Text = ""
txtBookName.Text = ""
txtBookAuthor.Text = ""
txtBookConcern.Text = ""
txtBookPrice.Text = ""
txtBookDate.Text = ""
txtBookClass.Text = ""
txtbookContain.Text = ""
'ADOAdd.AddNew
btnSave.Enabled = True
btnAdd.Enabled = False
Exit Sub
LabErr:
MsgBox "错误编号:" & Err.Number & "错误描述:" & Err.Description, vbCritical + vbOKOnly, "错误提示"
End Sub
Private Sub btnClose_Click()
Unload Me
End Sub
Private Sub btnSave_Click()
On Error GoTo LabErr
If txtBookID.Text <> "" Then
If txtBookName.Text <> "" Then
If txtBookAuthor.Text <> "" Then
If txtBookConcern.Text <> "" Then
If txtBookPrice.Text <> "" Then
If txtBookDate.Text <> "" Then
If txtBookClass.Text <> "" Then
If txtbookContain.Text <> "" Then
If cmbBookStatus.Text <> "" Then
ADOAdd.AddNew
ADOAdd.Fields(0).Value = Trim(txtBookID.Text)
ADOAdd.Fields(1).Value = Trim(txtBookName.Text)
ADOAdd.Fields(2).Value = Trim(txtBookAuthor.Text)
ADOAdd.Fields(3).Value = Trim(txtBookConcern.Text)
ADOAdd.Fields(4).Value = Trim(txtBookPrice.Text)
ADOAdd.Fields(5).Value = Trim(txtBookDate.Text)
ADOAdd.Fields(6).Value = Trim(txtBookClass.Text)
ADOAdd.Fields(7).Value = Trim(txtbookContain.Text)
ADOAdd.Fields(8).Value = Trim(cmbBookStatus.Text)
ADOAdd.Update
Call SynData
txtBookID.Text = ""
txtBookName.Text = ""
txtBookAuthor.Text = ""
txtBookConcern.Text = ""
txtBookPrice.Text = ""
txtBookDate.Text = ""
txtBookClass.Text = ""
txtbookContain.Text = ""
txtBookID.BackColor = vbScrollBars
txtBookName.BackColor = vbScrollBars
txtBookAuthor.BackColor = vbScrollBars
txtBookConcern.BackColor = vbScrollBars
txtBookPrice.BackColor = vbScrollBars
txtBookDate.BackColor = vbScrollBars
txtBookClass.BackColor = vbScrollBars
txtbookContain.BackColor = vbScrollBars
cmbBookStatus.BackColor = vbScrollBars
txtBookID.Enabled = False
txtBookName.Enabled = False
txtBookAuthor.Enabled = False
txtBookConcern.Enabled = False
txtBookPrice.Enabled = False
txtBookDate.Enabled = False
txtBookClass.Enabled = False
txtbookContain.Enabled = False
cmbBookStatus.Enabled = False
btnSave.Enabled = False
btnAdd.Enabled = True
Else
MsgBox "请选择图书的当前状态为:IN", vbInformation + vbOKOnly, "信息不完整"
cmbBookStatus.SetFocus
End If
Else
MsgBox "请输入简单图书描述信息", vbInformation + vbOKOnly, "信息不完整"
txtbookContain.SetFocus
End If
Else
MsgBox "清输入图书的类别信息", vbInformation + vbOKOnly, "信息不完整"
txtBookClass.SetFocus
End If
Else
MsgBox "请按年-月-日格式输入图书购买的时间信息", vbInformation + vbOKOnly, "信息不完整"
txtBookDate.SetFocus
End If
Else
MsgBox "请输入图书的价格", vbInformation + vbOKOnly, "信息不完整"
txtBookPrice.SetFocus
End If
Else
MsgBox "请输入图书的出版社", vbInformation + vbOKOnly, "信息不完整"
txtBookConcern.SetFocus
End If
Else
MsgBox "请输入图书的作者名称", vbInformation + vbOKOnly, "信息不完整"
txtBookAuthor.SetFocus
End If
Else
MsgBox "请输入图书的名称", vbInformation + vbOKOnly, "信息不完整"
txtBookName.SetFocus
End If
Else
MsgBox "请输入图书编号(唯一标识) ", vbInformation + vbOKOnly, "信息不完整"
txtBookID.SetFocus
End If
Exit Sub
LabErr:
MsgBox "错误编号:" & Err.Number & "错误描述:" & Err.Description, vbCritical + vbOKOnly, "错误提示"
txtBookID.Text = ""
txtBookID.SetFocus
End Sub
Private Sub Form_Load()
Set ADOAdd = Nothing
ADOAdd.Open "Books", ADOCon, adOpenDynamic, adLockOptimistic, -1
Set Flex.DataSource = ADOAdd
Call initial
frmAddBookLoad = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
If btnAdd.Enabled = True Then
ADOAdd.Close
End If
frmAddBookLoad = False
End Sub
Private Sub initial()
Flex.ColWidth(0) = 100
Flex.ColWidth(1) = 800
Flex.ColWidth(2) = 2000
Flex.ColWidth(3) = 900
Flex.ColWidth(4) = 2000
Flex.ColWidth(5) = 800
Flex.ColWidth(6) = 900
Flex.ColWidth(7) = 1000
Flex.ColWidth(8) = 2000
Flex.ColWidth(9) = 800
Flex.Col = 1
Flex.Sort = 1
cmbBookStatus.AddItem "IN"
cmbBookStatus.AddItem "OUT"
End Sub
4、frmBorrower 借阅者信息界面
Option Explicit
Public ADOBbk As New ADODB.Recordset
Private Sub initial()
Flex.ColWidth(0) = 100
Flex.ColWidth(1) = 1000
Flex.ColWidth(2) = 1000
Flex.ColWidth(3) = 1000
Flex.ColWidth(4) = 2000
Flex.ColWidth(5) = 1200
Flex.ColWidth(6) = 1000
Flex.ColWidth(7) = 1500
Flex.Col = 1
Flex.Sort = 1
End Sub
Private Sub btnClose_Click()
Unload Me
End Sub
Private Sub Form_Load()
If frmReturnBookLoad = False And frmBorrowBookLoad = False Then
Set ADOBbk = Nothing
ADOBbk.Open "BorrowBook", ADOCon, adOpenDynamic, adLockOptimistic, -1
Set Flex.DataSource = ADOBbk
Else
Set Flex.DataSource = ADOBbk
End If
Call initial
frmBorrowerLoad = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
If frmBorrowBookLoad = False And frmReturnBookLoad = False Then
ADOBbk.Close
End If
frmBorrowerLoad = False
End Sub
5、frmBorrowBook 查找信息管理
Option Explicit
Public AdoBow As New ADODB.Recordset
Dim HaveBook As Boolean
Dim HaveReader As Boolean
Private Sub btnBorrow_Click()
AdoBow.MoveFirst
AdoBow.Find "图书编号=" & "'" & lblBookID.Caption & "'" ', 0, adSearchBackward, adBookmarkFirst
AdoBow.Fields(8).Value = "OUT"
AdoBow.Update
frmBorrower.ADOBbk.AddNew
frmBorrower.ADOBbk.Fields(0).Value = Trim(lblReaderID)
frmBorrower.ADOBbk.Fields(1).Value = Trim(lblReaderName)
frmBorrower.ADOBbk.Fields(2).Value = Trim(lblReaderPhone)
frmBorrower.ADOBbk.Fields(3).Value = Trim(lblReaderAddr)
frmBorrower.ADOBbk.Fields(4).Value = Trim(lblBookID)
frmBorrower.ADOBbk.Fields(5).Value = Date
frmBorrower.ADOBbk.Fields(6).Value = Trim(lblReadernote)
frmBorrower.ADOBbk.Update
'Set frmBorrower.ADOBbk = Nothing
'frmBorrower.ADOBbk.Open "BorrowBook", ADOCon, adOpenDynamic, adLockOptimistic, -1
HaveBook = False
HaveReader = False
Call CanBorrow
Call btnClear_Click
Call SynData
End Sub
Private Sub btnClear_Click()
lblBookID.Caption = ""
lblBookName.Caption = ""
lblBookAuthor.Caption = ""
lblBookConcern.Caption = ""
lblBookPrice.Caption = ""
lblBookDate.Caption = ""
lblBookClass.Caption = ""
lblBookContain.Caption = ""
lblReaderID.Caption = ""
lblReaderName.Caption = ""
lblReaderPhone.Caption = ""
lblReaderAddr.Caption = ""
lblReadernote.Caption = ""
End Sub
Private Sub btnClose_Click()
Unload Me
End Sub
Private Sub btnFindBook_Click()
Dim BookID As String
On Error GoTo LabErr
BookID = InputBox("请输入您要查找的图书编号
展开阅读全文