田 青
(長(zhǎng)春師范大學(xué)圖書(shū)館,吉林長(zhǎng)春 130032)
進(jìn)入21世紀(jì)以來(lái),信息技術(shù)從根本上推動(dòng)了圖書(shū)館的飛速發(fā)展,計(jì)算機(jī)和計(jì)算機(jī)管理系統(tǒng)已成為圖書(shū)館進(jìn)行圖書(shū)管理的主要設(shè)備和系統(tǒng)。雖然目前很多大型的圖書(shū)館已經(jīng)有一整套比較完善的管理系統(tǒng),但是在一些中小型的圖書(shū)館中,大部分的工作仍需手工來(lái)完成,工作起來(lái)效率比較低,不便于動(dòng)態(tài)、及時(shí)地調(diào)整圖書(shū)結(jié)構(gòu)。為了更好地適應(yīng)當(dāng)前圖書(shū)館的管理需求,解決手工管理效率低、容易出錯(cuò)的問(wèn)題,圖書(shū)管理電子化應(yīng)成為中小型圖書(shū)館的首要選擇。本文所開(kāi)發(fā)的圖書(shū)館管理系統(tǒng)將先進(jìn)的信息技術(shù)運(yùn)用到圖書(shū)館管理和服務(wù)中,從而改變了圖書(shū)館的傳統(tǒng)管理模式。
基于上述考慮,本系統(tǒng)采用Visual Basic 程序語(yǔ)言作為前端的開(kāi)發(fā)應(yīng)用工具,利用Access 2003 數(shù)據(jù)庫(kù)作為后臺(tái)數(shù)據(jù)庫(kù),利用Windows 作為系統(tǒng)平臺(tái)快發(fā)圖書(shū)管理系統(tǒng)。嚴(yán)格按照軟件工程學(xué)的方法進(jìn)行設(shè)計(jì),從問(wèn)題定義、可行性分析、系統(tǒng)總體設(shè)計(jì)、整體概念設(shè)計(jì)、系統(tǒng)詳細(xì)設(shè)計(jì)、系統(tǒng)運(yùn)行到后期維護(hù)、系統(tǒng)編碼以及軟件測(cè)試,每一階段都在前一階段基礎(chǔ)上設(shè)計(jì),并在每一階段都有相應(yīng)的文檔資料。
手工的圖書(shū)管理不能準(zhǔn)確、完整、及時(shí)地為管理者和讀者提供圖書(shū)信息和數(shù)據(jù),使工作人員在管理過(guò)程中容易出錯(cuò),工作效率低下。因此,為了克服上述弊端,圖書(shū)管理的電子化成為發(fā)展的必然趨勢(shì)。圖書(shū)管理系統(tǒng)在圖書(shū)館工作人員的日常工作中起著尤為重要的作用,因此開(kāi)發(fā)一套合理、有效、規(guī)范、實(shí)用的圖書(shū)館管理系統(tǒng)迫在眉睫。
通過(guò)對(duì)一些典型的圖書(shū)館管理系統(tǒng)的考察,從管理員和讀者的視角出發(fā),以操作方面界面美觀簡(jiǎn)潔的原則,要求本系統(tǒng)具有以下特點(diǎn):(1)具有友好的顯示界面。(2)處理效率快,操作簡(jiǎn)便、實(shí)用,便于后期維護(hù)。(3)支持?jǐn)?shù)據(jù)備份和還原,保護(hù)系統(tǒng)數(shù)據(jù),減少不必要的損失。(4)數(shù)據(jù)計(jì)算系統(tǒng)自動(dòng)完成,盡量減少人工干預(yù)。(5)本信息查詢時(shí),可根據(jù)查詢條件動(dòng)態(tài)顯示查詢結(jié)果。根據(jù)以上對(duì)圖書(shū)館管理系統(tǒng)的需求分析,一個(gè)標(biāo)準(zhǔn)的圖書(shū)館管理系統(tǒng)應(yīng)該包含信息設(shè)置、庫(kù)存管理、借閱管理、報(bào)表打印、系統(tǒng)維護(hù)等功能,每一個(gè)功能模塊都包含了一系列的子模塊。其整個(gè)系統(tǒng)功能如圖1所示。
信息設(shè)置功能實(shí)現(xiàn)對(duì)圖書(shū)類別設(shè)置、讀者信息設(shè)置、訂購(gòu)新書(shū)等的維護(hù)。它提供增加、修改、刪除和查詢功能,其功能結(jié)構(gòu)如圖2所示。
圖1 圖書(shū)館管理系統(tǒng)功能結(jié)構(gòu)
圖2 功能模塊
主窗體用于調(diào)用程序的所有功能。用戶輸入正常的用戶名和密碼就可以進(jìn)入圖書(shū)館管理系統(tǒng)的主窗體中,該主窗體主要由菜單欄、帶圖片的工具欄、左側(cè)的樹(shù)狀導(dǎo)航菜單、右側(cè)的功能列表以及底部的狀態(tài)欄組成。用戶單擊左側(cè)樹(shù)狀導(dǎo)航菜單中的節(jié)點(diǎn),可以在右側(cè)的窗格中顯示出該主菜單下的子菜單。例如,選擇“借閱管理”選項(xiàng),將在右側(cè)窗格中顯示該菜單下的所有子菜單。
2.1.1 主窗體的設(shè)計(jì)
(1)在工程中新建一個(gè)窗體,命名為frmmain,設(shè)置Caption 屬性為“圖書(shū)館管理系統(tǒng)”,Boderstyle 屬性為1-Fixed Single,MinButton 屬性為T(mén)rue。(2)利用菜單編輯器設(shè)置圖書(shū)館管理系統(tǒng)的主菜單。選擇“工具”/“菜單編輯器”命令,打開(kāi)菜單編輯器。(3)在窗體上添加一個(gè)TreeView 控件、一個(gè)ListView 控件和一個(gè)ImageList 控件。(4)在窗體上添加兩個(gè)ADO 控件,使用其默認(rèn)名,分別用于連接Table_zcd 表和Table_zcd_zcd表。(5)在窗體上添加一個(gè)StatusBar 控件。用鼠標(biāo)右鍵單擊StatusBar 控件,在彈出的快捷菜單中選擇“屬性”命令,在彈出的“屬性頁(yè)”對(duì)話框中選擇“窗格”選項(xiàng)卡,添加4個(gè)窗格,分別用于顯示歡迎信息、操作員、日期時(shí)間和程序網(wǎng)址。(6)在窗體上添加一個(gè)Timer 控件,使用默認(rèn)名,設(shè)置Interval 屬性為60,用于狀態(tài)欄顯示日期和時(shí)間。(7)在窗體上添加若干Label 控件,用于執(zhí)行相應(yīng)操作。
2.1.2 主窗體的代碼設(shè)計(jì)
(1)給菜單添加代碼
下面是“信息設(shè)置”/“圖書(shū)類別設(shè)置”菜單中的代碼:
Private Sub mnufen_Click()
frmbooksort.Show 1‘調(diào)用圖書(shū)類別設(shè)置窗體
End Sub
(2)鼠標(biāo)移動(dòng)的效果
在菜單欄下面的位置是利用圖片和Label1 控件實(shí)現(xiàn)的類似工具欄功能的按鈕。在背景圖片上繪制出需要的功能,利用Label 控件顯示該圖片的功能名稱。這里顯示名稱的Label 控件是一個(gè)命名為L(zhǎng)bl_info 的控件數(shù)組,在每一個(gè)Lbl_info 控件和背景圖片上再放置一個(gè)Label 控件,用于觸發(fā)鼠標(biāo)移動(dòng)事件,將其設(shè)置為名為L(zhǎng)bl_Pic 的控件數(shù)組。當(dāng)鼠標(biāo)在Lbl_Pic 控件上移動(dòng)時(shí),改變對(duì)應(yīng)的Lbl_info 控件中文字的顏色,將其設(shè)置為紅色;當(dāng)鼠標(biāo)在窗體上移動(dòng)時(shí),將Lbl_info 控件中文字的顏色設(shè)置為黑色。實(shí)現(xiàn)的關(guān)鍵代碼如下:
’鼠標(biāo)在Lbl_Pic 控件上移動(dòng)
Private Sub Lbl_Pic_MouseMove(Index As Integer,Button As Integer,Shift As Integer,x As Single,y As Single)
Lbl_info(Index).ForeColor=RGB(255,0,0)
‘設(shè)置Lbl_info 的文字為紅色
End Sub
’鼠標(biāo)在窗體上移動(dòng)
Private Sub Form_MouseMove(Button As Integer,Shift As Integer,x As Single,y As Single)
Dim i As Integer‘定義整形變量
For i=0 To Lbl_info.Count-1
Lbl_info(i).ForeColor=RGB(0,0,0)
‘設(shè)置所有Lbl_info 的文字為黑色
Next i
End Sub
(3)添加工具欄命令
當(dāng)用戶單擊Lbl_Pic 控件時(shí),即可調(diào)用對(duì)應(yīng)的功能,這里利用數(shù)組Index 屬性來(lái)判斷單擊的是哪一個(gè)控件,并執(zhí)行對(duì)應(yīng)的功能。關(guān)鍵代碼如下:
Private Sub Lbl_Pic_Click(Index As Integer)
Select Case Index‘根據(jù)index 的不同調(diào)用不同的操作
Case 0:frmaddnew.Show 1‘調(diào)用圖書(shū)登記窗體
Case 1:frmdzxxgl.Show 1‘調(diào)用讀者管理窗體
Case 2:frmdzjsgl.Show 1‘調(diào)用借書(shū)管理窗體
Case 3:frmdzhsgl.Show 1‘調(diào)用還書(shū)管理窗體
Case 4:frmcqtx.Show 1‘調(diào)用超時(shí)提醒窗體
Case 5:frm_lb_cx.Show 1‘調(diào)用檢索圖書(shū)窗體
Case 6:End‘關(guān)閉程序
End Select
End Sub
2.2.1 讀者信息管理模塊的設(shè)計(jì)
讀者信息管理模塊的主要功能是對(duì)圖書(shū)館的讀者信息進(jìn)行管理,可以對(duì)該信息進(jìn)行增、刪、改、查等操作。在主菜單中選“信息設(shè)置”/“讀者信息設(shè)置”命令,即可進(jìn)入讀者信息管理窗體中,在該窗體中選擇“添加讀者”選項(xiàng)卡,單擊“增加”按鈕,開(kāi)始添加讀者信息。信息添加完成后,單擊“保存”按鈕,開(kāi)始添加讀者信息。信息添加完成后,單擊“保存”按鈕,即可將輸入的讀者信息保存到數(shù)據(jù)庫(kù)中。
2.2.2 讀者信息管理模塊的代碼設(shè)計(jì)
(1)自動(dòng)生成讀者編號(hào)。運(yùn)行程序,在“添加讀者”選項(xiàng)卡中單擊“增加”按鈕,即可在“讀者編號(hào)”文本框中自動(dòng)生成讀者編號(hào),這里主要利用ADO 執(zhí)行SQL 語(yǔ)句,查詢數(shù)據(jù)庫(kù)中的讀者編號(hào),將最后一個(gè)讀者的編號(hào)加1,生成新的讀者編號(hào),并將其填寫(xiě)到“讀者編號(hào)”文本框中,同時(shí)將焦點(diǎn)移動(dòng)到“讀者姓名”文本框中。
(2)保存讀者信息。將讀者信息都輸入完后,單擊“保存”按鈕,即可將讀者信息保存到數(shù)據(jù)庫(kù)中。這里主要是用數(shù)據(jù)庫(kù)連接對(duì)象來(lái)執(zhí)行SQL 語(yǔ)句,將數(shù)據(jù)信息保存到數(shù)據(jù)庫(kù)中。
(3)修改讀者信息。如果讀者的基本信息發(fā)生改變,可以通過(guò)“修改信息”選項(xiàng)卡來(lái)修改讀者信息,并將其保存到數(shù)據(jù)庫(kù)中。運(yùn)行程序,選擇“修改信息”選項(xiàng)卡,在“讀者編號(hào)”文本框中輸入要修改的讀者編號(hào),按Enter 鍵,如果存在該讀者信息,則將讀者的基本信息顯示在文本框中;否則,彈出提示信息,清空“讀者編號(hào)”文本框。這里主要是利用數(shù)據(jù)集對(duì)象執(zhí)行SQL 語(yǔ)句來(lái)查詢數(shù)據(jù)庫(kù)中是否存在該記錄。
2.3.1 讀者借書(shū)管理模塊的設(shè)計(jì)
讀者借書(shū)管理模塊的主要功能是將讀者的借書(shū)信息保存到數(shù)據(jù)庫(kù)中,并可以對(duì)讀者的借書(shū)信息進(jìn)行刪除操作。用戶在主窗體中選擇“借閱管理”/“讀者借書(shū)管理”命令,即可進(jìn)入到讀者借書(shū)管理模塊中。在該窗體中,用戶輸入“讀者編號(hào)”,按Enter 鍵,即可顯示讀者的姓名;在“條碼號(hào)”文本框中輸入讀者要借圖書(shū)的條碼,按Enter 鍵,即可顯示所借圖書(shū)的信息;輸入借書(shū)數(shù)量,單擊借書(shū)數(shù)量,單擊“借出當(dāng)前圖書(shū)”按鈕,即可將該圖書(shū)借出。
2.3.2 讀者借書(shū)管理模塊的代碼設(shè)計(jì)
(1)顯示讀者信息。用戶在“讀者編號(hào)”文本框中輸入讀者的編號(hào)信息,按Enter 鍵,系統(tǒng)將自動(dòng)在讀者信息表(dzxxtb)中查找具有該讀者編號(hào)的讀者信息。如果具有該信息,則將讀者姓名顯示在“讀者姓名”文本框中,并將光標(biāo)設(shè)置在“條碼號(hào)”文本框中;如果沒(méi)有相應(yīng)的數(shù)據(jù)信息,則提示相應(yīng)的信息并清空。這里主要利用ADO 控件來(lái)實(shí)現(xiàn)數(shù)據(jù)查詢。
(2)顯示借閱信息?!皸l碼號(hào)”文本框用于輸入圖書(shū)的條碼,這個(gè)條碼一般是利用條形碼掃描器獲得的。在“條碼號(hào)”文本框中輸入圖書(shū)的條碼,當(dāng)該文本框失去焦點(diǎn)以后,就開(kāi)始在圖書(shū)信息表(books)中查詢具有該條碼的圖書(shū)信息,如果查詢到信息,則將相應(yīng)的圖書(shū)信息顯示在對(duì)應(yīng)的文本框中;如果沒(méi)有相應(yīng)的圖書(shū)信息,則提示相應(yīng)的信息,并清空文本框。
(3)借出圖書(shū)。在“借出數(shù)量”文本框中輸入借書(shū)數(shù)量,然后單擊“借出當(dāng)前圖書(shū)”按鈕,即可借出圖書(shū)。此時(shí)系統(tǒng)會(huì)首先查看借書(shū)信息內(nèi)容添加是否完全,接著查看該讀者的借出本數(shù)是否超出限制,如果超出限制,則提示信息;否則,將該信息寫(xiě)入讀者借書(shū)表(dzjstb),并將圖書(shū)信息表(books)中的“復(fù)本數(shù)”和“借書(shū)數(shù)量”兩個(gè)字段的數(shù)據(jù)進(jìn)行修改,執(zhí)行完畢后,彈出提示信息,并刷新圖書(shū)信息表中的內(nèi)容。
圖書(shū)丟失管理模塊的主要功能是記錄圖書(shū)丟失信息。用戶在主窗體中選擇“借閱管理”/“圖書(shū)丟失管理”命令,即可進(jìn)入到圖書(shū)丟失管理模塊中。在該模塊中輸入讀者的編號(hào)和丟失圖書(shū)的條碼號(hào),按Enter 鍵即可顯示該讀者借閱該書(shū)的信息,單擊“丟失”按鈕顯示“丟失”,單擊“確定”按鈕,將丟失信息寫(xiě)入數(shù)據(jù)庫(kù)。在該模塊中還可以對(duì)丟失圖書(shū)的信息進(jìn)行查詢,輸入查詢條件,例如,查詢讀者編號(hào)是100003 的圖書(shū)丟失信息,單擊“查詢”按鈕,即可將編號(hào)是100003 的讀者的圖書(shū)丟失信息顯示在表格中。最后,使用黑盒測(cè)試方法,對(duì)系統(tǒng)需求分析階段與概要設(shè)計(jì)階段提出的功能要求進(jìn)行逐一測(cè)試。
[1]高春燕,劉彬彬.Visual Basic 開(kāi)發(fā)實(shí)戰(zhàn)寶典[M].北京:清華大學(xué)出版社,2010.
[2]劉瑞新.Visual Basic 管理信息系統(tǒng)開(kāi)發(fā)畢業(yè)設(shè)計(jì)指導(dǎo)及實(shí)例[M].北京:機(jī)械工業(yè)出版社,2005.
[3]龍冬云.數(shù)據(jù)庫(kù)原理與應(yīng)用[M].北京:電子工業(yè)出版社,2005.
[4]張海藩.軟件工程導(dǎo)論[M].4 版.北京:清華大學(xué)出版社,2003.
[5]黎連業(yè),李淑春.管理信息系統(tǒng)設(shè)計(jì)與實(shí)施[M].北京:清華大學(xué)出版社,1998.
[6]Roger Jennings.中文Access 2000 開(kāi)發(fā)使用手冊(cè)[M].北京:機(jī)械工業(yè)出版社,2007.
[7]劉炳文.Visual Basic 程序設(shè)計(jì)教程[M].3 版.北京:清華大學(xué)出版社,2006.
[8]劉文濤.Visual Basic+Access 數(shù)據(jù)庫(kù)開(kāi)發(fā)與實(shí)例[M].北京:清華大學(xué)出版社,2006.
[9]胡大敏.載體媒體視閾下大學(xué)圖書(shū)館閱讀推廣研究[J].大學(xué)圖書(shū)館學(xué)報(bào),2012(3):96-99.