圖書管理系統(tǒng)設計_第1頁
圖書管理系統(tǒng)設計_第2頁
圖書管理系統(tǒng)設計_第3頁
圖書管理系統(tǒng)設計_第4頁
圖書管理系統(tǒng)設計_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第一章 前言隨著電子計算機和通信技術的發(fā)展,人類已經(jīng)逐漸地進入信息化社會。信息和材料、能源一樣成為一種社會的基本生產(chǎn)資料,在人類的社會生產(chǎn)活動中發(fā)揮著重要的作用。同時人們對信息和數(shù)據(jù)的利用與處理也已進入自動化、網(wǎng)絡化和社會化的階段,因此,開發(fā)相關的管理信息系統(tǒng)已經(jīng)成為各行各業(yè)的必要和必需了,管理信息系統(tǒng)作為一門邊緣學科,集管理科學、信息科學、系統(tǒng)科學、現(xiàn)代通信技術和電子計算機技術于一體,可以解決企業(yè)或組織所面臨的問題,對內(nèi)來看,可以提高工作效率;對外來看,獲得競爭優(yōu)勢。管理信息系統(tǒng)的開發(fā)方法有生命周期法、原型法和面向?qū)ο蟮拈_發(fā)方法等。生命周期法(Life Cycle Method)是20世紀6

2、0年代發(fā)展起來的一種應用廣泛且比較成熟的管理系統(tǒng)開發(fā)方法,它的基本思想是將系統(tǒng)的開發(fā)工作從開始到結束劃分為若干個階段,每個階段都有明確的任務,而系統(tǒng)開發(fā)出來后,并不意味著生命周期的結束,而意味著根據(jù)組織的需要對系統(tǒng)的修改和重建的開始;原型法(Prototyping Method)是20世紀80年代發(fā)展起來的,旨在改變生命周期法的缺點的一種系統(tǒng)開發(fā)方法,該法的開發(fā)思路是首先根據(jù)用戶的要求,由用戶和開發(fā)者共同確定系統(tǒng)的基本要求和主要功能,利用系統(tǒng)快速生成工具,建立一個系統(tǒng)模型,再在此基礎上與用戶交流,將模型不斷補充、修改、完善,如此反復,最終直至用戶和開發(fā)者都比較滿意為止,從而形成一個相對穩(wěn)定、較

3、為理想的管理信息系統(tǒng);面向?qū)ο螅∣bject Oriented)的開發(fā)方法于20世紀80年代開始興起的,是一種基于問題對象的自底向上的一種系統(tǒng)開發(fā)方法,這種方法的特點是以對象為基礎,對象是分析問題和解決問題的核心。基于以上三種方法的特點和各自的優(yōu)缺點,本圖書館管理系統(tǒng)利用軟件工程化思想和方法,總體上是采用結構化生命法進行系統(tǒng)分析和設計的,而系統(tǒng)實現(xiàn)等步驟則采用了原型法和面對對象的方法。管理信息系統(tǒng)的開發(fā)是一個開發(fā)周期長、技術要求高、影響因素多的復雜系統(tǒng)工程,因此制定一個完善、可行、合理的開發(fā)計劃,不僅是系統(tǒng)開發(fā)成功的保證,而且可以提高效率、節(jié)省時間、降低成本。本圖書系統(tǒng)計劃利用三個月的時間開發(fā)

4、完成:系統(tǒng)調(diào)研和系統(tǒng)分析為10天;系統(tǒng)設計為10天;系統(tǒng)程序設計為45天;系統(tǒng)調(diào)試為10天;系統(tǒng)試運行為15天。第二章 系統(tǒng)需求分析2.1現(xiàn)行業(yè)務描述:通過調(diào)查,先畫出圖書館的組織結構圖如下:館 長采編組書庫閱覽室工具書室目錄廳借閱室通過調(diào)研了解到,該圖書館各個部門負責的主要業(yè)務如下:(1)采編組主要負責圖書采編工作,包括購置新書、打印編目、增加數(shù)量。(2)目錄廳主要負責讀者查詢工作,包括可借圖書(按圖書類別、圖書名稱或圖書作者查詢);新書目錄(按圖書類別、日期查詢);借書情況(按讀者借書證號查詢)(3)借閱組主要負責圖書流通、查詢統(tǒng)計、借閱查詢等工作。(4)閱覽室、工具書室主要負責讀者閱覽工

5、作,包括:閱覽各種雜志、報紙、閱覽各種工具書。下面繪制出圖書館流通業(yè)務中借書的流程圖。(1)讀者在目錄廳查閱索引卡;(2)讀者寫出所借圖書的分類號、種次號、交給圖書管理員,并出示本人的借書證;(3)圖書管理員根據(jù)圖書的分類號、種次號到書庫找書;(4)將圖書交給讀者,并由讀者填寫所借圖書的借書卡。(5)圖書管理員把借書卡保存到寫有該讀者借書證號的口袋里。得出該圖書館業(yè)務流程圖如下所示:22現(xiàn)行系統(tǒng)存在問題的分析該圖書館工作大部分還是進行著手工管理,工作起來效率很低,并且不能及時了解圖書館各類圖書的存庫,學生們比較需求的圖書等等,不便于動態(tài)及時地調(diào)整圖書結構,以便更好地適應當前學生的借閱需求。手工

6、管理還存在這許多弊端,由于不可避免的人為因素,經(jīng)常造成數(shù)據(jù)的遺漏、誤報。計算機信息化管理有著儲存信息量大、速度快等許多優(yōu)點,提供給我們的處理信息及時快捷,同時也提高了我們工作人員的自身素質(zhì)。23解決方案基于以上的對問題的分析,利用計算機給我們提供信息,及時地調(diào)整學校圖書館圖書結構,并且對學生們的借閱過程形成一整套動態(tài)的管理就十分必要了。圖書館信息系統(tǒng)的建立,需要進行用戶的需求調(diào)查與分析,以確定系統(tǒng)目標,提出解決問題的詳細方案,這是系統(tǒng)建設的重要環(huán)節(jié)。學校圖書館規(guī)模相對于商業(yè)圖書館小,但要有著完善的圖書信息,對每一冊書要有詳細的記錄信息,功能上對系統(tǒng)的需求是全面的。因此對用戶的需求可分為四個方面

7、:一方面是圖書館工作人員通過計算機來管理各類圖書,分類編號,調(diào)整圖書結構,增加圖書庫存,適應學生的需求;二方面是學生們能通過計算機來查詢?yōu)g覽圖書館中的圖書,來確定自已需要的書籍,為借閱做好準備;三方面是工作人員對學生們的借書證發(fā)放,登記能作好全面的掌握,及時得到每個借書證的當前狀態(tài)和歷史借閱記錄;四方面也是圖書館的核心工作,對圖書的借閱管理。這四個方面形成了學校圖書館一個工作整體,采用計算機自動化信息處理,可方便快捷地共享信息、交流信息,高效地協(xié)同工作。在軟、硬件方面對系統(tǒng)的需求,軟件要求易學,界面友好,容易掌握,可以很簡單方便的管理各種圖書信息。硬件的配置要求不能太高,這樣可以很好的適應當前

8、的學校圖書館。在開發(fā)方式上對系統(tǒng)的需求,由于學校圖書館是一種無商業(yè)利益的,所以系統(tǒng)設計開發(fā)的周期要短,在短時間內(nèi)完成,減少開發(fā)成本,提高開發(fā)效率,方便、簡單、實用作為系統(tǒng)開發(fā)的指導思想。24可行性分析通過對該圖書館的各個方面進行了具體的了解之后,現(xiàn)對該單位開發(fā)圖書管理系統(tǒng)的可行性進行分析。技術上可行:該系統(tǒng)所需硬件設備,市場上銷售且價格較低,甚至可以使用原有的設備,軟件上,操作系統(tǒng)采用Windows系列操作系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)采用Visual Basic,這些軟件在MIS開發(fā)中已被大量應用,技術上都比較成熟。因此在技術上是可行的。經(jīng)濟上可行:由于學校急需采用計算機來進行圖書館的管理,因此對開發(fā)

9、圖書管理系統(tǒng)大力支持,開發(fā)經(jīng)費沒有問題。管理上可行:該學校的圖書館有很多的管理體制,每位借書人均有借書證,同時圖書館還為每位借書人建立了檔案。因此管理上可行。另外,圖書館管理人員對開發(fā)該系統(tǒng)也是大力支持的,同時制定了培訓計劃,并進行了實施MIS的物質(zhì)準備和工作準備。綜上所述,開發(fā)圖書管理系統(tǒng)在技術上、經(jīng)濟上、管理上都是可行的。第三章 新系統(tǒng)邏輯方案31初步調(diào)研在本系統(tǒng)被批準立項之后,我實地去該圖書館進行了參觀和學習,現(xiàn)對該單位圖書館的整體情況進行調(diào)研,調(diào)研分兩步進行,一是初步調(diào)研,二是詳細調(diào)研。由于該圖書館職工人數(shù)較少,因此在調(diào)研時采用了會議討論法和個人訪談法兩種方法,通過會議討論法了解圖書館

10、的整體情況,對開發(fā)新系統(tǒng)的態(tài)度等。通過個人訪談法了解各個部門的主要職能及具體運作方式、過程等。對該圖書館進行初步調(diào)研的具體內(nèi)容為:(1)圖書館的規(guī)模:現(xiàn)藏書冊數(shù)、種類;(2)圖書館的主要業(yè)務;(3)圖書館下高幾個部門;(4)圖書館職工人數(shù);(5)職工受教育程度;(6)主要購書單位;(7)圖書編碼方式;(8)現(xiàn)在多少讀者在此借書;(9)讀者借書憑證;(10)讀者分類;(11)圖書館的上級領導;(12)對開發(fā)新系統(tǒng)的態(tài)度;(13)開發(fā)新系統(tǒng)所需的時間(規(guī)定多長時間開發(fā)完成)。32詳細調(diào)研321組織結構調(diào)研在對該圖書館的手工管理模式和業(yè)務流程進行認真分析和研究的基礎上,經(jīng)過與該圖書館的相關人員的反復

11、協(xié)商、論證,最后確定了該圖書管理系統(tǒng)的邏輯模型。下面以數(shù)據(jù)流圖和數(shù)據(jù)字典的方式來描述新系統(tǒng)的邏輯功能。322數(shù)據(jù)流圖323數(shù)據(jù)字典:下面為借書業(yè)務流程圖中的每一部分編制數(shù)據(jù)字典。(1)數(shù)據(jù)元素:每本書都有單價這個信息,其描述內(nèi)容如下:數(shù)據(jù)元素名稱:單價 類型:數(shù)字 長度:6位,其中整數(shù)部分占3位,小數(shù)部分占2位 數(shù)據(jù)值類型:離散 取值范圍:0-999.99相關的數(shù)據(jù)結構:索書號+藏書號+作者+書名+出版社+單價+冊數(shù)+內(nèi)容摘要(2)數(shù)據(jù)流。數(shù)據(jù)流“借書信息”條目如下:數(shù)據(jù)流名稱:借書信息 說明:讀者的借書內(nèi)容數(shù)據(jù)流來源:讀者數(shù)據(jù)流去向:圖書管理員數(shù)據(jù)流組成:分類號種次號數(shù)據(jù)流的流通量:大約份/

12、天()數(shù)據(jù)存儲:數(shù)據(jù)存儲“借書情況”條目如下:數(shù)據(jù)存儲名稱:借書情況簡述:存放的是每個讀者的借書情況輸入數(shù)據(jù):借書情況數(shù)據(jù)存儲組成:借書證號藏書號借書日期存儲方式:按借書的先后順序排列()數(shù)據(jù)處理。數(shù)據(jù)處理“查詢圖書”條目如下:數(shù)據(jù)處理名稱:查詢圖書數(shù)據(jù)處理編號:.簡要描述:根據(jù)讀者寫的圖書的分類號和種次號查詢輸入數(shù)據(jù)流:借書信息輸出數(shù)據(jù)流:查詢結果處理邏輯:根據(jù)讀者寫的圖書的分類號和種次號檢索相應的圖書信息。()外部實體。外部實體“圖書管理員”的條目如下:外部實體名稱:圖書管理員輸入數(shù)據(jù)流:借書信息、借書證號、已填借書卡、查詢結果輸出數(shù)據(jù)流:待填借書卡、借書信息。數(shù)目:人第四章 系統(tǒng)總體結構

13、設計41軟件模塊結構設計411系統(tǒng)方案確定。通過對系統(tǒng)調(diào)研與分析,系統(tǒng)主要應完成的功能如下:書庫信息管理、讀者檔案管理、借閱管理、還書管理、圖書檢索、系統(tǒng)維護。412軟件結構設計。圖書館管理系統(tǒng)包含圖書采編、讀者管理、流通、查詢等功能。該系統(tǒng)執(zhí)行時,先輸入數(shù)據(jù),然后根據(jù)輸入的數(shù)據(jù)選擇執(zhí)行路徑;購入圖書進行登記、編目調(diào)用圖書采編功能,借書、還書調(diào)用功能,查詢調(diào)用查詢功能。圖書館管理系統(tǒng)屬于事務型系統(tǒng),其系統(tǒng)示意圖如下圖所示:接受數(shù)據(jù)事務中心圖書采編讀者管理圖書流通查詢 圖書館管理系統(tǒng)示意圖系統(tǒng)結構圖示意如下:圖書館管理系統(tǒng)圖書采編讀者管理圖書流通 查詢輸入圖書信息 借書 還書圖書館管理系統(tǒng)結構圖

14、系統(tǒng)功能圖如下:圖書館管理系統(tǒng)系統(tǒng)登陸系統(tǒng)管理圖書管理借書證管理借 書幫 助登 陸修改密碼注 消退 出新書入庫圖書信息查詢新開借書證借書證查詢借 書還 書關 于42數(shù)據(jù)庫設計數(shù)據(jù)庫采用了Microsoft推出的Access數(shù)據(jù)庫,這是微軟集成到Office中的一個桌面數(shù)據(jù)庫,能夠快速方便的和Office的其他套件綜合使用。由于Access具有顯著的簡易性和有效性,大量的桌面數(shù)據(jù)庫系統(tǒng)都采用Access作為后臺數(shù)據(jù)庫。使用Access的好處還在于,如果你的系統(tǒng)擴展到Client/Server模式的時候,可以使用Microsoft的數(shù)據(jù)庫服務器軟件SQL Server,此時,程序只需要簡單的修改一

15、下鏈接(ADO的數(shù)據(jù)源)就可以,這樣,為程序的平滑擴展提供了非常有力的條件。本系統(tǒng)使用的系統(tǒng)中包括四個表,名稱及功能說明如下:TblOperator操作員表,定義操作員的ID和密碼,作為系統(tǒng)登錄檢查的依據(jù),提供唯一的管理員ID。TblLoan借閱表,通過借書證ID和圖書ID反映圖書的借閱關系。TblCard借書證表,提供讀者信息等,同時包括借書證是否可用,提供唯一的借書證ID。TblBook圖書表,保存館內(nèi)所有圖書的信息,提供唯一的圖書ID。本系統(tǒng)涉及到的實體:(1)本系統(tǒng)中所涉及到的主要實體及其屬性有:tblbooK(圖書管理)表:圖書編號,館藏編號,書名,作者,出版社,出版日期,入庫日期,

16、價格,操作員tblCard(借書證)表:借書證編號,是否有效,姓名,男女,身份證號,部門,電話,地址,最大供書量,操作員,創(chuàng)建日間tblLoan(借閱)表:借書證編號,書號,借書日期,還書日期,操作員tblOperator(操作員)表:操作員編號,姓名,密碼,備注(2)本系統(tǒng)的實體-聯(lián)系(E-R)圖圖書編號館藏編號書名作者出版社出版日期價格數(shù)量入庫時間操作員備注圖書管理為了使E-R圖表示得更加清晰,現(xiàn)將E-R圖分成實體及其屬性圖和實體及其聯(lián)系圖。分別如下圖所示:借書證編號是否有效姓名男女身份證號部門地址有效日期電話最大借書量操作員借書證管理辦證時間操作員操作員編號姓名密碼備注借閱借書證編號圖書

17、編號借書日期還書日期操作員各表的物理結構如下:TblBook(圖書管理)表:字段代碼字段名稱類型寬度小數(shù)位數(shù)Bookid圖書編號長整型Libid館藏編號文本8BookName書名文本100Author作者文本60Publisher出版社文本50PublishDate出版日期文本50Price價格貨幣2Amount館藏冊數(shù)數(shù)字整形2createdate入庫時間日期/時間Operator操作員數(shù)字Memo備注文本255TblCard(借書證管理)表:字段代碼字段名稱類型寬度小數(shù)位數(shù)CardId借書證編號自動編號長整型Enabled是否有效是/否Name姓名文本8Gender男女數(shù)字長整型IdCar

18、d身份證號文本18Vocation部門文本50Phone電話文本50Address地址文本50MaxBookNum最大借書量數(shù)字整型AvailDateNum有效時間數(shù)字長整型Operator操作員數(shù)字長整型CreateDate辦證時間日期/時間TblLoan(借閱)表:字段代碼字段名稱類型寬度小數(shù)位數(shù)CardID借書證編號數(shù)字長整型BookID圖書編號數(shù)字長整型LoanDate借書日期日期/時間ReturnDate還書日期日期/時間Operator操作員文本TblOperato表:字段代碼字段名稱類型寬度小數(shù)位數(shù)OperatorID操作員編號自動編號Name姓名文本50Password密碼文本

19、50Memo備注文本255E-R圖向關系模型轉(zhuǎn)換的結果如下:圖書管理(圖書編號,館藏編號,書名,作者,出版社,出版日期,入庫日期,價格,操作員)圖書編號為此關系的碼。借書證(借書證編號,是否有效,姓名,男女,身份證號,部門,電話,地址,最大借書量,操作員,創(chuàng)建日間)借書證編號為此關系的碼。借閱(借書證編號,書號,借書日期,還書日期,操作員)借書證編號為此關系的碼。操作員(操作員編號,姓名,密碼,備注)操作員編號為此關系的碼。4.3計算機系統(tǒng)的配置方案硬件環(huán)境:內(nèi)容最低配置建議配置主機P/200PII/266以上內(nèi)存64MB128MB以上硬盤10GB20GB以上顯示器VGA以上軟件環(huán)境:操作系統(tǒng)

20、:Windows 98中文版或Windows XP中文版編程軟件和數(shù)據(jù)庫:Visual Basic6.0中文版+Access2000中文版44系統(tǒng)的安全性和可靠性設計對所有登錄本系統(tǒng)的使用用戶進行嚴格的用戶名和密碼的管理,如果不屬于系統(tǒng)事先設定好的合法用戶,則系統(tǒng)無法登錄,為了防止密碼外泄,本系統(tǒng)具備密碼修改功能。第五章 系統(tǒng)詳細設計程序按照三個主要管理功能進行組織,其中借書和還書由于經(jīng)常使用,單獨列出來。下面我們按照操作順序?qū)Τ绦虻牟僮?、界面的源程序進行詳細說明。5.1啟動:雙擊圖標運行程序以后,就可以看到程序的主界面。由于這個時候還沒有登陸系統(tǒng),因此系統(tǒng)提示未登錄。這是,需要通過通過系統(tǒng)管

21、理菜單進行登錄操作。圖 1 啟動后的主界面52登錄系統(tǒng)進行登錄時,用戶單擊了菜單“登錄”,此時系統(tǒng)開始顯示登錄窗口。Private Sub mnuSysLogin_Click() frmLogin.Show vbModal If CurrentUser.LoginSuccess Then Me.Caption = App.Title & ( & CurrentUser.Name & ) Else Me.Caption = App.Title & (未登錄) End IfEnd Sub程序首先顯示frmLogin窗口,由于這個窗口是模態(tài)(vbModal)顯示的,因此如果用戶只能關閉這個窗口后才能

22、進行其他的操作。VB的窗口分成模塊窗口和非模態(tài)窗口兩種,普通情況下都是非模態(tài)窗口,但是多數(shù)對話框是模態(tài)窗口。程序的后面使用了一個結構體,這個結構體在公共模塊定義,程序的任何地方都可以訪問這個結構體,同時程序初始化了一個全局變量CurrentUser。該變量用來指示當前是否有用戶登陸,用戶的ID和名稱是什么等信息。Type Users ID As Integer Name As String Password As String LoginSuccess As BooleanEnd TypePublic CurrentUser As Users這里我們首先運行了frmLogin窗體,然后根據(jù)fr

23、mLogin窗體對用戶信息的判斷,由frmLogin窗體設置CurrentUser信息。如果成功,CurrentUser的LoginSuccess屬性將為True,否則為False。如果CurrentUser的LoginSuccess屬性為True,則主窗體顯示當前用戶登錄的用戶名。下面我們主要看frmLogin窗體的操作。圖 2 登錄窗體這里我們詳細講解登錄的全部過程,因為這個過程中涉及到DAO數(shù)據(jù)庫訪問的全部過程,因此我們將著重介紹這些過程。以后程序中使用同樣功能的部分將不再介紹。Private Sub cmdOK_Click()Dim strUserID As StringDim str

24、UserPwd As StringDim db As DatabaseDim rs As Recordset 獲取用戶輸入 If txtUserName.Text = Then MsgBox 請輸入正確的用戶名, vbInformation txtUserName.SetFocus Exit Sub End If strUserID = txtUserName.Text If txtPassword.Text = Then MsgBox 請輸入用戶密碼, vbInformation txtPassword.SetFocus Exit Sub End If strUserPwd = txtPas

25、sword.Text 開始校驗密碼 Set db = OpenDatabase(DB_NAME) Set rs = db.OpenRecordset(select * from tblOperator where Name= _ & Chr(34) & strUserID & Chr(34) & and Password= & _(34) & strUserPwd & Chr(34) If rs.RecordCount 0 Then rs.MoveFirst CurrentUser.Name = strUserID CurrentUser.ID = rs!OperatorID CurrentU

26、ser.LoginSuccess = True Else CurrentUser.Name = CurrentUser.LoginSuccess = False CurrentUser.ID = 0 MsgBox 無效的用戶名或者密碼,請重新登錄, vbCritical End If Set db = Nothing Set rs = Nothing Unload Me End Sub程序首先定義了四個變量,其中strUserID、strUserPwd是基本變量,用來臨時存儲用戶的登錄信息;db和rs是DAO對象變量,其中db是數(shù)據(jù)庫對象,用于連接數(shù)據(jù)庫,也可以用來直接執(zhí)行部分SQL語句(in

27、sert、delete、update等,通過使用Database對象的Execute方法)。rs是記錄集對象(Recordset),它可以對應數(shù)據(jù)庫的一個表,或者是一個查詢執(zhí)行結果。Recordset是最為常用的數(shù)據(jù)對象,可以實現(xiàn)數(shù)據(jù)的漫游,數(shù)據(jù)的添加和刪除。表 1 RecordSet的常用方法AddNew增加一條新記錄Delete刪除當前的記錄MoveFirst移動到最前面一條記錄MoveLast移動到最后一條記錄MovePrevious移動到前一條記錄MoveNext移動到后一條記錄Edit當前記錄進入修改狀態(tài)Update刷新當前記錄集,將AddNew或者Edit所進行的操作提交到數(shù)據(jù)庫對

28、象變量在使用前需要進行實例化,這一點和普通變量是不同的。對象變量的實例化使用Set語句進行的。 Set db = OpenDatabase(DB_NAME) Set rs = db.OpenRecordset(select * from tblOperator where Name= _ & Chr(34) & strUserID & Chr(34) & and Password= & _(34) & strUserPwd & Chr(34)這里我們使用了DAO提供的OpenDatabase來進行db的實例化,其中DB_NAME是一個全局常量,在系統(tǒng)初始化時定義。 DB_NAME = App.

29、Path & Library.mdb其中App是一個VB的對象,保存了應用程序的很多屬性。在整個程序中我們使用了App對象的兩個屬性,即Path屬性(表示應用程序所在的路徑)和Title屬性(表示應用程序的標題)。Db初始化完成以后就可以使用他的方法和屬性。這里我們使用Database對象的OpenRecordset方法來進行初始化,OpenRecordSet可以直接對一個表進行操作,例如OpenRecordSet(“tblCard”),也可以通過執(zhí)行一個SQL語句來獲得記錄集,如上面的例子。我們查詢數(shù)據(jù)庫的管理員表,如果用戶提交的登錄信息存在,也就是用戶是合法用戶,則Recordset中有記

30、錄,否則recordset將返回一個空記錄集。這里我們通過Recordset的RecordCount屬性來訪問。 If rs.RecordCount 0 Then rs.MoveFirst CurrentUser.Name = strUserID CurrentUser.ID = rs!OperatorID CurrentUser.LoginSuccess = True Else CurrentUser.Name = CurrentUser.LoginSuccess = False CurrentUser.ID = 0 MsgBox 無效的用戶名或者密碼,請重新登錄, vbCritical E

31、nd If如果用戶存在,則我們將用戶的信息復制到CurrentUser中,同時設置登錄成功的標志。保存用戶ID是因為針對管理員的所有操作都是通過其ID來訪問的(而不是名稱),這在其他幾個表中有所反映。由于用戶的ID絕對是唯一的,而用戶的名字可能不是唯一的。因為如果一個用戶使用某一個用戶名進行登記,此時這個用戶名將備這個用戶占用,別的用戶將不能使用同樣的名字。但是如果用戶銷戶以后,用戶名就可以被別的用戶使用。只有用戶ID是唯一的,即即使以后的用戶使用同樣的用戶名進行注冊,系統(tǒng)也會分配給他一個不同的ID,這樣就可以區(qū)別他們是兩個不同的用戶。在程序中主要的表都使用了唯一的ID,都是基于這樣的原因。對

32、象使用完成以后必須顯式的進行關閉和注銷,這也是使用了set語句。進行注銷時,只需要簡單的將對象的值設置為nothing就可以了。 Set db = Nothing Set rs = Nothing整個數(shù)據(jù)庫訪問過程就結束了。程序段的最后一句是unload me,me是一個窗體級變量,指向窗體變量自身,這句語句相當于unload frmLogin,也就是關閉當前的窗口。如果用戶登錄失敗或者未登錄,用戶只能使用登錄菜單或者幫助的關于菜單。該菜單上面有系統(tǒng)的版本信息。圖 3 關于對話框在未登錄的情況下,如果用戶試圖使用系統(tǒng)的其他功能,系統(tǒng)將會顯示提示登錄窗口。因為在程序在運行每一項功能的時候,都會檢

33、查用戶的登錄情況(也就是CurrentUser 的各項屬性,主要是LoginSuccess屬性),如果LoginSuccess為False,則意味者用戶沒有登錄,系統(tǒng)將提示登錄。如果我們不是簡單的使用Boolean的字段,而是使用功能較為完備的機制,我們將可以實現(xiàn)復雜的權限控制。圖 4 提示登錄鑒權代碼如下: If CurrentUser.LoginSuccess Then frmNewBook.Show Else MsgBox LoginPrompt, vbCritical End If通用的流程是,根據(jù)權限設置判定用戶是否有權使用某項功能,如果有,則允許使用;如果沒有,則給出錯誤的提示。用

34、戶登錄成功以后就可以使用系統(tǒng)的所有功能。同時,主窗體上將會顯示當前登錄用戶的名稱。當然,如果用戶選擇注銷,則主窗體會顯示未登錄。用戶登錄成功以后就可以使用系統(tǒng)的所有功能。圖書管理包括新書入庫和信息查詢兩項功能,都包含在圖書管理的菜單下。5.3新書入庫圖 5 新書入庫新書入庫的程序段采用了更為完備的功能,它首先檢測用戶輸入是否合法,然后整理用戶的輸入信息,通過Database的Execute方法將SQL語句寫入到數(shù)據(jù)庫中,由于寫入過程有可能出錯(數(shù)據(jù)庫共享沖突、硬件故障等),所以代碼段中使用了差錯控制機制,VB的差錯控制通過兩個語句來完成On Error Goto Line_Indentity或

35、者On Error Resume Next其中第一句表示如果發(fā)生錯誤時將轉(zhuǎn)到Line_Indentity開始的地方進行處理,第二句表示如果發(fā)生錯誤時強制程序繼續(xù)運行以后的語句。 str1 = LibID str2 = Chr(34) & Text1.Text & Chr(34) 5.4圖書信息查詢圖書信息查詢用于顯示所有的圖書信息,或者根據(jù)用戶設定的條件進行查詢,因此你將會在窗口的左上方看到兩個Radio選項,如果選擇“顯示所有記錄”,則查詢條件將不可用。如果選擇“按條件查詢”,則系統(tǒng)根據(jù)查詢條件中設置的查詢條件進行查詢。圖 6 圖書信息查詢系統(tǒng)允許用戶使用三種查詢的方法,即按照書名查詢、按照

36、作者查詢和按照出版社進行查詢。查詢匹配包括精確匹配(=)和步精確匹配(Like),如果使用精確匹配,則系統(tǒng)按照用戶輸入的去匹配整個字段,相當于使用SQL語言的號功能,如果使用模糊匹配,則系統(tǒng)按照用戶的輸入,在前后添加%,然后使用SQL語言的Like功能進行查詢。因此,所有包含有用戶輸入的字符串的字段所在的記錄都會被顯示出來。如果根據(jù)用戶條件查詢不到任何記錄,則系統(tǒng)顯示圖 7查詢不到符合條件的記錄5.5新證登記新證登記和借書證查詢都是針對借書證信息管理進行的,位于主界面的借書證管理菜單下。新證登記和新書入庫基本上相似,因此這里不再詳細介紹。圖 8 新證登記5.6借書證信息查詢借書證信息查詢是管理

37、員用來實現(xiàn)對借書證管理的主要界面,查詢方法和圖書查詢一樣。當然,它也提供了例如借書證有效時間等指標,如果借書證過期,那么該證將不能借書。系統(tǒng)同時提供了管理員將制執(zhí)行借書證不可用等功能。圖 9 借書證信息查詢5.7借書登記借書登記和還書登記就是管理員最為常用的功能了,借書登記和還書登記都是根據(jù)用戶ID和圖書ID來進行的,相應的信息記錄在tblLoan表中。如果用戶新借了一本書,那么相應的用戶ID、圖書ID和借書日期等信息將會被添加道tblLoan表中。同樣的,如果用戶還書,則相應的記錄將會被刪除。因此,tblLoan是經(jīng)常動態(tài)修改,用于反映圖書的借閱情況。如果他和tblBook相配合,則也可以統(tǒng)

38、計出目前圖書館各種書的剩余數(shù)量。借書登記要求管理員提供用戶ID,這個ID將在用戶的借書證上可以找到。當然,比較先進的圖書館管理系統(tǒng)一般都采用條形碼掃描技術,操作快捷而且不易出錯,但是其基本原理是一樣的。輸入用戶ID以后,系統(tǒng)會自動顯示用戶的名字,當然也可以包括其他更多的信息。此時管理員可以查詢用戶已經(jīng)借閱的書籍(這部分功能也可以交給系統(tǒng)后臺處理,因為需要限制用戶借書的數(shù)量)。用戶需要借用任何一本書,都可以在現(xiàn)有圖書表中選擇相應的圖書,然后單擊借書,就可以看到該書的信息被添加到已借圖書表中。這就是說,借書已經(jīng)成功。圖 10 借書借書部分使用了VB數(shù)據(jù)庫訪問技術的第二種,也就是ADO技術。從上圖種

39、我們可以看到兩個Adodc控件,他們就是ADO Data Connection。圖 11 ADODC屬性頁ADODC通過ADO連接數(shù)據(jù)庫,你可以在程序中配置靜態(tài)的連接,這是我們可以按照屬性頁中的提示一步一步完成配置。但是靜態(tài)連接的缺陷在于,如果數(shù)據(jù)庫路徑被修改,則程序連接數(shù)據(jù)庫將導致失敗。因此,一般情況下我們都會使用動態(tài)配置。程序安裝的時候,數(shù)據(jù)庫一般都會被安裝在和主程序同樣的路徑下,因此我們需要在程序運行的時候,進行數(shù)據(jù)庫的連接。Adodc1.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & DB_NAME

40、& ;Persist Security Info=False這就是ADO數(shù)據(jù)庫連接的語句,它通過設置ADO的ConnectionString屬性來進行設置,Provider是ADO的一種概念,你可以認為就是驅(qū)動程序,這里使用的驅(qū)動程序為Microsoft.Jet.OLEDB.4.0,這種驅(qū)動程序?qū)iT用來連接Access數(shù)據(jù)庫。當然,Provider還包括SQL Server、Oracle或者ODBC等。Data Source就是我們要訪問的數(shù)據(jù)庫。DB_NAME我們前面已經(jīng)介紹過了,就是數(shù)據(jù)庫的路徑和文件名。ADO提供了DAO相同的RecordSet,在這個控件中表現(xiàn)為RecordSource

41、 屬性,我們通過指定這個屬性,就可以實現(xiàn)和數(shù)據(jù)庫的連接,這和DAO的OpenRecordset是一樣的功能。完整的語句是這樣的。Adodc2.RecordSource = select * from qryLoanBook where BookId in (select BookId from tblLoan where CardId = & txtCardId.Text & )Adodc2.Refresh如果ADODC的RecordSource屬性被修改,需要強制調(diào)用Refresh方法來刷新數(shù)據(jù)源,這是需要特別注意的。另外,顯示圖書信息的數(shù)據(jù)表格是VB的一種控件,叫做DataGrid。它經(jīng)常

42、和ADODC配合使用,顯示數(shù)據(jù)庫的一個表。當然,它也支持數(shù)據(jù)的添加、修改和刪除。5.8還書還書的基本操作和借書相同,通過檢索用戶的ID和圖書的ID,在tblLoan表中刪除相應的記錄完成還書操作。還書第六章 實施概況61系統(tǒng)開發(fā)環(huán)境:系統(tǒng)開發(fā)環(huán)境包括硬件平臺和軟件平臺兩種。硬件平臺是指開發(fā)與運行所需要的硬件環(huán)境,主要包括計算機機型及硬件配置。由于本系統(tǒng)是一個小型的MIS管理系統(tǒng),因此對計算機硬件的要求不高,比較經(jīng)濟,只要配備有PII處理器(或以上)、64M內(nèi)存(或以上)、10G硬盤(或以上)的普通微機即可順利運行。軟件平臺是指系統(tǒng)開發(fā)與運行的軟件環(huán)境。本系統(tǒng)在開發(fā)時選用了穩(wěn)定性較強的Windo

43、ws XP中文專業(yè)版和Visual Basic6.0作為開發(fā)語言,同時選用了Access數(shù)據(jù)庫,由于這些軟件產(chǎn)品都是Microsoft公司的產(chǎn)品,因此彼此之間的兼容性較好,開發(fā)出的應用系統(tǒng)穩(wěn)定性較高。Visual Basic 6.0具有可視化的開發(fā)環(huán)境,可以快速完成系統(tǒng)的開發(fā),內(nèi)部集成的數(shù)據(jù)庫訪問通道,使得可以輕松方便的對數(shù)據(jù)庫管理。數(shù)據(jù)庫采用MICROSOFT ACCESS,由于我們的系統(tǒng)要求,采用它完全可以適合我們的工作需求,并且它所支持的數(shù)據(jù)類型十分豐富,維護簡便,費用比較低,人員素質(zhì)要求不是很高,容易升級。 本系統(tǒng)在單機上運行。6.2系統(tǒng)測試:在開發(fā)本系統(tǒng)時,為了使系統(tǒng)能夠穩(wěn)定運行,對

44、本系統(tǒng)進行了有針對性的全面測試,采取的方式是:1、菜單項測試:為了保證每一項下拉菜單能夠正確實現(xiàn)系統(tǒng)設計的功能,我把該圖書館有關圖書的所有基礎數(shù)據(jù),基本上全部輸入到本系統(tǒng)中,并對每一個菜單項反復進行了增加、刪除、修改等操作,從而保證了菜單級功能的正確實現(xiàn)。2、數(shù)據(jù)跟蹤:完成菜單項測試后,我又對系統(tǒng)內(nèi)的每一個數(shù)據(jù)進行了跟蹤。例如:例如對最多可借書數(shù)的管理,我首先在借書證管理模塊中對某個讀者的可借書數(shù)進行設定,然后在借書模塊進行數(shù)據(jù)操作,隨時觀察這兩個數(shù)值之間是否有沖突產(chǎn)生,經(jīng)過對可借書數(shù)的數(shù)值多次不同大小的設置并進行驗證,說明該功能完全正常。3、綜合測試:在以上測試的基礎上對系統(tǒng)功能進行了整體的

45、測試,依次來檢驗系統(tǒng)功能是否符合系統(tǒng)設計的要求。6.3 系統(tǒng)運行與維護:系統(tǒng)的運行:1初始數(shù)據(jù)的輸入本系統(tǒng)的的輸入采用鼠標和鍵盤相結合的輸入方法。2、怎樣進入系統(tǒng)A、將本系統(tǒng)所在的文件夾拷貝到硬盤,然后執(zhí)行其中的圖書管理系統(tǒng)的程序文件即可,應注意要將全部文件的屬性變以存檔,消除只讀屬性。B、在隨后出現(xiàn)的登錄界面上輸入正確的用戶名和密碼即可3、怎樣使用本系統(tǒng):點擊鼠標左鍵即可進行相應功能的選擇。系統(tǒng)的維護:本系統(tǒng)是個較復雜的人-機系統(tǒng),由于系統(tǒng)外部環(huán)境與內(nèi)部因素的變化,不斷影響系統(tǒng)的運行,同時需要系統(tǒng)不斷地適應這些變化,不斷地完善系統(tǒng),以提高系統(tǒng)運行的效率與服務水平,這就需要自始至終進行系統(tǒng)的維

46、護工作。系統(tǒng)的維護主要包括四個方面:(1)程序的維護:指的是修改部分或全部程序,這種維護往往是在條件發(fā)生變化或原系統(tǒng)的效率低的情況下進行的。(2)數(shù)據(jù)文件的維護:指的是按照用戶的要求對數(shù)據(jù)文件進行不定期的修改。(3)代碼的維護:隨著系統(tǒng)的發(fā)展和變化,可能會出現(xiàn)舊代碼不能適應新要求的問題,因此,有必要變更代碼,予以維護。(4)硬件的維護:指的是對系統(tǒng)所使用的設備進行維護。本系統(tǒng)的日常維護由圖書館的專人來負責,如果出現(xiàn)一些不能解決的問題,則由開發(fā)者來負責。64系統(tǒng)的轉(zhuǎn)換方案:本次開發(fā)的圖書管理系統(tǒng)采用了并行轉(zhuǎn)換方式,以保證平衡可靠的過度。即一方面使用本系統(tǒng)來進行工作,另一方面又繼續(xù)沿用老的方式手工

47、方式,這種狀況持續(xù)了半個月的時間,在這期間發(fā)現(xiàn)了一些程序中存在的漏洞和錯誤,用戶也提出一些修改意見,經(jīng)過程序的進一步完善后,正式投入了使用,中止了以前老的手工的操作方式。結束語在本系統(tǒng)的開發(fā)過程中,由于本人是初次開發(fā)軟件,在知識、經(jīng)驗方面都存在著不足。另外,在整個開發(fā)的過程中,時間也比較倉促。因此,該系統(tǒng)必然會存在一些缺陷和不足。因為對圖書管理的整個流程不夠熟悉,在需求分析時未能做到完全滿足用戶的需求。雖然網(wǎng)絡在圖書管理系統(tǒng)中的應用已經(jīng)很普遍,但在開發(fā)過程由于硬件的限制,未能實現(xiàn)網(wǎng)絡功能,在大多數(shù)圖書管理系統(tǒng)單機版中,數(shù)據(jù)庫是用普通的單機版數(shù)據(jù)庫,那么在以后的系統(tǒng)更新過程中會造成不必要的損失。

48、盡管該圖書管理系統(tǒng)存在著很多不足,但其功能全面、易于日后程序更新、數(shù)據(jù)庫管理容易、界面友好、操作方便、效率高、安全性好等優(yōu)點是圖書管理系統(tǒng)所必需的。相信該圖書管理系統(tǒng)將是一套圖書館管理員必不可少的管理軟件,在本次畢業(yè)設計中,我從指導老師身上學到了很多東西。他認真負責的工作態(tài)度,嚴謹?shù)闹螌W精神和深厚的理論水平都使我收益匪淺。他無論在理論上還是在實踐中,都給與我很大的幫助,使我得到很大的提高,這對于我以后的工作和學習都有一種巨大的幫助,在此感謝他耐心的輔導。另外,在系統(tǒng)開發(fā)過程中還有同組的同學也給了我不少幫助,這里一并表示感謝。 參考文獻1.劉明周. Visual Basic數(shù)據(jù)庫開發(fā)高級指導.計

49、算機軟件.2003:2.田金蘭. Visual Basic6使用指南.電子工業(yè)出版社.2000:3.潘錦平. 軟件開發(fā)技術. 西安電子科技大學出版社.20014. 王珊. 數(shù)據(jù)庫系統(tǒng)概論. 高等教育出版社.20005.劉藩.軟件工程導論.清華大學出版社, 2000:附 錄一、部分程序源代碼:1、登錄界面(frmlogin.frm):Option ExplicitPublic LoginSucceeded As BooleanPrivate Sub cmdCancel_Click() 設置全局變量為 false 不提示失敗的登錄 LoginSucceeded = False Me.HideEnd

50、 SubPrivate Sub cmdOK_Click()Dim strUserID As StringDim strUserPwd As StringDim db As DatabaseDim rs As Recordset 獲取用戶輸入 If txtUserName.Text = Then MsgBox 請輸入正確的用戶名, vbInformation txtUserName.SetFocus Exit Sub End If strUserID = txtUserName.Text If txtPassword.Text = Then MsgBox 請輸入用戶密碼, vbInformati

51、on txtPassword.SetFocus Exit Sub End If strUserPwd = txtPassword.Text 開始校驗密碼 Set db = OpenDatabase(DB_NAME) Set rs = db.OpenRecordset(select * from tblOperator where Name= _ & Chr(34) & strUserID & Chr(34) & and Password= & Chr(34) & strUserPwd & Chr(34) If rs.RecordCount 0 Then rs.MoveFirst CurrentUser.Name = strUserID CurrentUser.ID = rs!OperatorID CurrentUser.LoginSuccess = True Else Curr

溫馨提示

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

最新文檔

評論

0/150

提交評論