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
End If
Text15.Text = Adodc2.Recordset.Fields("書名")
……
End If
End Sub
4.5圖書查詢
(a)界面設計:
(b)功能介紹:對圖書可根據不同的條件進行查詢(圖書編號、書名、作者、出版社)。
(c)代碼實現:
Private Sub Command1_Click()
Select Case combo1.ListIndex
Case 0
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實現數據庫的操作。整個系統實現了一般圖書館系統中的功能。