【正文】
存放圖書信息 輸入數(shù)據(jù):無(wú) 輸出數(shù)據(jù):圖書信息 數(shù)據(jù)文件組成:圖書 庫(kù)由“圖書信息”組成 ⑶ 數(shù)據(jù)文件名:圖書訪問記錄庫(kù) 簡(jiǎn)述:存放圖書訪問記錄信息 輸入數(shù)據(jù):圖書訪問記錄 輸出數(shù)據(jù):圖書訪問記錄 數(shù)據(jù)文件組成:圖書訪問記錄庫(kù)由“圖書訪問記錄”組成 讀者還書過程的數(shù)據(jù)流圖和數(shù)據(jù)詞典 數(shù)據(jù)流圖 讀者還書過程數(shù)據(jù)流程如圖 所示 。在這個(gè)窗體上添加所需的控件,窗體和控件的屬性設(shè)置見表 41 所示。狀態(tài)欄控件需要在通常的屬性窗口中設(shè)置一般屬性,還需要在其特有的彈出式菜單中進(jìn)行設(shè)置。創(chuàng)建好的 主 窗體 如圖 所示。這樣可以極大地提高代碼的效率。在所有的功能模塊都需要這個(gè)函數(shù),所以將它放在公用模塊中,代碼如下: Public Sub EnterToTab(Keyasc As Integer) ?判斷是否為回車鍵 If Keyasc=13 Then ?轉(zhuǎn)換成 Tab 鍵 SendKeys”{TAB}” End If End Sub Keyasc 用來(lái)保存當(dāng)前按鍵, SendKeys 函數(shù)用來(lái)指定的按鍵。 添加全局變量,用來(lái)記錄各個(gè)窗體的讀寫狀態(tài),代碼如下: Pubic flagRTedit As Boolean 16 Pubic gintRTmode As Integer Pubic flag Redit As Boolean Pubic gintRmode As Integer Pubic flagBTedit As Boolean Pubic gintBTmode As Integer Pubic flagBedit As Boolean Pubic gintBmode As Integer Pubic flagBOedit As Boolean Pubic gintBOmode As Integer Pubic flagBBedit As Boolean Pubic gintBBmode As Integer gintRTmode 變量用來(lái)記錄是添加狀態(tài)還是修改狀態(tài),賦值 1 為添加,賦值 2 為修改。其他全局變量同理。如果登陸者是授權(quán)用戶,將進(jìn)入系統(tǒng),否則將停止程序的執(zhí)行。 系統(tǒng)用戶管理模塊的創(chuàng)建 系統(tǒng)啟動(dòng)后 , 將首先出現(xiàn)如圖 所示的窗體。如果用戶 3 次輸入的密碼不正確,將退出程序。這些控件的屬性設(shè)置見表 42 所示。 為窗體定義全局變量 OK,用來(lái)判斷登 錄 是否成功;定義 Cnt,用來(lái)記載輸入密碼的次 18 數(shù) , 并且在載入窗體時(shí)初始化這兩個(gè)全局變量,代碼如下: ?強(qiáng)制變量聲明 Option Explicit Pubic OK As Boolean ?記錄確定次數(shù) Dim miscount As Integer Private Sub Form_Load() OK=False miscount=0 End Sub Option Explicit 是用來(lái)規(guī)定所有變量使用前必須定義。 當(dāng)用戶輸入完用戶名和用戶 密碼,單擊 cmdOK 按鈕將對(duì)用戶輸入信息進(jìn)行判斷。 圖 用戶表 代碼如下: Option Explicit Dim t As Integer 39。 data source= amp。 \ If Trim() = Then MsgBox 用戶名不能為空,請(qǐng)重新輸入! Else 19 sql = select * from 用戶表 where user_ID=39。 Trim() amp。 sql, conn, adOpenKeyset, adLockPessimistic If = True Then MsgBox 沒有這個(gè)用戶 ,請(qǐng)重輸入! , vbOKOnly + vbExclamation, = Else username = If Trim((1)) = Trim() Then Unload Me Else MsgBox 密碼不正確 ,請(qǐng)重輸入! , vbOKOnly + vbExclamation, = End If End If End If t = t + 1 If t = 3 Then Unload Me End If End Sub Private Sub Form_Load() t = 0 End Sub 用戶如果沒有輸入用戶名和用戶密碼,將出現(xiàn)消息框給予提示。例如在圖 用戶登 錄 窗體中的用戶名中輸入 “ 100” ,將在數(shù)據(jù)庫(kù)中用戶表中的 user_ID 中進(jìn)行匹配,如圖 用戶表所示, user_ID 中沒有 “ 100” ,這時(shí)系統(tǒng)將出示提示框 “ 沒有這個(gè)用戶,請(qǐng)重新輸入 ” 。例如在圖 用戶登 錄 窗體中的用戶名中輸入 “ 110” ,密碼中輸入 “ 1234” ,將先對(duì)數(shù)據(jù)庫(kù)中用戶表的 user_ID 中的項(xiàng)進(jìn)行匹配,如圖 用戶表中所示,有 “ 110” 這一項(xiàng),用戶名匹配成功,接著將密碼 “ 1234” 與 user_ID 中 “ 110” 想對(duì)應(yīng)的 mima 中的項(xiàng) 20 進(jìn)行匹配,發(fā)現(xiàn)與 “ 110” 所對(duì)應(yīng)的項(xiàng)是 “ 3333” ,密碼匹配不成功,這時(shí)系統(tǒng)將出示提示框 “ 密碼不正確,請(qǐng)重新輸入 ” 。公用模塊中的 Main 過程將根據(jù) OK 的值決定是退出,或者進(jìn)入系統(tǒng)。 添加讀者種類窗體的創(chuàng)建 添加讀者種類窗體是在窗體上放置多個(gè)文本框,用來(lái)輸入讀者種類信息;兩個(gè)按鈕用來(lái)確定是否添加讀 者種類信息;多個(gè)標(biāo)簽用來(lái)提示文本框中需要輸入的內(nèi)容。 圖 添加讀者類別窗體 在載入窗體時(shí),將會(huì)連接數(shù)據(jù)庫(kù)當(dāng)中的讀者類別表,如圖 所示 。Provider = 。data source=D:\圖書管理系統(tǒng) \ provider=。 amp。 amp。 39。最后根據(jù)狀態(tài)來(lái)顯示相應(yīng)的信息:如果是添加狀態(tài),將提示添加成功,然后重新顯示并清空所有文本框,以便繼續(xù)添加記錄:如果處于修改狀態(tài),將提示修改成功,然后更新 所有記錄的列表。 23 圖 查詢書籍信息窗體 用戶設(shè)置查詢方式并輸入查詢內(nèi)容后,單擊“確定”按鈕后,將會(huì)連接到數(shù)據(jù)庫(kù)當(dāng)中的書籍信息表,如圖 所示。用戶也可以選擇使用多項(xiàng)條件查詢,多項(xiàng)條件查詢可以更準(zhǔn)確的查找到用戶所需要的書籍信息。 程序代碼如下: Option Explicit Dim panduan As String Private Sub Command1_Click() Dim rs_findbook As New Dim conn As New Dim sql As String If = vbChecked Then sql = 書名 =39。 Trim( amp。 39。 amp。 ) amp。 Else sql = sql amp。 amp。 ) amp。 End If End If If = vbChecked Then If Trim(sql) = Then sql = 作者 =39。 Trim( amp。 39。 and 作者 =39。 Trim( amp。 39。 amp。 ) amp。 Else sql = sql amp。 amp。 ) amp。 End If End If If = vbChecked Then If Trim(sql) = Then sql = 出版社 =39。 Trim( amp。 39。 and 出版社 =39。 Trim( amp。 39。 data source= amp。 \ If Trim(sql) = Then MsgBox 請(qǐng)選擇查詢方式 !, vbOKOnly + vbExclamation Exit Sub End If sql = select * from 書籍信息 where amp。 26 圖 借書窗體 實(shí)現(xiàn) 程序代碼如 下: Private Sub Command3_Click() If Trim(book_num) = Then MsgBox 請(qǐng)選擇要借閱的圖書 !, vbOKOnly + vbExclamation Exit Sub End If If panduan = 是 Then MsgBox 此書已被借出 !, vbOKOnly + vbExclamation Exit Sub End If Unload Me End Sub Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) book_num = (0).CellValue() panduan = (7).CellValue() End Sub 27 Private Sub Form_Load() Dim rs_find As New Dim conn As New Dim sql As String sql = select * from 圖書類別 provider=。 amp。 28 第五章 結(jié)果與討論 由于時(shí)間的關(guān)系本文初步的完成了圖書館管理信息系統(tǒng)中的主窗體創(chuàng)建、用戶管理模塊的創(chuàng)建、添加讀者類別窗體的創(chuàng)建和查詢書籍信息窗體的創(chuàng)建。本 畢業(yè)設(shè)計(jì)論文對(duì)系統(tǒng)的 需求分析 、模型分析、設(shè)計(jì)和實(shí)現(xiàn) 作了較詳細(xì)地?cái)⑹?,表?了面向?qū)ο蟮乃枷朐谙到y(tǒng)開發(fā)中的優(yōu)越性。 工作成果 針對(duì)各圖書館信息管理的特點(diǎn),開發(fā)了圖書館管理信息系統(tǒng),具備了圖書館管理中所需要的各種基本功能: ; ; ; 問題與不足 本文中所開發(fā)的圖書館管理信息系統(tǒng)還有很多不足之處: ; ,無(wú)法保證完全滿足用戶各方面的要求; 。為今后開發(fā)和設(shè)計(jì)信息系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)打下了深厚的基礎(chǔ)。在學(xué)習(xí)過程中,遇到了許多的問題,經(jīng)過努力,我終于沖破了這些難點(diǎn)。但同時(shí)使我了解了一種新的思路,使我獲益匪淺。關(guān)于學(xué)習(xí)與實(shí)踐:學(xué)到的知識(shí)是有限的,面對(duì)的實(shí)踐應(yīng)用是多種多樣的,所學(xué)很可能無(wú)法滿足所用,必須在實(shí)踐中、在應(yīng)用中不斷學(xué)習(xí)不斷提高,這次完成畢業(yè)設(shè)計(jì)的過程中我學(xué)到了許多從前聞所未聞的知識(shí)和技能。 總之,這次設(shè)計(jì)是我受益 匪 淺。尤其是軟 29 件的設(shè)計(jì)過程和思路的開拓益處更多。在即將離校之際,能有這次實(shí)踐的機(jī)會(huì),深感難得,同時(shí)感到學(xué)無(wú)止境,在今后的學(xué)習(xí)和工作中,我會(huì)不斷的充實(shí)自己。 由于本人的能力有限,設(shè)計(jì)論文中一定存在許多問題和不足 ,望各位老師和同學(xué)能夠給予批評(píng)和指正,我將不勝感激!