圖書管理系統(tǒng)程序設(shè)計(jì)論文_第1頁
圖書管理系統(tǒng)程序設(shè)計(jì)論文_第2頁
圖書管理系統(tǒng)程序設(shè)計(jì)論文_第3頁
圖書管理系統(tǒng)程序設(shè)計(jì)論文_第4頁
圖書管理系統(tǒng)程序設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、圖書管理系統(tǒng)內(nèi)容摘要圖書管理系統(tǒng)是采用VisualBasic.NET開發(fā)的一個管理系統(tǒng)。開發(fā)本系統(tǒng)的基本步驟:系統(tǒng)概念設(shè)計(jì)、系統(tǒng)邏輯和物理設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)和維護(hù)。在系統(tǒng)分析中先后用到數(shù)據(jù)流程、系統(tǒng)的功能結(jié)構(gòu)圖、ER圖分析了系統(tǒng)所需的各種數(shù)據(jù)。在系統(tǒng)的設(shè)計(jì)過程中,我們采用了模塊獨(dú)立設(shè)計(jì)法,比較詳細(xì)的展現(xiàn)了各個模塊的功能。在庫和表的設(shè)計(jì)當(dāng)中,我們力求層次清晰,設(shè)計(jì)簡單實(shí)用。在系統(tǒng)具體實(shí)行階段中,我們精心細(xì)致的畫出了各個窗體并給出了相應(yīng)的事件和代碼,以實(shí)現(xiàn)各個窗體的作用。關(guān)鍵詞:ER圖模塊獨(dú)立設(shè)計(jì)法公共模塊引言一個簡單的圖書管理系統(tǒng)設(shè)計(jì)包括:圖書名稱、圖書編號、單價、作者、存在狀態(tài)、借書人姓名、性別、

2、學(xué)號等查詢。它的系統(tǒng)功能:新進(jìn)圖書基本信息的輸入;圖書基本信息的查詢;對撤銷圖書信息的刪除;為借書人辦理注冊;辦理借書手續(xù);辦理還書手續(xù)等操作。功能概述一、圖書管理部分:包括圖書信息管理和類別管理,其功能是實(shí)現(xiàn)對各部分?jǐn)?shù)據(jù)內(nèi)容進(jìn)行添加、修改、查詢等操作。二、讀者管理部分:包括讀者信息管理,其功能是實(shí)現(xiàn)對各部分?jǐn)?shù)據(jù)內(nèi)容的添加和修改等操作。三、借閱管理部分:包括借書管理和還書管理,其功能是實(shí)現(xiàn)對各部分?jǐn)?shù)據(jù)內(nèi)容的添加和查詢等操作。四、系統(tǒng)管理部分:包括修改系統(tǒng)用戶密碼和增加新用戶兩項(xiàng)功能。名字:讀者信息查詢報(bào)表別名:讀者信息表描述:讀者基本情況查詢結(jié)果的信息表定義:讀者信息查詢報(bào)表二讀者編號+讀者姓

3、名+性別+學(xué)號+班級+登記日期+已借書數(shù)量位置:輸出到打印機(jī)名字:圖書信息查詢報(bào)表別名:圖書信息表描述:各種書籍查詢基本信息表定義:圖書信息查詢報(bào)表=圖書編號+書名+類別+作者+單價+出版社+出版日期+登記日期+存在的狀態(tài)+借書人的姓名位置:輸出到打印機(jī)1.1.數(shù)據(jù)流程圖數(shù)據(jù)流程圖是描述實(shí)際業(yè)務(wù)管理系統(tǒng)工作流程的一種圖形表示法。它描繪系統(tǒng)的邏輯模型圖,其中沒有任何具體的物理元素,只是描繪信息在系統(tǒng)中流動和處理的情況。因?yàn)閿?shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解,所以是極好的通信工具。此外,設(shè)計(jì)數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮如何具體地實(shí)現(xiàn)這

4、些功能,所以它也是軟件設(shè)計(jì)的很好的出發(fā)點(diǎn)。圖書管理系統(tǒng)主要是為了對圖書、讀者基本信息等進(jìn)行計(jì)算機(jī)管理。下面就是對各個功能模塊的流程分析:1圖書信息管理基本信息流程圖流程圖分析:圖書基本信息的流動首先是以圖書編號為流動方向的依據(jù),來達(dá)到添加、修改、記錄、刪除圖書記錄。為了數(shù)據(jù)的一致性,進(jìn)行這些操作的同時,也對數(shù)據(jù)庫中的記錄進(jìn)行檢查,檢查是否有重復(fù)的記錄。如有則不能進(jìn)行添加。2讀者類別管理基本信息流程圖流程圖分析:讀者類別基本信息的流動首先是以讀者類別編號為流動方向的依據(jù),來達(dá)到添加、修改、記錄讀者類別記錄。為了數(shù)據(jù)的一致性,進(jìn)行這些操作的同時,也對數(shù)據(jù)庫中的記錄進(jìn)行檢查,檢查是否有重復(fù)的記錄。如

5、沒有則可進(jìn)行添加。3讀者信息管理基本信息流程圖流程圖分析:讀者基本信息的流動首先是以讀者的編號為依據(jù),來達(dá)到添加、修改、查詢、刪除讀者信息的記錄。同時,也對數(shù)據(jù)庫中的讀者信息表的編號進(jìn)行檢查。4借書管理基本信息流程圖流程圖分析:借書管理基本信息的流動首先是以借閱編號為流動方向的依據(jù),來達(dá)到添加、查詢借書記錄。為了數(shù)據(jù)的一致性,進(jìn)行這些操作的同時,也對數(shù)據(jù)庫中的記錄進(jìn)行檢查,檢查是否有重復(fù)的記錄。如沒有則可進(jìn)行添加。5還書管理基本信息流程圖還書管理添加刪除查詢流程圖分析:借閱管理部分是實(shí)現(xiàn)對各部分?jǐn)?shù)據(jù)內(nèi)容的添加和查詢操作,在借閱信息中包括借閱編號、讀者編號、讀者姓名、書籍名稱、出借日期和還書日期

6、。并通過添加功能來達(dá)到借閱信息表的數(shù)據(jù)的更新,通過查詢可使管理員很快地了解借閱信息,從而避免書籍的丟失現(xiàn)象產(chǎn)生。通過上面對各個模塊流程的分析,那么我們就不難對整個系統(tǒng)的大致流程有一個全面的認(rèn)識。設(shè)計(jì)時采用了常用的自頂向下的瀑布式結(jié)構(gòu)化設(shè)計(jì)方法。各子系統(tǒng)具有獨(dú)立的數(shù)據(jù)庫結(jié)構(gòu),同時又具有相關(guān)的關(guān)鍵字,這樣系統(tǒng)做起來后就便于用戶操作。綜合上面各個模塊的流程分析,2.1.系統(tǒng)的概念設(shè)計(jì)概念設(shè)計(jì)階段主要任務(wù)和目標(biāo)是根據(jù)題目設(shè)計(jì)要求,包括一般聯(lián)系實(shí)體,畫出對應(yīng)的ER圖。對于復(fù)雜的系統(tǒng),通常首先要對它的各功能模進(jìn)行分析,然后再把它的功能結(jié)構(gòu)圖畫出來,便是設(shè)計(jì)和優(yōu)化。功能分析之后,再根據(jù)各個崗位、各個用戶對數(shù)

7、據(jù)和使用權(quán)限的不同要求作出局部ER圖,然后再把各個局部ER圖綜合起來形成統(tǒng)一的整體ER圖。3.1模塊功能分析圖書管理部分:包括圖書基本信息管理和添加新的圖書,其功能是實(shí)現(xiàn)對各部分?jǐn)?shù)據(jù)內(nèi)容進(jìn)行添加、修改、查詢等操作。各管理部分的明細(xì)如下:(1)圖書管理:包括、圖書信息的修改、圖書信息的查詢和圖書的信息刪除4部分。其中,圖書信息查詢包括圖書編號、書名、圖書類別、作者、出版社、出版日期、登記日期以及它的存在狀態(tài)。借閱管理部分:包括借書管理和還書管理,其功能是實(shí)現(xiàn)對各部分?jǐn)?shù)據(jù)內(nèi)容的添加和查詢等操作。各管理部分的明細(xì)如下:借書管理:包括添加借書信息和查詢借書信息2部分功能。其中,借閱信息包括借閱編號、讀

8、者編號、讀者姓名、圖書編號、圖書名稱、出借日期和還書日期。還書管理:實(shí)現(xiàn)添加還書信息功能。其中,還書信息與借閱信息部分明細(xì)相同。讀者管理部分:包括讀者信息管理和讀者類別管理,其功能是實(shí)現(xiàn)對各部分?jǐn)?shù)據(jù)內(nèi)容的添加和修改、刪除等操作。各管理部分的明細(xì)如下:(1)讀者信息管理:包括讀者信的添加、讀者信息的修改、讀者信息的查詢和讀者信息的刪除4部分功能。其中,讀者信息包括讀者姓名、讀者編號、性別、學(xué)號、班級、登記日期和已借書數(shù)量。系統(tǒng)管理部分:包括修改系統(tǒng)用戶密碼、增加新用戶和退出系統(tǒng)三項(xiàng)功能。3.2系統(tǒng)功能結(jié)構(gòu)圖圖書管理系統(tǒng)3.3數(shù)據(jù)庫的設(shè)計(jì)數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)

9、的好壞將直接對應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。同時,合理的數(shù)據(jù)庫結(jié)構(gòu)也將有利于程序的實(shí)現(xiàn)。設(shè)計(jì)數(shù)據(jù)庫系統(tǒng)時應(yīng)該首先充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。針對圖書管理系統(tǒng)的需求,通過對圖書管理系統(tǒng)流程分析,設(shè)計(jì)此系統(tǒng)需要如下面所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):圖書信息:包括的數(shù)據(jù)項(xiàng)有:圖書編號、書名、圖書類別、單價、作者出版社、出版日期、登記日期讀者信息:包括的數(shù)據(jù)項(xiàng)有:讀者姓名、編號、性別、讀者類別、工作單位、家庭住址、電話號碼、登記日期和已借書數(shù)量圖書借閱信息:包括的數(shù)據(jù)項(xiàng)有:借閱編號、讀者編號、讀者姓名、

10、圖書編號、圖書名稱、出借日期和還書日期。圖書類別表字段名數(shù)據(jù)類型說明類別名稱文本必添字段“是”,允許空字符為“否”類別編號文本必添字段“是”,允許空字符為“否”2.圖書信息表字段名數(shù)據(jù)類型說明圖書編號文本必添字段“是”,允許空字符為“否”書名文本必添字段“是”,允許空字符為“否”類別文本字段大小50作者文本字段大小50單價文本字段大小50出版社文本字段大小50出版日期日期/時間無登記日期日期/時間無是否借出文本字段大小23.借閱信息表字段名數(shù)據(jù)類型說明借閱編號自動編號無讀者編號文本字段大小50讀者姓名文本字段大小50圖書編號文本字段大小50圖書名稱文本字段大小50出借日期日期/時間無4.讀者信

11、息表字段名數(shù)據(jù)類型說明讀者姓名文本必添字段“是”,允許空字符為“否”讀者編號文本必添字段“是”,允許空字符為“否”性別文本字段大小2學(xué)號文本字段大小50班級文本字段大小50電話號碼文本字段大小50登記日期日期/時間無已借數(shù)量數(shù)字無5.讀者類別表字段名數(shù)據(jù)類型說明種類名稱文本必添字段“是”,允許空字符為“否”借書數(shù)量數(shù)字無借書期限數(shù)字無有限期限數(shù)字無4.1功能模塊的實(shí)現(xiàn)411數(shù)據(jù)庫設(shè)計(jì)這里的數(shù)據(jù)庫采用Access,用ADO作為連接數(shù)據(jù)對象。1、建立Access數(shù)據(jù)庫啟動Access,建立一個空的數(shù)據(jù)庫book.mdb,如圖3所示。使用程序設(shè)計(jì)器建立系統(tǒng)需要的表格如下。圖書登記表,如圖4所示。圖3

12、建立數(shù)據(jù)庫book.mdb圖4圖書登記表圖書借閱表,如圖5所示。圖5圖書借閱表圖書資料表,如圖6所示。系統(tǒng)管理表,如圖7所示。嚼311扯rtfl毗閔!KKmu:L皿na沁WSHISTfciwh叵I%:t圖6圖書資料表引用Xtit1.vbpnKitTTJT:Jr神軸*Aatta1AAHWLfE網(wǎng)iffwhbui唯砒如曲t字竝“玨胃暮啊ikjfUtIE粘=rettttt匸師.Frmfl圖7系統(tǒng)管理表VsXUlilI-LTIFm-CBlSiCCiL*MjlddiI-111ifruliCLi-ibj4亡野比il4*lsrtidLEiiEieobjtttikndprwlf藥*弔?NF供州E!“WL!T%

13、IIicr&xc-ffcDilaif:L3.iC61JLi-etin.A-clavr莖IIEHia伸說Fr&ri.djr軋guTyr*LtMir護(hù)Jlaliv*StUif匚師蛇!Librvr4vaBiivijtrfvwiji1*1ra百llt.Tsrrr1ASlitl-krCMCv&uhi.KOTyt*LkltfuyI住MIISFfoIbej!10ThuLibrtrk-抵Kcctix?QTfp*LWvfAjevv-空IJEtC-i=iTian.MlHicf*雲(yún)誕tAcliwIPiiMObjifecitf20LiWur定也CtPrE-prmFala-xf-ama-bnF&1xt31mSbbtvi

14、ScI?tlb誦倉味It2、連接數(shù)據(jù)在VisualBasic環(huán)境下,選擇“工程”f“引用”命令,在隨后出現(xiàn)的對話框中選擇“MicrosoftActiveXDataObjects2.0Library”,然后單擊“確定”按鈕,如圖8所示。圖8用ADO連接數(shù)據(jù)庫在程序設(shè)計(jì)的公共模塊中,先定義ADO連接對象。語句如下:PublicconnAsNewADODB.Connection標(biāo)記連接對象然后在子程序中,用如下的語句即可打開數(shù)據(jù)庫:DimconnectionstringAsStringconnectionstring=provider=Microsoft.Jet.oledb.4.0;&_dataso

15、urce=book.mdbconn.Openconnectionstring3、設(shè)置ODBCVB的ADO對象是通過ODBC來訪問數(shù)據(jù)庫,所以還要建立ODBC數(shù)據(jù)引擎接口。打開控制面板中的“管理工具”f“數(shù)據(jù)源”(ODBC),出現(xiàn)如圖9所示的對話框。圖9DBC對話框單擊“添加”按鈕,出現(xiàn)“創(chuàng)建新數(shù)據(jù)源”對話框,如圖10。軻打番敦掘溥岡.曲豪巻證為甘亦羽畠跛匪助時謹(jǐn)昇AAIiTrfijbn-(a-AFsTdxc-ftdBuiJiftrLvwr(dtf)dtl常PrF(h非門XI&4rr.LBfl.lhiiw4?Arrtn(Jb)&TLWFIhw昭oftdfi電阿.Jbf)DrL4r1E-il6Dt

16、Lviar-Acn-axfCFurvlrsx(Jb)Pri刖j-w*pVipailFgFr審NteroxftAce:4isItrir*r1圖10創(chuàng)建新數(shù)據(jù)源”對話框選擇MicrosoftAccessDriver(*.mdb),單擊“完成”按鈕,出現(xiàn)如圖11對話框。圖11置連接數(shù)據(jù)源在“數(shù)據(jù)源名”文本框中添加一個名字,單擊“確定”按鈕完成系統(tǒng)默認(rèn)連接設(shè)置。然后在ODBC對話框中單擊“確定”按鈕完成ODBC設(shè)置。4.1.2界面設(shè)計(jì)圖1圖書管理系統(tǒng)界面菜單應(yīng)用程序中,有3個菜單選項(xiàng),每個選項(xiàng)對應(yīng)著的一個子項(xiàng)目。1、創(chuàng)建主窗體首先創(chuàng)建一個工程,命名為廣西大學(xué)圖書管理系統(tǒng),選擇“工程”f“添加MDI窗體

17、”命令,則在項(xiàng)目中添加了主窗體。該窗體的一些屬性如表1所示。表1主窗體的屬性屬性值Caption廣西大學(xué)圖書管理系統(tǒng)NameMainfrmMenuMainmenu1WindowstateMaxsizeWindowstate的值為Maxsize,即程序啟動之后自動最大化。將“菜單”組件從“工具箱”拖到窗體上。創(chuàng)建一個Text屬性設(shè)置為“文件”的頂級菜單項(xiàng),且?guī)в忻麨椤瓣P(guān)閉”的子菜單項(xiàng)。類似地創(chuàng)建一些菜單項(xiàng),如表2所示。表2菜單項(xiàng)表菜單名稱Text屬性功能描述MnuFile控制頂級菜單,包含子菜單FenMnu圖書分類調(diào)出圖書信息查詢窗體AddMnu添加新書調(diào)出圖書添加窗體EditMnu圖書編輯調(diào)出

18、編輯圖書窗體EditIdMnu編輯借書證調(diào)出讀者編號編輯窗體ExitMnu退出退出系統(tǒng)ToolMnu工具頂級菜單,包含子菜單LoginMnu登陸調(diào)出讀者登陸窗體SearchMnu查找調(diào)出讀者查找圖書窗體BackMnu還書調(diào)出還書界面HelpMnu說明調(diào)出本次課程設(shè)計(jì)小組任務(wù)分工2、創(chuàng)建各子窗體選擇“工程”f“添加窗體”命令,添加子窗體。在新建VisualBasic工程時自帶的窗體中,將其屬性MIDChild改成True,則這個窗體成為MID窗體的子窗體。在這個項(xiàng)目中,要創(chuàng)建的子窗體如表3所示。表3所有子窗體子窗體名Text添加讀者AddBookId修改借書人員AEditBookId增加新用戶S

19、etPer圖書信息查詢Findfrm登錄系統(tǒng)LoginSys讀者登陸LentLogin圖書歸還及借閱Lentfrm查找圖書編號SearChid編輯修改圖書EditBook(2)增加用戶子窗體如圖13所示,其控件如表5所示。4.1.3建立公共模塊1、顯示目錄建立公共模塊可以提高代碼的效率,同時使得修改和維護(hù)代碼都很方便。創(chuàng)建公共模塊的步驟如下:在菜單中選擇“工程”f“添加模塊”命令,則出現(xiàn)模塊對話框,如圖18所示。選擇模塊圖標(biāo)后,單擊“打開”按鈕,則模塊已經(jīng)添加到項(xiàng)目中了。默認(rèn)情況下名為Module。Module(公共模塊)代碼如下PublicBookIdAsString借書證號碼PublicB

20、ookNumAsInteger可以借書的冊數(shù)PublicBookDayAsInteger可以借書的天數(shù)PublicFaCostAsSingle超出一天的罰款PublicLoginFlagAsBoolean是否登錄PublicBookBianHaoAsString圖書編號PublicSearchFlagAsBoolean是否查找PublicmAddEditIdAsStringPublicmAddEditIdNameAsStringPublicmAddEditldClassAsStringPublicmAddEditldDepartAsStringPublicmAddEditldZhiAsStri

21、ngPublicmSaveAsBooleanPublicDBpathAsString數(shù)據(jù)庫路徑PublicSETpathAsString設(shè)置文件路徑4.2效果及存在冋題(1)LoginSys(管理員登錄)管理員(admin密碼:admin)(2)Mainfrm(廣西大學(xué)圖書管理系統(tǒng))主界面(3)首先讀者需要先登錄才能進(jìn)行借書和還書的操作(4)查詢圖書狀態(tài)(4)添加新圖書冠添加新團(tuán)書新書基本信息圖書編號書名美別1出版社1價格1作者諳將以上信息埴寫完整,以便日后查詢添加取消()(5)編輯借書證編輯惜書證添加修改查找刪除關(guān)閉借書證號班級001ESH0902100401002計(jì)算機(jī)0902100402

22、003004005006007008TOC o 1-5 h zA-1C-lA-l0902100403090210040409021004050902100406090210040709021004082003-A-l網(wǎng)頁制作平面設(shè)計(jì)(6)歸還圖書4.2.2缺陷這個圖書管理系統(tǒng)幾大功能都實(shí)現(xiàn)了,缺陷就是沒有生成脫離數(shù)據(jù)庫和VB6.0環(huán)境運(yùn)行。由于時間關(guān)系,系統(tǒng)功能實(shí)現(xiàn)不夠完善,使用不是很方便.心得體會這個圖書管理系統(tǒng)的設(shè)計(jì)我最大的收獲就是懂得檢索以及學(xué)會系統(tǒng)的使用VB,以及懂得了調(diào)試程序重要性。根據(jù)圖書管理系統(tǒng)的需求設(shè)計(jì)出圖書管理系統(tǒng)的具體功能然后再編寫代碼,整個系統(tǒng)包含了15個窗體的設(shè)計(jì),拿到

23、題目的時候我到圖書館借了幾本關(guān)于VisualBasic.NET程序設(shè)計(jì)的資料書,里面有本書就有這個圖書管理系統(tǒng)設(shè)計(jì)的概述,有幾個功能(借閱,還書以及管理員設(shè)計(jì)的代碼),然后其中我也借用了一些窗體的代碼,整個系統(tǒng)在主界面(Mainfrm)設(shè)計(jì)和程序怎么調(diào)用數(shù)據(jù)庫上了花了大量的時間,期間我也找了學(xué)長問了一些相關(guān)問題,同時我也在網(wǎng)上找了好多的資料,Mainfrm設(shè)計(jì)經(jīng)過長時間的調(diào)試終于在*月*日完成,設(shè)計(jì)期間我找了些學(xué)長,從中了解到他們曾今也做過同樣的題目,他們思路是調(diào)用txt文件,而我采用是在系統(tǒng)中設(shè)計(jì)一個Access數(shù)據(jù)庫。這里的數(shù)據(jù)庫采用Access,用ADO作為連接數(shù)據(jù)對象。通過設(shè)置ODBC

24、,VB的ADO對象是通過ODBC來訪問數(shù)據(jù)庫,當(dāng)中必須建立ODBC數(shù)據(jù)引擎接口。在VB訪問數(shù)據(jù)庫時,我也花了很多的時間,兩大核心問題一解決的,整個系統(tǒng)就差不多成形了,然后對每個功能進(jìn)行調(diào)試,整個系統(tǒng)設(shè)計(jì)在12月15號就正式收工。數(shù)據(jù)庫設(shè)計(jì)主要是由*完成的,*主要負(fù)責(zé)整個ER圖的設(shè)計(jì)以及程序編寫,我主要是負(fù)責(zé)整個系統(tǒng)界面設(shè)計(jì),程序編寫以及論文編寫。由于時間有限,另外又有電子課程設(shè)計(jì),*老師一直在催我們弄電子課程設(shè)計(jì),所以時間分配上有點(diǎn)緊??傮w來說收獲還是蠻大的,體驗(yàn)到了學(xué)以致用的樂趣。參考文獻(xiàn)高智勇.中文版VisualBasic6.0實(shí)例教程.航空工業(yè)出版社,2000:12-34.丁衛(wèi)群.數(shù)據(jù)庫

25、系統(tǒng)概論.科學(xué)出版社,2001:63-79.紀(jì)多轍.VisualBasic.NET程序設(shè)計(jì)實(shí)踐教程.清華大學(xué)出版社,2006月8月1日廖望.VisualBasic.NET程序設(shè)計(jì)案例教程.冶金工業(yè)出版社,2004月3月1日李春葆.VisualBasic程序設(shè)計(jì).清華大學(xué)出版社,2008年5月1日 HYPERLINK /app/p?id=50611400 /app/p?id=506114007 HYPERLINK /view/6f6b4b92daef5ef7ba0d3c9c.html /view/6f6b4b92daef5ef7ba0d3c9c.html操作演示:(1)先運(yùn)行廣西大學(xué)圖書管理系統(tǒng)

26、.exe,彈出下面窗口管理員1(admin密碼:admin)(2)登陸成功然后需要讀者先登錄讀者借書證號:(001,002,.009)登錄請輸入借書證號碼|004|整錄關(guān)閉查找圖書添加新圖書編輯圖書編輯讀者歸還圖書附錄:Module(公共模塊)PublicBookIdAsString借書證號碼PublicBookNumAsInteger可以借書的冊數(shù)PublicBookDayAsInteger可以借書的天數(shù)PublicFaCostAsSingle超出一天的罰款PublicLoginFlagAsBoolean是否登錄PublicBookBianHaoAsString圖書編號PublicSearc

27、hFlagAsBoolean是否查找PublicmAddEditIdAsStringPublicmAddEditIdNameAsStringPublicmAddEditIdClassAsStringPublicmAddEditIdDepartAsStringPublicmAddEditIdZhiAsStringPublicmSaveAsBooleanPublicDBpathAsString數(shù)據(jù)庫路徑PublicSETpathAsString設(shè)置文件路徑AddBookId(添加借書人員)窗體下面為保存和取消按鈕的控件數(shù)組PrivateSubcmdOkCancel_Click(IndexAsInt

28、eger)SelectCaseIndexCase0確定按鈕初始化所有變量為空mAddEditId=mAddEditIdName=mAddEditIdClass=mAddEditIdDepart=mAddEditIdZhi=判斷借書證號和姓名是否為空,如為空給出提示IftxtBookId.Text=OrtxtBookIdName=ThenMsgBox請把借書證號或姓名填寫完整!”,0+48,提示ExitSubEndIf將新的資料分別賦給相應(yīng)變量,以存為數(shù)據(jù)庫mAddEditId=txtBookId.TextmAddEditIdName=txtBookIdName.TextmAddEditIdCl

29、ass=txtBookIdClass.TextmAddEditIdDepart=txtBookIdDepart.TextmAddEditIdZhi=txtBookIdZhi.TextUnloadMemSave=TrueCase1取消按鈕mSave=FalseUnloadMeEndSelectEndSubPrivateSubFramel_DragDrop(SourceAsControl,XAsSingle,YAsSingle)EndSubPrivateSubtxtBookId_GotFocus()設(shè)置光標(biāo)處于借書證號時,輸入框的背景色為藍(lán),前景色為黃txtBookId.BackColor=vbB

30、luetxtBookId.ForeColor=vbYellowEndSubPrivateSubtxtBookId_LostFocus()設(shè)置光標(biāo)離開借書證號時,輸入框的背景色為白,前景色為黑txtBookId.BackColor=vbWhitetxtBookId.ForeColor=vbBlackEndSubAddNewBook(添加新圖書)下面為保存和取消按鈕的控件數(shù)組PrivateSubcmdOkCancel_Click(IndexAsInteger)SelectCaseIndexCase0確定按鈕初始化所有變量為空mAddEditId=mAddEditIdName=mAddEditIdC

31、lass=mAddEditIdDepart=mAddEditIdZhi=判斷借書證號和姓名是否為空,如為空給出提示IftxtBookId.Text=OrtxtBookIdName=ThenMsgBox請把借書證號或姓名填寫完整!”,0+48,提示ExitSubEndIf將新的資料分別賦給相應(yīng)變量,以存為數(shù)據(jù)庫mAddEditId=txtBookId.TextmAddEditIdName=txtBookIdName.TextmAddEditIdClass=txtBookIdClass.TextmAddEditIdDepart=txtBookIdDepart.TextmAddEditIdZhi=t

32、xtBookIdZhi.TextUnloadMemSave=TrueCase1取消按鈕mSave=FalseUnloadMeEndSelectEndSubPrivateSubFramel_DragDrop(SourceAsControl,XAsSingle,YAsSingle)EndSubPrivateSubtxtBookId_GotFocus()設(shè)置光標(biāo)處于借書證號時,輸入框的背景色為藍(lán),前景色為黃txtBookId.BackColor=vbBluetxtBookId.ForeColor=vbYellowEndSubPrivateSubtxtBookId_LostFocus()設(shè)置光標(biāo)離開借

33、書證號時,輸入框的背景色為白,前景色為黑txtBookId.BackColor=vbWhitetxtBookId.ForeColor=vbBlackEndSubAEditBookId(修改借書人員)下面為保存和取消按鈕的控件數(shù)組PrivateSubcmdOkCancel_Click(IndexAsInteger)SelectCaseIndexCase0確定按鈕將輸入框內(nèi)容賦給相應(yīng)變量mAddEditId=txtBookId.TextmAddEditIdName=txtBookIdName.TextmAddEditIdClass=txtBookIdClass.TextmAddEditIdDepa

34、rt=txtBookIdDepart.TextmAddEditIdZhi=txtBookIdZhi.TextmSave=TrueUnloadMeCase1取消按鈕mSave=FalseUnloadMeEndSelectEndSubPrivateSubForm_Load()將相應(yīng)變量賦給輸入框txtBookId.Text=mAddEditIdtxtBookIdName=mAddEditIdNametxtBookIdClass=mAddEditIdClasstxtBookIdDepart=mAddEditIdDeparttxtBookIdZhi=mAddEditIdZhiEndSubPrivate

35、SubFramel_DragDrop(SourceAsControl,XAsSingle,YAsSingle)EndSubEditBook(編輯修改圖書)定義數(shù)據(jù)庫和記錄,以便調(diào)用數(shù)據(jù)庫DimdbAsDatabaseDimrstAsRecordsetDimRecAsIntegerDimdblAsDatabaseDimrstlAsRecordset定義StrFlag為字符型變量,定義NumFlag為布爾型變量DimStrFlagAsStringDimNumFlagAsBooleanPrivateSubcmdOkCancel_Click(IndexAsInteger)SelectCaseIndex

36、Case0修改、刪除、查找按鈕控件數(shù)組IfStrFlag=修改Then修改、保存、更新并顯示rst.EditWriteinrst.UpdateDispPicture2圖片框消失此圖片框上有確定和取消按鈕Picture2.Visible=FalsePicturel圖片框出現(xiàn)此圖片框上有Toolbar1控件,Toolbar1控件上有最前、前一個、后一個、最后和修改、刪除、查找按鈕Picture1.Visible=TrueSetTxt(False)ElseIfStrFlag=刪除Then刪除當(dāng)前記錄,并定位到上一個記錄rst.Deleterst.MovePrevious如果是最前記錄,則定位到下一條

37、記錄Ifrst.BOFThenrst.MoveNext調(diào)用Disp過程,將數(shù)據(jù)庫字段分別賦給相應(yīng)變量Disp顯示Picture2控件,隱藏Picture1控件Picture2.Visible=FalsePicture1.Visible=TrueEndIfCase1調(diào)用Disp過程Disp隱藏Picture2控件,顯示Picture1控件Picture2.Visible=FalsePicture1.Visible=True調(diào)用SetTxt過程,設(shè)置所有輸入框不可用SetTxt(False)EndSelectEndSubPrivateSubCommand1_Click()UnloadMeEndSu

38、bPrivateSubForm_Load()打開Database目錄下的Data.mdb數(shù)據(jù)庫并打開Book表DBpath=App.Path+DataBaseData.mdbSetdb=Workspaces(0).OpenDatabase(DBpath,False)Setrst=db.OpenRecordset(Book,dbOpenTable)對圖書編號建立索引,方便以后查詢rst.Index=圖書編號打開Database目錄下的Data.mdb數(shù)據(jù)庫并打開Type表Setdbl=Workspaces(0).OpenDatabase(DBpath,False)Setrst1=db1.Open

39、Recordset(Type,dbOpenTable)將記錄總數(shù)賦給變量RecRec=rst.RecordCount如果沒有記錄,使Toolbar1控件不可用Toolbar1控件上有最前、前一個、后一個、最后和修改、刪除、查找按鈕IfRec=0ThenToolbar1.Enabled=FalseSetTxt(False)EndIf使所有輸入框不可用SetTxt(False)將記錄號定位到最前rst.MoveFirst調(diào)用Disp和TypeAdd過程DispTypeAddPicture1顯示,Picture2隱藏Picture1.Visible=TruePicture2.Visible=Fals

40、eNumFlag=FalseEndSub定義Disp過程,將數(shù)據(jù)庫字段賦給相應(yīng)變量PrivateSubDisp()txtBookNum=rst.Fields(”圖書編號)&vbNullStringtxtBookName=rst.Fields(”書名)&vbNullStringtxtCost=rst.Fields(價格)&EmptytxtBookChu=rst.Fields(出版社)&vbNullStringTextbookzhe=rst.Fields(作者)&vbNullStringCombo1.Text=rst.Fields(類別)&vbNullStringEndSub定義Kong過程,使所

41、有輸入框?yàn)榭誔rivateSubKong()txtBookNum.Text=txtBookName.Text=txtCost.Text=txtBookChu.Text=Textbookzhe.Text=Combol.Text=EndSub定義SetTxt過程,控制輸入框是否可用PrivateSubSetTxt(BoolAsBoolean)txtBookNum.Enabled=BooltxtCost.Enabled=BooltxtBookName.Enabled=BooltxtBookChu.Enabled=BoolTextbookzhe.Enabled=BoolCombo1.Enabled=B

42、oolEndSub關(guān)閉窗體時,關(guān)閉所有打開的數(shù)據(jù)庫PrivateSubForm_Unload(CancelAsInteger)rst.Closerst1.Closedb1.Closedb.CloseEndSubToolbar1控件,此控件包含最前、前一個、后一個、最后和修改、刪除、查找共7個按鈕PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.IndexCase1最前按鈕rst.MoveFirstDispCase2前一個按鈕rst.MovePreviousIfrst.BOFThenrs

43、t.MoveNextExitSubEndIfDispCase3后一個按鈕rst.MoveNextIfrst.EOFThenrst.MovePreviousExitSubEndIfDispCase4最后按鈕rst.MoveLastDispCase10修改按鈕StrFlag=修改使所有輸入框可用SetTxt(True)labFlag.Caption=您確實(shí)要修改當(dāng)前記錄嗎?Picturel.Visible=FalsePicture2.Visible=TrueCase11刪除按鈕StrFlag=刪除labFlag.Caption=您確實(shí)要刪除當(dāng)前記錄嗎?Picture1.Visible=FalseP

44、icture2.Visible=TrueCase12查找按鈕顯示Searchid(查找圖書編號)窗體Searchid.Show(1)IfSearchFlag=TrueThen將輸入的編號和數(shù)據(jù)庫對比,如果沒有找到給出提示rst.Seek=,BookBianHaoIfrst.NoMatchThenMsgBox沒有此圖書編號!”,0+48,查找失敗ExitSubEndIf顯示圖書信息DispSearchFlag=FalseEndIfEndSelectEndSub定義WriteIn過程,將輸入框信息的保存到數(shù)據(jù)庫PrivateSubWriteIn()rst.Fields(圖書編號)=txtBookN

45、um.Textrst.Fields(書名)=txtBookName.Textrst.Fields(價格)=Val(txtCost.Text)rst.Fields(出版社)=txtBookChu.Textrst.Fields(作者)=Textbookzhe.Textrst.Fields(類別)=Combo1.TextEndSub定義TypeAdd過程,使Combo1組合框顯示數(shù)據(jù)庫中的所有類型PrivateSubTypeAdd()rst1.MoveLastrst1.MoveFirstFori=1Torst1.RecordCountCombo1.AddItemrst1.Fields(類別)rstl

46、.MoveNext如果到記錄末尾,退出本過程Ifrstl.EOFThenExitSubNextEndSubEditBookId(編輯借書證)定義db為數(shù)據(jù)庫類型,rst為記錄類型,Rec為整型變量DimdbAsDatabaseDimrstAsRecordsetDimRecAsIntegerPrivateSubAddMnu_Click()彈出菜單-添加cmdAdd_ClickEndSubPrivateSubcmdAdd_Click()添加按鈕定義loop1標(biāo)號,作為循環(huán)體使用,以便一直繼續(xù)輸入loop1:顯示AddBookId(修改借書人員)窗體AddBookId.Show(1)如果模塊級變量m

47、Save為真,則增加新記錄到數(shù)據(jù)庫IfmSaveThenrst.AddNewrst.Fields(”借書證號)=mAddEditIdrst.Fields(”姓名)=mAddEditIdNamerst.Fields(”班級)=mAddEditIdClassrst.Fields(”學(xué)號)=mAddEditIdDepartrst.Fields(”性別)=mAddEditIdZhirst.UpdateDispId保存成功,重設(shè)模塊級變量mSave為假,給出成功提示mSave=FalsevbYesThenIfMsgBox(已成功添加,要繼續(xù)添加按回車,否則按取消!”,4+32,添加成功)跳轉(zhuǎn)到標(biāo)號為lo

48、op1的位置繼續(xù)執(zhí)行GoToloop1ElseExitSubEndIfEndIfEndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubcmdDelete_Click()刪除按鈕定義TiShi為字符型變量,作為提示確定刪除記錄使用DimTiShiAsStringTiShi=確實(shí)要刪除&mLv.SelectedItem.Text&mLv.SelectedItem.SubItems(l)&嗎?如果點(diǎn)擊確定按鈕,刪除數(shù)據(jù)庫相應(yīng)記錄IfMsgBox(TiShi,4+32,刪除)=vbYesThenrst.Seek=,mLv.SelectedIte

49、m.Textrst.DeleteDispIdEndIfEndSubPrivateSubcmdEdit_Click()修改按鈕將數(shù)據(jù)庫相應(yīng)內(nèi)容賦給相應(yīng)變量DimiAsIntegeri=mLv.SelectedItem.Indexrst.Seek=,mLv.SelectedItem.TextmAddEditId=rst.Fields(”借書證號)mAddEditIdName=rst.Fields(姓名)mAddEditIdClass=rst.Fields(班級)mAddEditIdDepart=rst.Fields(學(xué)號)mAddEditIdZhi=rst.Fields(性別)顯示AEditBoo

50、kId(修改借書人員)窗體AEditBookId.Show(1)保存圖書基本信息IfmSaveThenrst.Editrst.Fields(借書證號)=mAddEditIdrst.Fields(姓名)=mAddEditIdNamerst.Fields(班級)=mAddEditIdClassrst.Fields(學(xué)號)=mAddEditIdDepartrst.Fields(性別)=mAddEditIdZhirst.Update使ListView控件的字段顯示數(shù)據(jù)庫姓名、班級、部門、職稱字段WithmLv.ListItems(i).SubItems(1)=rst.Fields(姓名).SubIte

51、ms(2)=rst.Fields(班級).SubItems(3)=rst.Fields(”學(xué)號).SubItems(4)=rst.Fields(”性別)EndWithDispIdmSave=FalseEndIfEndSubPrivateSubcmdSearch_Click()顯示Searchid(查找圖書編號)窗體Searchid.Show(1)IfSearchFlagThen對輸入編號和數(shù)據(jù)庫進(jìn)行比較,如果沒有找到給出提示rst.Seek=,BookBianHaoIfrst.NoMatchThenMsgBox沒有找到匹配記錄!”,0+48,查找失敗ExitSubEndIf清空ListView

52、控件內(nèi)容mLv.ListItems.Clear使ListView控件顯示數(shù)據(jù)庫字段為借書證號字段mLv.ListItems.Add,rst.Fields(借書證號)使ListView控件的字段顯示數(shù)據(jù)庫姓名、班級、部門、職稱字段WithmLv.ListItems(l).SubItems(l)=rst.Fields(”姓名).SubItems(2)=rst.Fields(”班級).SubItems(3)=rst.Fields(”學(xué)號).SubItems(4)=rst.Fields(”性別)EndWithSearchFlag=FalseEndIfEndSubPrivateSubDeleteMnu_

53、Click()彈出菜單-刪除cmdDelete_ClickEndSubPrivateSubEditMnu_Click()彈出菜單-修改cmdEdit_ClickEndSubPrivateSubExitMnu_Click()彈出菜單-退出UnloadMeEndSubPrivateSubForm_Load()打開Database目錄下的Data.mdb數(shù)據(jù)庫和Personal表DBpath=App.Path+DataBaseData.mdbSetdb=Workspaces(0).OpenDatabase(DBpath,False)Setrst=db.OpenRecordset(Personal,d

54、bOpenTable)建立借書證號索引rst.Index=借書證號設(shè)置ListView控件相應(yīng)參數(shù)mLv.View=lvwReportmLv.GridLines=True設(shè)置ListView控件的字段mLv.ColumnHeaders.Add,借書證號mLv.ColumnHeaders.Add,姓名mLv.ColumnHeaders.Add,班級mLv.ColumnHeaders.Add,學(xué)號mLv.ColumnHeaders.Add,性別如果記錄不為空,調(diào)用DispId過程Ifrst.RecordCount0ThenDispIdEndIfEndSub定義DispId過程,用于顯示數(shù)據(jù)庫所有記

55、錄PublicSubDispId()mLv.ListItems.Clearrst.MoveLastRec=rst.RecordCountrst.MoveFirstFori=1ToRecmLv.ListItems.Addi,rst.Fields(借書證號)WithmLv.ListItems(i).SubItems(l)=rst.Fields(姓名).SubItems(2)=rst.Fields(班級).SubItems(3)=rst.Fields(學(xué)號).SubItems(4)=rst.Fields(”性別)EndWithrst.MoveNextIfrst.EOFThenExitForNextE

56、ndSubPrivateSubForm_Unload(CancelAsInteger)關(guān)閉窗體時,關(guān)閉數(shù)據(jù)庫rst.Closedb.CloseEndSubPrivateSubmLv_DblClick()雙擊ListView控件時,調(diào)用cmdEdit_Click過程cmdEdit_ClickEndSubPrivateSubmLv_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)如果單擊鼠標(biāo)右鍵,彈出快捷菜單,菜單名為PoMnuIfButton=2ThenPopupMenuPoMnuEndIfEndSubPrivateSub

57、SearchMnu_Click()彈出菜單-查找cmdSearch_ClickEndSubPrivateSubShowAllMnu_Click()彈出菜單-顯示所有人員CallDispIdEndSubFindfrm(查找圖書)DimrstlAsRecordset打開表BookDimrst2AsRecordset打開表BookFfDimrstAsRecordsetDimdb1AsDatabaseDimdb2AsDatabaseDimqrylAsQueryDefDimqry2AsQueryDefDimRecNumAsInteger查找符合條件總記錄數(shù)DimiAsIntegerDimFindStrA

58、sString查找SQL語句PrivateSubcmdBeginFind_Click()判斷圖書編號和書名都為空時給出提示,并設(shè)置光標(biāo)位于圖書編號IftxtBookBian=AndtxtBookName=ThenMsgBox請?zhí)顚懴嚓P(guān)查找信息!”,0+48,提示txtBookBian.SetFocusExitSubEndIf清空ListView控件內(nèi)容LVListItems.Clear使本窗體上的光標(biāo)改變形狀,光標(biāo)樣式為11Findfrm.MousePointer=11判斷圖書編號不為空,書名為空時的情況IftxtBookBianAndtxtBookName=Then對圖書編號和數(shù)據(jù)庫對比,如

59、果沒有找到給出提示rstl.Seek=,txtBookBianIfrstl.NoMatchThenMsgBox沒有找到匹配記錄!”,0+48,查找失敗使本窗體上的光標(biāo)改變形狀,光標(biāo)樣式為0Findfrm.MousePointer=0ExitSubEndIf判斷數(shù)據(jù)庫BookFf表是否借出字段Ifrstl.Fields(”是否借出)=TrueThenrst2.Seek=,txtBookBian使Listview控件增加數(shù)據(jù)庫圖書編號字段內(nèi)容LV.ListItems.Add,rstl.Fields(圖書編號)&vbNullString使Listview控件顯示數(shù)據(jù)庫相應(yīng)內(nèi)容WithLV.ListI

60、tems(l).SubItems(l)=rstl.Fields(”書名)&vbNullString.SubItems(2)=rstl.Fields(類別)&vbNullString.SubItems(3)=rstl.Fields(價格)&Empty.SubItems(4)=rst1.Fields(出版社)&vbNullString.SubItems(5)=rst1.Fields(是否借出).SubItems(6)=rst2.Fields(借書證號)&vbNullString.SubItems(7)=rst2.Fields(姓名)&vbNullString.SubItems(8)=rst2.Fi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論