一、系統可行性分析與總體設計
通過對一些典型的圖書館管理系統的考察,從管理員和讀者的視角出發,以操作方面界面美觀簡潔的原則,要求本系統具有以下特點:
(1)具有友好的顯示界面。
(2)處理效率快,操作簡便、實用,便于后期維護。
(3)支持數據備份和還原,保護系統數據,減少不必要的損失。
(4)數據計算系統自動完成,盡量減少人工干預。
(5)本信息查詢時,可根據查詢條件動態顯示查詢結果。根據以上對圖書館管理系統的需求分析,一個標準的圖書館管理系統應該包含信息設置、庫存管理、借閱管理、報表打印、系統維護等功能,每一個功能模塊都包含了一系列的子模塊。信息設置功能實現對圖書類別設置、讀者信息設置、訂購新書等的維護。它提供增加、修改、刪除和查詢功能。2圖書館管理系統具體實現
二、主窗體的實現過程
主窗體用于調用程序的所有功能。用戶輸入正常的用戶名和密碼就可以進入圖書館管理系統的主窗體中,該主窗體主要由菜單欄、帶圖片的工具欄、左側的樹狀導航菜單、右側的功能列表以及底部的狀態欄組成。用戶單擊左側樹狀導航菜單中的節點,可以在右側的窗格中顯示出該主菜單下的子菜單。例如,選擇“借閱管理”選項,將在右側窗格中顯示該菜單下的所有子菜單。
1、主窗體的設計
(1)在工程中新建一個窗體,命名為frmmain,設置Caption屬性為“圖書館管理系統”,Boderstyle屬性為1-FixedSingle,MinButton屬性為True。
(2)利用菜單編輯器設置圖書館管理系統的主菜單。選擇“工具”/“菜單編輯器”命令,打開菜單編輯器。
(3)在窗體上添加一個TreeView控件、一個ListView控件和一個Im-ageList控件。
(4)在窗體上添加兩個ADO控件,使用其默認名,分別用于連接Table_zcd表和Table_zcd_zcd表。
(5)在窗體上添加一個StatusBar控件。用鼠標右鍵單擊StatusBar控件,在彈出的快捷菜單中選擇“屬性”命令,在彈出的“屬性頁”對話框中選擇“窗格”選項卡,添加4個窗格,分別用于顯示歡迎信息、操作員、日期時間和程序網址。
(6)在窗體上添加一個Timer控件,使用默認名,設置Interval屬性為60,用于狀態欄顯示日期和時間。(7)在窗體上添加若干Label控件,用于執行相應操作。
2、主窗體的代碼設計
(1)給菜單添加代碼下面是“信息設置”/“圖書類別設置”菜單中的代碼:PrivateSubmnufen_Click()frmbooksort.Show1‘調用圖書類別設置窗體EndSub
(2)鼠標移動的效果在菜單欄下面的位置是利用圖片和Label1控件實現的類似工具欄功能的按鈕。在背景圖片上繪制出需要的功能,利用Label控件顯示該圖片的功能名稱。這里顯示名稱的Label控件是一個命名為Lbl_info的控件數組,在每一個Lbl_info控件和背景圖片上再放置一個Label控件,用于觸發鼠標移動事件,將其設置為名為Lbl_Pic的控件數組。當鼠標在Lbl_Pic控件上移動時,改變對應的Lbl_info控件中文字的顏色,將其設置為紅色;當鼠標在窗體上移動時,將Lbl_info控件中文字的顏色設置為黑色。實現的關鍵代碼如下:’鼠標在Lbl_Pic控件上移動PrivateSubLbl_Pic_MouseMove(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSin-gle)Lbl_info(Index).ForeColor=RGB(255,0,0)‘設置Lbl_info的文字為紅色EndSub’鼠標在窗體上移動PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)DimiAsInteger‘定義整形變量Fori=0ToLbl_info.Count-1Lbl_info(i).ForeColor=RGB(0,0,0)‘設置所有Lbl_info的文字為黑色NextiEndSub
(3)添加工具欄命令當用戶單擊Lbl_Pic控件時,即可調用對應的功能,這里利用數組Index屬性來判斷單擊的是哪一個控件,并執行對應的功能。關鍵代碼如下:PrivateSubLbl_Pic_Click(IndexAsInteger)SelectCaseIndex‘根據index的不同調用不同的操作Case0:frmaddnew.Show1‘調用圖書登記窗體Case1:frmdzxxgl.Show1‘調用讀者管理窗體Case2:frmdzjsgl.Show1‘調用借書管理窗體Case3:frmdzhsgl.Show1‘調用還書管理窗體Case4:frmcqtx.Show1‘調用超時提醒窗體Case5:frm_lb_cx.Show1‘調用檢索圖書窗體Case6:End‘關閉程序EndSelectEndSub
3、讀者信息管理模塊的實現過程
(1)讀者信息管理模塊的設計
讀者信息管理模塊的主要功能是對圖書館的讀者信息進行管理,可以對該信息進行增、刪、改、查等操作。在主菜單中選“信息設置”/“讀者信息設置”命令,即可進入讀者信息管理窗體中,在該窗體中選擇“添加讀者”選項卡,單擊“增加”按鈕,開始添加讀者信息。信息添加完成后,單擊“保存”按鈕,開始添加讀者信息。信息添加完成后,單擊“保存”按鈕,即可將輸入的讀者信息保存到數據庫中。
(2)讀者信息管理模塊的代碼設計
①自動生成讀者編號。運行程序,在“添加讀者”選項卡中單擊“增加”按鈕,即可在“讀者編號”文本框中自動生成讀者編號,這里主要利用ADO執行SQL語句,查詢數據庫中的讀者編號,將最后一個讀者的編號加1,生成新的讀者編號,并將其填寫到“讀者編號”文本框中,同時將焦點移動到“讀者姓名”文本框中。
②保存讀者信息。將讀者信息都輸入完后,單擊“保存”按鈕,即可將讀者信息保存到數據庫中。這里主要是用數據庫連接對象來執行SQL語句,將數據信息保存到數據庫中。
③修改讀者信息。如果讀者的基本信息發生改變,可以通過“修改信息”選項卡來修改讀者信息,并將其保存到數據庫中。運行程序,選擇“修改信息”選項卡,在“讀者編號”文本框中輸入要修改的讀者編號,按Enter鍵,如果存在該讀者信息,則將讀者的基本信息顯示在文本框中;否則,彈出提示信息,清空“讀者編號”文本框。這里主要是利用數據集對象執行SQL語句來查詢數據庫中是否存在該記錄。
4、讀者借書管理模塊的實現過程
(1)讀者借書管理模塊的設計讀者借書管理模塊的主要功能是將讀者的借書信息保存到數據庫中,并可以對讀者的借書信息進行刪除操作。用戶在主窗體中選擇“借閱管理”/“讀者借書管理”命令,即可進入到讀者借書管理模塊中。在該窗體中,用戶輸入“讀者編號”,按Enter鍵,即可顯示讀者的姓名;在“條碼號”文本框中輸入讀者要借圖書的條碼,按Enter鍵,即可顯示所借圖書的信息;輸入借書數量,單擊借書數量,單擊“借出當前圖書”按鈕,即可將該圖書借出。
(2)讀者借書管理模塊的代碼設計
①顯示讀者信息。用戶在“讀者編號”文本框中輸入讀者的編號信息,按Enter鍵,系統將自動在讀者信息表(dzxxtb)中查找具有該讀者編號的讀者信息。如果具有該信息,則將讀者姓名顯示在“讀者姓名”文本框中,并將光標設置在“條碼號”文本框中;如果沒有相應的數據信息,則提示相應的信息并清空。這里主要利用ADO控件來實現數據查詢。
②顯示借閱信息。“條碼號”文本框用于輸入圖書的條碼,這個條碼一般是利用條形碼掃描器獲得的。在“條碼號”文本框中輸入圖書的條碼,當該文本框失去焦點以后,就開始在圖書信息表(books)中查詢具有該條碼的圖書信息,如果查詢到信息,則將相應的圖書信息顯示在對應的文本框中;如果沒有相應的圖書信息,則提示相應的信息,并清空文本框。
③借出圖書。在“借出數量”文本框中輸入借書數量,然后單擊“借出當前圖書”按鈕,即可借出圖書。此時系統會首先查看借書信息內容添加是否完全,接著查看該讀者的借出本數是否超出限制,如果超出限制,則提示信息;否則,將該信息寫入讀者借書表(dzjstb),并將圖書信息表(books)中的“復本數”和“借書數量”兩個字段的數據進行修改,執行完畢后,彈出提示信息,并刷新圖書信息表中的內容。
5、圖書丟失管理模塊的實現過程
圖書丟失管理模塊的主要功能是記錄圖書丟失信息。用戶在主窗體中選擇“借閱管理”/“圖書丟失管理”命令,即可進入到圖書丟失管理模塊中。在該模塊中輸入讀者的編號和丟失圖書的條碼號,按Enter鍵即可顯示該讀者借閱該書的信息,單擊“丟失”按鈕顯示“丟失”,單擊“確定”按鈕,將丟失信息寫入數據庫。在該模塊中還可以對丟失圖書的信息進行查詢,輸入查詢條件,例如,查詢讀者編號是100003的圖書丟失信息,單擊“查詢”按鈕,即可將編號是100003的讀者的圖書丟失信息顯示在表格中。最后,使用黑盒測試方法,對系統需求分析階段與概要設計階段提出的功能要求進行逐一測試。
作者:田青 單位:長春師范大學圖書館