【正文】
將借閱情況記錄在讀者的借書卡上,所借圖書的數(shù)目和相關(guān)信息就記錄在文件中,這樣不僅手續(xù)煩瑣而且要耗費大量的人力物力 。 2. 查詢和統(tǒng)計困難,在圖書館管理工作中,每天都會產(chǎn)生大量的借書、還書信息,這些信息都要進行統(tǒng)計管理。 2. 能夠快速方便地進行各類圖書和讀者相關(guān)信息的查詢。由此對于用戶的需求,可以從以下幾方面分析: 1. 圖書館工作人員通過計算機來管理各類圖書,進行分類編號、調(diào)整圖書結(jié)構(gòu)、增加圖書庫存,以適應(yīng)讀者的需求。而系統(tǒng)設(shè)計的 任務(wù) 是在系統(tǒng)分析的基礎(chǔ)上,考慮經(jīng)濟、技術(shù)和運行環(huán)境等各方面的條件,確定系統(tǒng)的總體結(jié)構(gòu)和系統(tǒng)各組成部分的技術(shù)方案, 合理選擇計算機和通信的軟硬件設(shè)備,提出系統(tǒng)的實施計劃。當(dāng)要添加新的圖書 信息 時,系統(tǒng)會彈出新的窗口,工作人員可以進行新圖書信息的錄入,在保存的時候要檢驗圖書編號是否重復(fù), 如果添加的圖書編號重復(fù)則要對用戶進行提示,只有在不重復(fù)的情況下才能進行圖書的添加。該模塊提供了包括圖書編號、圖書類別、圖書名稱、出版社、圖書價格以及登記日期在內(nèi)的各種查詢條件,讀者可以根據(jù)這些單個的查詢條件或它們的組合來進行所需圖書信息的查詢。 續(xù)借部分:在進行了用戶信息的確認后,只需要更新需要續(xù)借圖書的借書日期即可完成對該圖書的續(xù)借了。同時,該模塊也提供模糊查詢的能夠以方便工作人員的查詢。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。 ? 借閱信息,包括的數(shù)據(jù)項有:讀者編號、圖書編號、借書日期、還書日期、超出天數(shù)、罰款金額等。 根據(jù)上面的設(shè)計得到的實體有:讀者信息表、圖書信息表、圖書類別表、借閱信息表、廣西師范學(xué)院 2021屆本科畢業(yè) 論文 7 基本信息 表。 根據(jù)系統(tǒng)功能的需求, 選擇 Access 作為數(shù)據(jù)庫開發(fā)工具,它完全可以適合工作需求,并且它所支持的數(shù)據(jù)類型非常豐富,維護又簡單,費用比較底,而人員的素質(zhì)要求不是很高,且容易升級。 各表間的關(guān)系如圖 2所示。而開發(fā)這樣一個小型的信息管理系統(tǒng)在一般的計算機上就可以進行,所需耗費的資源和費用并不高,對運行環(huán)境的要求也不高, 加之現(xiàn)在計算機的管理成本在不斷降低, 這對于一般的中學(xué)而言在經(jīng)濟上 是 完全可以承受 的 。本系統(tǒng)完全可以在一般的個人計算機上進行開發(fā) 和運行 , 而當(dāng)今發(fā)展日趨完善的 網(wǎng)絡(luò)為系統(tǒng) 服務(wù)器 /客戶端 (S/C)的結(jié)構(gòu)提供了硬件 上的支持。在 前面的數(shù)據(jù)庫設(shè)計 中,已經(jīng)使用 Access 來設(shè)計數(shù)據(jù)庫,即選擇 Access 作為后臺數(shù)據(jù)庫。 軟件環(huán)境:操作系統(tǒng)為 Windows 2021(SP4),Windows 2021 或 Windows XP。 圖 9 系統(tǒng)運行主界面 創(chuàng)建借閱信息管理窗體模塊 鑒于借閱信息管理模塊在整個系統(tǒng)中的重要地位,所以首先著重介紹這一 窗體模塊。同樣在“續(xù)借圖書”標簽頁下,工作人員通過輸入讀者編號,系統(tǒng)便會列出該讀者所有已借的圖書信息,工作人員選擇其中讀者要續(xù)借的圖書后,在“借書日期改為”的日期選擇框中選擇要修改的日期,最后單擊“確定”按鈕就可以完成對該圖書的續(xù)借工作了。 首先定義項目級變量,保存數(shù)據(jù)庫的連接和減少重復(fù)的變量定義。響應(yīng)這一事件的代碼如下: Private Sub txtReaderID_KeyPress(KeyAscii As Integer) ’ 判斷用戶按下回車鍵并且是否輸入讀者編號 If KeyAscii = 13 And Then ’ 根 據(jù)輸入的讀者編號,查找讀者姓名 g_strSql = select * from readerInfo where 讀者編號 =39。 ’ 進行數(shù)據(jù)庫的查詢 Set g_rs = (g_strSql) ’判斷是否找到 If Not Then = g_rs!讀者姓名 InitDataGrid(False) ’ 初始化 DataGrid 控件信息 Else MsgBox 沒有該讀者信息! ,vbOkOnly, 提示 = End If Set g_rs = Nothing ElseIf KeyAscii = 13 And = Then MsgBox 請先輸入讀者編號 ,vbOkOnly, 提示 End If End Sub 其中 InitDataGrid()函數(shù)主要是為了進行 DataGrid 控件的顯示,因為在“正常借書”和“續(xù)借”中都 有 DataGrid 控件顯示的問題,因此要用函數(shù)中的參數(shù)來區(qū)分是正常借書頁面還是續(xù)借頁面,以分別進行相關(guān)的操作。 _ , ,_ from readerInfo,_ bookInfo,lentInfo,bookType _ amp。 strReaderID amp。 amp。 , _ 廣西師范學(xué)院 2021屆本科畢業(yè) 論文 17 from bookInfo,bookType where 圖書編號 =39。 amp。更新 bookInfo 表 ,設(shè)置該書是否借出屬性為 借出 g_strSql = select * from bookInfo where 圖書編號 =39。 Set g_rs = (g_strSql) (是否借出 ).Value = True Set g_rs = Nothing ’ 提示借書操作完成,并清空記錄 廣西師范學(xué)院 2021屆本科畢業(yè) 論文 19 ??(代碼略) ’進行 DataGrid 控件初始化, False 參數(shù)表明的正常借書標簽頁 InitDataGrid (False) Else MsgBox 您的書已經(jīng)借滿 ,不能再借 !, vbOKOnly, 提示 End If Else MsgBox 請先輸入讀者編號 !, vbOKOnly, 提示 End If End Sub 至此,借書的操作就完成了。 下面是響應(yīng)“續(xù)借圖書”中“確定”按鈕的 單擊事件的相關(guān)代碼: Private Sub cmdOK_Click() 某中學(xué) 圖書館信息 管理 系統(tǒng)的設(shè)計與實現(xiàn) 20 g_strSql = select * from lentInfo where 圖書編號 =39。 and 讀者編號 =39。 and 借書日期 =_ amp。通過確認的圖書便會在下面的多個文本框中顯示該書的信息。 from readerInfo,_ bookInfo,lentInfo,bookType where _ = _ amp。 39。_ amp。 _ amp。 amp。 39。只要在窗體中輸入各個查詢條件,單擊“查詢” 按鈕系統(tǒng)便會根據(jù)所輸入的查詢 條件查找滿足條件的數(shù)據(jù)。響應(yīng)這一事件的代碼如下: Private Sub cmdFind_Click() ’ 根據(jù)查詢條件進行查詢 Dim strSQL As String Dim strCon(5) As String ’保存查詢條件 Dim i As Integer ’獲得查詢條件,根據(jù)是否選擇“執(zhí)行模糊查詢”分別進行查詢條件的設(shè)置 ’獲得圖書編號查詢條件 If Then If = 1 Then strCon(1) = like 39。 Else strCon(1) = =39。 End If Else 廣西師范學(xué)院 2021屆本科畢業(yè) 論文 25 strCon(1) = End If ’獲得圖書名稱查詢條件 If Then If = 1 Then strCon(2) = like 39。 Else strCon(2) = =39。 End If Else strCon(2) = End If ’獲得讀者編號查詢條件 ??(代碼略) ’獲得讀者姓名查詢條件 ??(代碼略) ’獲得借書日期查詢條件 ??(代碼略) ’查詢結(jié)果包含幾個表的信息 strSQL = select ?? ?? (相應(yīng)代碼略) ’根據(jù)查詢條件進行查詢語句的設(shè)置 For i = 1 To 5 If strCon(i) Then strSQL = strSQL + and + strCon(i) End If Next ’連接數(shù)據(jù)庫 ??(代碼略) 某中學(xué) 圖書館信息 管理 系統(tǒng)的設(shè)計與實現(xiàn) 26 End Sub 而當(dāng)單擊“清空”按鈕時,將清空所有的查詢條件。 當(dāng)要刪除圖書時,工作人員在列表中選擇將要刪除的圖書,然后單擊 “刪除”按鈕,這時系統(tǒng)會彈出確認對話框,提示是否確認要刪除該圖書信息,在得到確認后,便會刪除該圖書信息。 廣西師范學(xué)院 2021屆本科畢業(yè) 論文 27 圖 13 圖書管理窗體的設(shè)計界面 圖 14 添加新書窗體的設(shè)計界面 圖 15 修改圖書窗體的設(shè)計界面 該窗體在加載時, Ado Data 控件要進行數(shù)據(jù)庫的連接,同時在 DataGrid 控件中將相某中學(xué) 圖書館信息 管理 系統(tǒng)的設(shè)計與實現(xiàn) 28 關(guān)信息顯示出來。_ Data Source= amp。實現(xiàn)這一事件的代碼如下: Private Sub cmdSave_Click() ’保存新添加的圖書信息 Set g_rs = (SELECT * FROM bookInfo,_ dbOpenDynaset) 39。 保存修改 Set g_rs = Nothing MsgBox 新書添加完畢 , vbOKOnly, 提示 End Sub 在修改圖書信息時,首先選定要修改的圖書信息,然后單擊“修改”按鈕,便會彈出修改圖書窗體,該窗體上顯示出要修改圖書的信息,以便工作人員進行修改后,單擊“保存”按鈕就可 進行圖書的更新了。 窗體界面的設(shè)計及相關(guān)代碼的編寫 根據(jù)上述 的功能,該窗體的設(shè)計界面如 圖 16所示。單擊“清 空”按鈕就對所有查詢條件進行清空,單擊“關(guān)閉”按鈕就關(guān)閉該窗口。其主要代碼如下: Private Sub cmdFind_Click() Dim strSQL As String Dim strCon(6) As String ’保存設(shè)置的查詢條件 Dim intCount As Integer ’判斷用戶添寫的條件的數(shù)目 Dim i As Integer intCount = 0 廣西師范學(xué)院 2021屆本科畢業(yè) 論文 33 ’獲得查詢條件,根據(jù)是否選擇“執(zhí)行模糊查詢”分別進行查詢條件的設(shè)置 ’獲得 圖書編號查詢條件 If Then If = 1 Then strCon(1) = 圖書編號 like 39。 Else strCon(1) = 圖書編號 =39。 End If Else strCon(1) = End If ’獲得圖書名稱查詢條件 ??(代碼略) ’獲得類別代碼查詢條件 ??(代碼略) ’獲得出版社查詢條件 ??(代碼略) ’獲得圖書價格查詢條件 ??(代碼略) ’獲得登記日期查詢條件 ??(代碼略) ’根據(jù)查詢條件進行查詢 SQL 語句的設(shè)置 If strCon(1) = And strCon(2) = And strCon(3) = And _ strCon(4) = And strCon(5) = And strCon(6) = Then strSQL = select * from bookInfo Else strSQL = select * from bookInfo where For i = 1 To 6 某中學(xué) 圖書館信息 管理 系統(tǒng)的設(shè)計與實現(xiàn) 34 If strCon(i) Then intCount = intCount + 1 If intCount = 1 Then strSQL = strSQL + strCon(i) Else strSQL = s