基于c-s模式的圖書管理系統(tǒng)定稿大學論文_第1頁
基于c-s模式的圖書管理系統(tǒng)定稿大學論文_第2頁
基于c-s模式的圖書管理系統(tǒng)定稿大學論文_第3頁
基于c-s模式的圖書管理系統(tǒng)定稿大學論文_第4頁
基于c-s模式的圖書管理系統(tǒng)定稿大學論文_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE2本科生畢業(yè)設(shè)計(論文)中文題目:基于c/s模式的圖書管理系統(tǒng)外文題目:ManagementSystemoftheLibrarytotheC/SModule學號:姓名:學院:專業(yè):計算機科學與技術(shù)指導教師:完成時間:2010年4月12日引言隨著信息技術(shù)在管理上越來越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實施在技術(shù)上已逐步成熟。本系統(tǒng)模擬高校圖書館管理系統(tǒng),主要用于圖書的管理、借閱、分類、讀者信息的管理、讀者借閱圖書記錄,以及管理員信息管理和權(quán)限的維護。本系統(tǒng)中的所有功能都是基于客戶/服務(wù)器(Client/Server)的網(wǎng)絡(luò)形式實現(xiàn)的,即所有功能都是遠程操作的,并且可以實現(xiàn)多用戶操作。隨著計算機和通訊技術(shù)的發(fā)展,計算機網(wǎng)絡(luò)化已經(jīng)滲透到了各個應(yīng)用領(lǐng)域。尤其是基于TCP/IP協(xié)議的互聯(lián)網(wǎng)發(fā)展迅猛,應(yīng)用廣泛。計算機應(yīng)用系統(tǒng)開發(fā)也由傳統(tǒng)的開發(fā)方式發(fā)展為網(wǎng)絡(luò)環(huán)境的開發(fā)模式。因此,為了能夠?qū)崿F(xiàn)遠程對數(shù)據(jù)庫進行操作,開發(fā)了圖書館的C/S模式管理系統(tǒng),來實現(xiàn)一系列的管理及操作。它既方便實現(xiàn)遠程管理借閱圖書,且也大大提高了程序的可維護性和重復利用性。例如,當數(shù)據(jù)庫某些表的結(jié)構(gòu)發(fā)生更改時,只需要修改服務(wù)器端的程序即可,客戶端的程序可以繼續(xù)使用。在實際應(yīng)用中,對于多用戶只需修改服務(wù)器端的程序即可,客戶端的程序可以繼續(xù)使用。在實際應(yīng)用中,對于多用戶系統(tǒng)來說,這是非常令人滿意的,因為我們不需要去給予所有客戶端安裝更改的程序。目錄TOC\o"1-3"\h\z引言 2目錄 3摘要 4Abstract 5第一章 系統(tǒng)概述 61.1系統(tǒng)功能介紹 6第二章 系統(tǒng)設(shè)計 72.1系統(tǒng)設(shè)計思想 72.2系統(tǒng)結(jié)構(gòu)設(shè)計 8第三章數(shù)據(jù)庫設(shè)計 103.1數(shù)據(jù)庫需求分析 103.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計 113.3數(shù)據(jù)庫表的設(shè)計 12第四章網(wǎng)絡(luò)通訊協(xié)議的設(shè)計 144.1客戶端協(xié)議 144.2服務(wù)器端協(xié)議 15第五章系統(tǒng)界面與代碼設(shè)計 175.1服務(wù)器端設(shè)計 175.1.1服務(wù)器端Winsock控件 175.1.2服務(wù)器端公共模塊設(shè)計 195.1.3服務(wù)器端主界面預覽 205.2客戶端設(shè)計 205.2.1客戶端代碼設(shè)計 205.2.2客戶端主界面預覽 24第六章系統(tǒng)測試與分析 25總結(jié) 26參考文獻 27致謝 28摘要本系統(tǒng)是一個網(wǎng)絡(luò)化的數(shù)據(jù)庫操作應(yīng)用系統(tǒng)。由于數(shù)據(jù)庫的一些操作全部在服務(wù)器端實現(xiàn),提高了系統(tǒng)的可維護性和安全性。圖書館信息管理系統(tǒng)主要分為服務(wù)器端和客戶端。系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)圖書的管理、借閱、分類,讀者信息的管理,讀者借閱圖書記錄,以及管理員信息管理和權(quán)限的維護。在編程技術(shù)上,本系統(tǒng)所采用的編程軟件是VisualBasic6.0,以數(shù)據(jù)庫MicrosoftAccess2000作為系統(tǒng)的后臺操作,數(shù)據(jù)庫操作方面以ADO數(shù)據(jù)庫訪問技術(shù)和SQL語言為主。網(wǎng)絡(luò)通訊方面主要用Winsock控件開發(fā)TCP/IP程序。[關(guān)鍵字]圖書館信息管理系統(tǒng)、VisualBasic6.0、MicrosoftAccess2000、Winsock控件AbstractThisisanappliedsystemaboutdatabaseoperation.Allofthedatabaseoperationisintheservercomputer,soitcanimprovethesystem’sprotectionandsafety.Managementinformationsystemofthelibraryisdividedintotwodepartments,whichareserverandclient.Thesystem’stasksarebooksmanagement,lendingbooksmanagement,book’stypesmanagement,readers’informationmanagement,andtherecordsoflendingbooks,usermanagementandtherightoftheusersmanagement.Inthetechniqueoftheprogram,thissystemusestheapplicationprogrammingsoftwareVisualBasic6.0astheimplementationlanguageandthedatabaseofMicrosoftAccess2000asthesystemofbackendoperation.InthedatabaseoperationmainlyusesthetechniqueofADOandthelanguageofSQL.ButintheInternetmainlyusestheWinsocktodeveloptheprogramofTCP/IP.[Keywords]:Managementinformationsystemofthelibrary、VisualBasic6.0、MicrosoftAccess2000、Winsock.系統(tǒng)概述1.1系統(tǒng)功能介紹本系統(tǒng)主要是使用VisualBasic來進行遠程的網(wǎng)絡(luò)化數(shù)據(jù)庫操作。系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)圖書的管理、借閱、分類,讀者信息的管理,讀者借閱圖書記錄,以及管理員信息管理和權(quán)限的維護。本圖書館管理系統(tǒng)分為兩部分,即服務(wù)器端和客戶端。主要完成的功能有:①讀者信息管理:即管理和維護讀者的各項數(shù)據(jù)信息,包括讀者ID、姓名、讀者類型、已借圖書數(shù)、是否有超期欠款及該讀者是否有效。其中讀者類型分為3類:本科生(借書5本,借期1月),類型代碼1;研究生(借書8本,借期2月),類型代碼2;教師(借書10本,借期2月),類型代碼3。當超期欠款大于3.00元時,讀者將不能繼續(xù)借閱圖書。當讀者離校被刪除時,讀者被設(shè)為無效,也將不能再借閱圖書。允許高級管理員和系統(tǒng)管理員添加、刪除和查詢讀者信息。②圖書信息管理:即管理和維護圖書的各項數(shù)據(jù)信息,包括書名、作者、出版社、版本號、出版日期、圖書類別號及是否在庫等信息。允許高級管理員和系統(tǒng)管理員添加圖書信息和查詢圖書信息。③圖書類別管理:即管理和維護圖書類別數(shù)據(jù),主要有類別號和類別名兩項。允許高級管理員和系統(tǒng)管理員添加圖書類別信息和查詢圖書類別信息。④借閱和歸還管理:即管理和維護圖書借閱、歸還及讀者的繳納超期限欠款等信息。包括讀者所借閱的圖書號、借閱日期、應(yīng)該歸還的日期、實際歸還的日期及超期欠款數(shù)等數(shù)據(jù)。主要功能有圖書借閱、歸還和繳納罰款3項功能。⑤管理員管理:即管理和維護管理員的各項數(shù)據(jù)信息,包括ID、姓名、密碼和管理員類型。主要有添加、刪除和查詢管理員信息等3項功能。只有系統(tǒng)管理員才能執(zhí)行上述命令。⑥管理員權(quán)限管理:按照數(shù)據(jù)表里的記錄來確定管理員的權(quán)限,并允許其執(zhí)行功能。這里定義了3種管理員權(quán)限類型,第1種是普通管理員,代碼2,只能登記圖書借閱和歸還信息,查看圖書類別和圖書信息;第2種是高級管理員,代碼1,除了普通管理員的權(quán)限,還能添加新的圖書資料和圖書類別資料,管理讀者信息(添加、刪除和查詢);第3種是系統(tǒng)管理員,代碼0,能夠執(zhí)行任何命令,除了高級管理員的權(quán)限,還能夠執(zhí)行管理員管理命令(如添加新管理員、刪除和查詢管理員信息等)。⑦圖書借閱統(tǒng)計:可以查詢圖書借閱統(tǒng)計排行,方便用戶了解圖書借閱情況。服務(wù)器端的客戶端管理:主要是管理和顯示連接到服務(wù)器的客戶端的數(shù)量、使用客戶端的管理員ID及網(wǎng)絡(luò)連接狀態(tài)等。系統(tǒng)設(shè)計2.1系統(tǒng)設(shè)計思想本系統(tǒng)要求數(shù)據(jù)庫能夠在網(wǎng)上實現(xiàn)圖書借閱記錄、圖書信息管理、讀者管理和管理員管理等幾個方面的功能。首先能夠讓用戶了解圖書館的藏書情況和圖書的一些具體信息,如書名、書號、作者、出版社、出版日期等。其次本系統(tǒng)還應(yīng)具有網(wǎng)上的功能,使讀者能夠通過管理員在網(wǎng)上實現(xiàn)借閱、歸還圖書和繳納罰款等功能。另外,管理員還可以通過網(wǎng)絡(luò)對各種資料進行管理,比如,對圖書信息數(shù)據(jù)和圖書類別信息數(shù)據(jù)進行維護,對讀者資料數(shù)據(jù)進行維護,包括讀者ID、姓名、讀者類型等數(shù)據(jù),以及對管理員數(shù)據(jù)進行維護,包括管理員ID、姓名、密碼、管理員類型等數(shù)據(jù)。1.系統(tǒng)總體執(zhí)行過程首先需要打開服務(wù)器端,然后用戶從遠程客戶端登錄系統(tǒng)。服務(wù)器收到登錄命令后需在已有的管理員資料庫中讀出管理員ID和密碼,然后檢驗此密碼和用戶輸入的密碼是否一致。當用戶登錄成功后就可以進行相應(yīng)的操作。正確地填寫好各界面的相關(guān)數(shù)據(jù)后,客戶端就會向服務(wù)器端發(fā)送命令,然后服務(wù)器對數(shù)據(jù)進行寫入或讀出或修改,最后返回操作結(jié)果或查詢的數(shù)據(jù)。具體的總體執(zhí)行過程如下圖(1)所示??蛻舳朔?wù)器端退出退出返回命令結(jié)果或數(shù)據(jù)處理數(shù)據(jù)庫新命令接受命令接受命令返回信息返回連接信息發(fā)送命令處理連接數(shù)據(jù)接受返回信息接受連接數(shù)據(jù)發(fā)送連接數(shù)據(jù)接受連接請求啟動啟動設(shè)置偵聽端口登錄發(fā)送連接請求退出退出返回命令結(jié)果或數(shù)據(jù)處理數(shù)據(jù)庫新命令接受命令接受命令返回信息返回連接信息發(fā)送命令處理連接數(shù)據(jù)接受返回信息接受連接數(shù)據(jù)發(fā)送連接數(shù)據(jù)接受連接請求啟動啟動設(shè)置偵聽端口登錄發(fā)送連接請求是否圖(1)——系統(tǒng)總體執(zhí)行過程數(shù)據(jù)要求系統(tǒng)首先必須維護一個記錄圖書詳細資料的數(shù)據(jù)表,程序能對該表進行寫入和讀出數(shù)據(jù)的操作。相應(yīng)的,對于圖書資料數(shù)據(jù)表中的圖書分類還必須有一個數(shù)據(jù)表,并且能允許管理員添加信息和查詢圖書類別。接著,系統(tǒng)還要維護讀者信息,則系統(tǒng)還需要管理并記錄讀者詳細信息的數(shù)據(jù)表,管理員可以添加、刪除和查看數(shù)據(jù)表,該表還記錄讀者的借閱情況,系統(tǒng)通過該表判斷讀者是否滿足借書條件(比如借書數(shù)是否已滿,該讀者是否有效等)。而對于每一次借閱歸還操作,系統(tǒng)還必須建立一個記錄圖書借閱信息的數(shù)據(jù)表,主要包括借閱的圖書號、借閱和歸還時間等,并能按照讀者類型計算借閱圖書應(yīng)歸還日期,再判斷并記錄該次借閱是否超期等信息。系統(tǒng)還要維護一個管理員信息數(shù)據(jù)表,記錄管理員的詳細資料,以檢驗管理員登錄,管理管理員的權(quán)限等。2.2系統(tǒng)結(jié)構(gòu)設(shè)計該圖書館管理系統(tǒng)主要分為服務(wù)器端和客戶端兩部分。服務(wù)器端只有一個主界面,且連接到數(shù)據(jù)庫。客戶端的主不僅由主界面,而且還有圖書借閱操作、讀者管理等多個子界面組成。但是客戶端是無數(shù)據(jù)庫。所以所有的數(shù)據(jù)都是通過網(wǎng)絡(luò)連接到服務(wù)器端的數(shù)據(jù)庫進行處理。下面圖(2)是具體的系統(tǒng)結(jié)構(gòu)設(shè)計圖:客戶端主界面客戶端圖書歸還界面圖書借閱界面管理員管理界面讀者管理界面圖書管理界面借閱管理界面連接服務(wù)器端界面數(shù)據(jù)庫服務(wù)器端主界面服務(wù)器端繳納罰款界面圖書館信息管理系統(tǒng)客戶端主界面客戶端圖書歸還界面圖書借閱界面管理員管理界面讀者管理界面圖書管理界面借閱管理界面連接服務(wù)器端界面數(shù)據(jù)庫服務(wù)器端主界面服務(wù)器端繳納罰款界面圖書館信息管理系統(tǒng)圖書統(tǒng)計界面圖書統(tǒng)計界面圖(2)——系統(tǒng)結(jié)構(gòu)設(shè)計2.3系統(tǒng)功能模塊劃分根據(jù)圖的系統(tǒng)總體執(zhí)行過程,可將系統(tǒng)分為以下幾個部分:服務(wù)器端模塊劃分數(shù)據(jù)管理模塊:連接數(shù)據(jù)庫,根據(jù)客戶端發(fā)送來的命令,按要求對數(shù)據(jù)庫進行不同的操作。網(wǎng)絡(luò)管理模塊:管理客戶端連接信息,包括連接狀態(tài)和連接數(shù)量等??蛻舳四K劃分網(wǎng)絡(luò)連接模塊:用于連接服務(wù)器。圖書借閱管理模塊:用于實現(xiàn)圖書借閱信息的管理,包括圖書借閱、歸還圖書和讀者繳納罰款等功能。圖書信息管理模塊:管理圖書資料、有圖書類別管理和圖書信息管理兩部分。讀者信息管理模塊:添加、刪除和查詢讀者信息模塊。管理員信息管理模塊:添加、刪除和查詢管理員信息功能。圖書統(tǒng)計模塊:記錄圖書借閱統(tǒng)計,用來實現(xiàn)圖書借閱次數(shù)排名統(tǒng)計的功能。接下來具體看下該系統(tǒng)的具體功能模塊劃分圖如下圖(3)所示。權(quán)限管理權(quán)限管理圖書借閱次數(shù)排名圖書借閱次數(shù)排名客戶端連接信息管操作數(shù)據(jù)庫連接服務(wù)器管理員查詢查詢圖書類別添加圖書類別查詢圖書信息添加圖書信息網(wǎng)絡(luò)管理模塊數(shù)據(jù)管理模塊網(wǎng)絡(luò)連接模塊圖書借閱統(tǒng)計模塊管理員管理管理員登錄查詢讀者刪除讀者添加讀者圖書類別管理圖書信息管理繳納罰款圖書歸還圖書借閱管理員管理模塊讀者信息管理模塊圖書信息管理模塊圖書借閱管理模塊圖書館管理系統(tǒng)服務(wù)器端圖書館管理系統(tǒng)客戶端客戶端連接信息管操作數(shù)據(jù)庫連接服務(wù)器管理員查詢查詢圖書類別添加圖書類別查詢圖書信息添加圖書信息網(wǎng)絡(luò)管理模塊數(shù)據(jù)管理模塊網(wǎng)絡(luò)連接模塊圖書借閱統(tǒng)計模塊管理員管理管理員登錄查詢讀者刪除讀者添加讀者圖書類別管理圖書信息管理繳納罰款圖書歸還圖書借閱管理員管理模塊讀者信息管理模塊圖書信息管理模塊圖書借閱管理模塊圖書館管理系統(tǒng)服務(wù)器端圖書館管理系統(tǒng)客戶端修改密碼刪除圖書類別添加管理員修改密碼刪除圖書類別添加管理員圖(3)——系統(tǒng)總體功能模塊劃分圖第三章數(shù)據(jù)庫設(shè)計3.1數(shù)據(jù)庫需求分析本系統(tǒng)的數(shù)據(jù)庫設(shè)計主要有圖書館圖書信息、讀者信息、管理員信息和借閱圖書信息的管理,數(shù)據(jù)庫的設(shè)計必須滿足這些功能需求。具體請看下面的一些功能需求:讀者信息管理部分①管理員可對讀者信息進行維護,如添加、刪除、查詢讀者信息等。②每個讀者必須對應(yīng)一種讀者類型(本科生、研究生、教師),服務(wù)器根據(jù)讀者類型判斷讀者可借閱的圖書數(shù)量和借閱期限。③在讀者已經(jīng)借閱圖書信息中必須包括讀者信息,讀者每次借閱時服務(wù)器都會比較該讀者已借閱圖書數(shù)是否小于該讀者類型可借閱的圖書數(shù),不滿足該條件讀者將不能繼續(xù)借閱圖書。④讀者信息中還應(yīng)包括讀者的超期罰款,本系統(tǒng)中超期罰款按圖書超期天數(shù)計算,當讀者超期罰款超過一定數(shù)額時,該讀者將不能繼續(xù)借閱圖書。⑤讀者可以注銷,即刪除讀者,但注銷后并不能清除所有讀者信息,因為該讀者有可能還沒有繳納罰款等,只能標記該讀者不可用。所以讀者信息中還應(yīng)用一個字段來標記讀者是否有效。圖書資料管理部分①管理員可對圖書資料數(shù)據(jù)進行維護,可添加新圖書信息。②管理員可對圖書類別進行維護,可添加新圖書類別。③管理員可對圖書信息進行查詢。④管理員可刪除、查詢圖書類別。⑤圖書是否在庫可借應(yīng)儲存在圖書信息中,因此圖書信息數(shù)據(jù)中必須有一個字段來記錄。⑥為了統(tǒng)計圖書借閱次數(shù)據(jù)排名,對于每本書必須有一個字段記錄該書被借出的次數(shù)。⑦圖書資料記錄中的圖書類別號必須與圖書類別記錄中的類別號相關(guān)聯(lián)。圖書借閱信息管理部分①管理員可添加圖書信息、圖書歸還和繳納罰款記錄。②通常圖書借閱和歸還記錄會分開添加,因此在添加的圖書借閱記錄中,關(guān)于歸還和罰款的字段可為空。③每次圖書借閱,服務(wù)器都應(yīng)該根據(jù)讀者的類型,計算應(yīng)歸還的日期,并記錄到數(shù)據(jù)庫相應(yīng)的字段。④每次圖書歸還都有應(yīng)該計算該書是否有超期欠款,并記錄在借閱記錄中相應(yīng)字段,然后才累加到讀者信息記錄中讀者欠款處。⑤圖書借閱信息中的借閱圖書號必須與圖書資料記錄中的圖書號相關(guān)聯(lián)。管理員信息管理部分①管理員有權(quán)限劃分,每個管理員ID必須對應(yīng)一個管理員權(quán)限類型(普通管理員、高級管理員、系統(tǒng)管理員)。②系統(tǒng)管理員可以添加、刪除、查詢管理員信息。3.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計由系統(tǒng)的總體分析,可得下圖(4)的實體—關(guān)系圖(E-R模型):備注出版日期類型號出版社在庫書名作者版本號借閱次數(shù)圖書號分類借閱圖書類別號類別名稱圖書類別管理超期欠款已借圖書是否有效類型ID姓名讀者管理員備注類型密碼ID號姓名rnsqmmnn備注出版日期類型號出版社在庫書名作者版本號借閱次數(shù)圖書號分類借閱圖書類別號類別名稱圖書類別管理超期欠款已借圖書是否有效類型ID姓名讀者管理員備注類型密碼ID號姓名rnsqmmnn借閱記錄借閱記錄備注備注圖(4)——實體—關(guān)系圖3.3數(shù)據(jù)庫表的設(shè)計本圖書館管理系統(tǒng)數(shù)據(jù)庫由以下5個數(shù)據(jù)表組成,具體設(shè)計請看下面的具體介紹。表1為Book_Info(圖書資料數(shù)據(jù)表)。該表記錄了圖書館圖書的基本資料。該表包括了圖書號、書名、作者、出版社、版本號、出版日期和圖書類別號等基本資料,以及圖書借閱次數(shù)字段,以便統(tǒng)計圖書借閱次數(shù)排名使用。注意的是圖書類別號要與圖書類別數(shù)據(jù)表中的類別號對應(yīng)。表1圖書資料數(shù)據(jù)表(Book_Info)字段名稱數(shù)據(jù)類型長度(字節(jié))必填字段主鍵字段說明Book_Num自動編號長整型是是書號Book_Name文本40是否書名Book_Author文本20是否作者Book_Press文本20是否出版社Book_PrsNum數(shù)字整型否否出版號Book_PrsDate日期/時間短日期是否出版日期Book_Type數(shù)字整型是否圖書類別號Book_Total數(shù)字長整型否否借閱次數(shù)Book_Remark文本30否否備注表2為讀者資料數(shù)據(jù)表,該表記錄了所有讀者的基本資料,管理員可添加、刪除和查詢此表。主要的字段有讀者ID、姓名、讀者類型(本科生、研究生、教師)、已借圖書、超期欠款和是否有效等字段(用于判斷該讀者是否滿足可借書條件)。表2讀者資料數(shù)據(jù)表(Reader_Info)字段名稱數(shù)據(jù)類型長度(字節(jié))必填字段主鍵字段說明Rdr_ID文本8是是讀者IDRdr_Name文本4是否讀者姓名Rdr_Type數(shù)字整型是否讀者類型Rdr_BKTotal數(shù)字整型是否已借書數(shù)Rdr_Arrearage貨幣貨幣是否超期欠款Rdr_Entitle布爾1是否是否有效Rdr_Remark文本30否否備注表3為圖書類別數(shù)據(jù)表(Book_Type)。它記錄了圖書類別,主要用于圖書分類,包括圖書類別號和圖書類別名稱兩個字段。表3圖書類別數(shù)據(jù)表(Book_Type)字段名稱數(shù)據(jù)類型長度(字節(jié))必填字段主鍵字段說明Type_Num自動編號長整型是是圖書類別號Type_Name文本8是否類別名稱表4為圖書借還記錄數(shù)據(jù)表(Book_Record),該表記錄了所有讀者借閱圖書的數(shù)據(jù),管理員可通過添加圖書借閱信息、圖書歸還信息和繳納罰款信息來添加和修改該表中的記錄。此表主要包括記錄號、借閱讀者ID、借閱圖書號、借閱日期、應(yīng)還日期和實際歸還日期,以及本書的超期欠款等資料。且借閱讀者ID要與讀者資料數(shù)據(jù)表中的讀者ID對應(yīng),圖書號要與圖書資料數(shù)據(jù)表中的圖書號對應(yīng)。表4圖書借還記錄數(shù)據(jù)表(Book_Record)字段名稱數(shù)據(jù)類型長度(字節(jié))必填字段主鍵字段說明Rec_Num自動編號長整型是是記錄號Rec_RdrID文本8是否讀者IDRec_BKNum數(shù)字長整型是否借閱圖書號Rec_LendTime時間/日期短日期是否借閱日期Rec_LendLimit時間/日期短日期是否應(yīng)還日期Rec_ReturnTime時間/日期短日期否否歸還日期Rec_Arrearage貨幣貨幣否否超期欠款Rec_Remark文本30否否備注表5為管理員資料數(shù)據(jù)表(User_Info),它記錄了所有管理員的基本資料,管理員可添加、刪除和查詢該表。它包括了管理員ID號,姓名、密碼和權(quán)限類型(系統(tǒng)管理員、高級管理員、普通管理員)等資料。表5管理員信息資料數(shù)據(jù)表(User_Info)字段名稱數(shù)據(jù)類型長度(字節(jié))必填字段主鍵字段說明Usr_ID文本8是是管理員ID號Usr_Name文本4是否管理員姓名Usr_Pwd文本8是否管理員密碼Usr_Type數(shù)字整型是否權(quán)限類型Usr_Remark文本30否否備注第四章網(wǎng)絡(luò)通訊協(xié)議的設(shè)計為了簡化協(xié)議又能夠覆蓋系統(tǒng)的功能,此系統(tǒng)的通訊協(xié)議格式為:“幀頭+,+(類型+,)+內(nèi)容”幀頭用于區(qū)分命令,不同的幀頭字段代表不同的命令類型,它們是由英文字母組成;類型代表的是各種命令中的一些小類型,由數(shù)字組成,本系統(tǒng)用到的是兩位數(shù)字,然后就是要傳遞的一些具體數(shù)據(jù),不同的情況有不同的數(shù)據(jù)類型構(gòu)成,而且各數(shù)據(jù)間用逗號隔開。如:幀頭Rdr表示關(guān)于讀者的命令,類型01則表示添加讀者信息,然后再加上具體的讀者信息數(shù)據(jù)。下面我們來看下本系統(tǒng)的一些具體的協(xié)議的設(shè)計。4.1客戶端協(xié)議客戶端協(xié)議分為網(wǎng)絡(luò)連接、圖書借閱和歸還管理、圖書類別管理、圖書信息管理、讀者信息管理、管理員信息管理和圖書借閱統(tǒng)計等。網(wǎng)絡(luò)連接協(xié)議登錄服務(wù)器:“Cnn,Usr_ID,Usr_Pwd”,幀頭“Cnn”,由于只有一條協(xié)議,所以無類型號,接著是協(xié)議具體內(nèi)容,Usr_ID是登錄服務(wù)器的管理員ID,USR_Pwd是管理員密碼。圖書借閱歸還管理協(xié)議圖書借閱:“Lend,Rec+RdrID,Rec_BkNum”,幀頭“Lend”,沒有類型號,接著是協(xié)議具體內(nèi)容,Rec_RdrID是借閱圖書的讀者ID,Rec_BkNum是讀者借閱的圖書號。圖書歸還:“Return,Rec_BkNum”,幀頭“Return”,沒有類型號,協(xié)議內(nèi)容只有Rec_BkNum一項,是歸還的圖書號。繳納罰款:“Pay,Rdr_ID”,幀頭“Pay”,沒有類型號,協(xié)議內(nèi)容只有Rdr_ID一項,是繳納罰款的讀者ID。圖書類別管理協(xié)議添加圖書類別:“Type,01,Type_Name”,幀頭“Type”,類型號為01,接著是協(xié)議具體內(nèi)容,只有一項Type_Name是需要添加的類型名稱。刪除圖書類別:“Type,02”,幀頭“Type”,類型號為02。查看圖書類別:“Type,03”,幀頭“Type”,類型號為03,因為圖書類別數(shù)量不是很大,則查看的是全部類別,所以沒有查看類別的數(shù)據(jù)內(nèi)容。圖書信息管理協(xié)議添加圖書信息:“Book,01,Bk_Name,Bk_Author,Bk_Press,Bk_PrsNum,Bk_PrsDate,Bk_Type”,幀頭“Book”,類型號01,接著是協(xié)議具體內(nèi)容,Bk_Name是需要添加的圖書名,Bk_Author是圖書作者,Bk_Press是圖書出版社,Bk_PrsNum是圖書出版版本號,Bk_PrsDate是圖書出版日期,Bk_Type是圖書類別號。查詢圖書信息:“Book,02,Bk_Name”。查詢圖書信息:“Book,03,Bk_Author”。讀者信息管理協(xié)議添加讀者信息:“Rdr,01,Rdr_ID,Rdr_Name,Rdr_Type”。刪除讀者信息:“Rdr,02,Rdr_ID”。查詢讀者信息:“Rdr,03,Rdr_ID”。6)管理員信息管理協(xié)議添加管理員信息:“Usr,01,Usr_ID,Usr_Type,Usr_Name,Usr_Pwd”。刪除管理員信息:“Usr,02,Usr_ID”。查詢管理員信息:“Usr,03,Usr_ID”。圖書借閱統(tǒng)計協(xié)議7)借閱次數(shù)排名統(tǒng)計:“Stat,Stat_Num”,幀頭“Stat”,無類型號,協(xié)議內(nèi)容Stat_Num是要統(tǒng)計排名的個數(shù)。4.2服務(wù)器端協(xié)議服務(wù)器端協(xié)議與客戶端協(xié)議是一一對應(yīng)的,也分為網(wǎng)絡(luò)連接、圖書管理和歸還管理、圖書類別管理、圖書信息管理、讀者信息管理、管理員信息管理和圖書借閱統(tǒng)計幾個方面。網(wǎng)絡(luò)連接協(xié)議登錄:“Cnn,Respond”,幀頭Cnn,無類型號,協(xié)議的具體內(nèi)容為,Respond表示是相應(yīng)登錄的返回信息,可以是成功登錄的歡迎信息和登錄失敗的原因等。圖書借閱歸還管理協(xié)議圖書借閱:“Lend,Respond”,幀頭Lend,無類型號,協(xié)議具體內(nèi)容為,Respond表示借閱圖書返回信息,借閱圖書成功后返回的借閱期限或錯誤原因等。圖書歸還:“Return,Respond”,幀頭Return,無類型號,協(xié)議具體內(nèi)容為,Respond表示的是歸還圖書的返回信息。繳納罰款:“Pay,Respond”,幀頭Pay,無類型號,Respond表示的是繳納罰款的返回信息。3)圖書類別管理協(xié)議添加圖書類別:“Type,01,Respond”,幀頭Type,類型號為01,協(xié)議內(nèi)容Respond表示添加圖書類別返回信息。查詢圖書類別:“Type,02,Type_Num1+Type_Name1+……..”,幀頭Type,類型號為02,協(xié)議內(nèi)容Type_Num1表示的是第一個類別號Type_Name1表示的是第一個類別名稱。后面的省略號依此類推。表示的是其他的圖書類別號和類別名稱,而且各條信息間用逗號隔開。圖書信息管理協(xié)議添加圖書信息:“Book,01,Respond”,幀頭Book,類型號為01,協(xié)議內(nèi)容為Respond表示添加圖書是否成功的信息。查詢圖書信息:“Book,02,Book_Num1+Book_Name1+Book_Author1+Book_Press1+Book_PrsNum1+Book_PrsDate1+Book_Type1+Book_Available1+Book_Total1,……..”,幀頭Book,類型號為02,協(xié)議內(nèi)容為:Book_Num1是要查詢的第一個圖書信息的圖書號,Book_Name1是要查詢的第一個圖書信息的書名,Book_Author1是作者名,Book_Press1是出版社名,Book_PrsNum1是版本號,Book_PrsDate1表示出版日期,Book_Type1表示類型號,Book_Avaiable1表示圖書是否在庫,Book_Total1表示的是圖書借閱總次數(shù)。讀者信息管理協(xié)議添加讀者信息:“Rdr,01,Respond”。刪除讀者信息:“Rdr,02,Respond”。查詢讀者信息:“Rdr,03,Respond”。管理員信息管理協(xié)議添加管理員信息:“Usr,01,Respond”。刪除管理員信息:“Usr,02,Respond”。查詢管理員信息:“Usr,03,Usr_ID1+Usr_Name1+Usr_Type1,…….”。圖書借閱統(tǒng)計協(xié)議借閱次數(shù)排名統(tǒng)計:“Stat,Book_Num1+Book_Name1+Book_Author1+Book_Press1+Book_PrsNum1+Book+PrsDate1+Book_Type1+Book_Avaiable1+Book_Total1,……”。第五章系統(tǒng)界面與代碼設(shè)計5.1服務(wù)器端設(shè)計5.1.1服務(wù)器端Winsock控件Winsock控件是一個在運行中不可見的控件,所以當程序運行時,主界面并不顯示它,而只是在后臺運作。Winsock控件對WinsockAPI進行了封裝,屏蔽了用Winsock編寫TCP/IP應(yīng)用的細節(jié),使用時不必了解TCP/IP具體內(nèi)容和如何調(diào)用WinsockAPI,所以使用起來非常方便,只要設(shè)置好相應(yīng)屬性,在一些觸發(fā)事件過程中做好相應(yīng)的處理,就能實現(xiàn)網(wǎng)絡(luò)應(yīng)用程序的編寫。在本系統(tǒng)中服務(wù)器會分別給不同的客戶端安排不同的Winsock連接,每當有新的客戶請求連接時,服務(wù)器首先檢驗是否有空閑的Winsock控件來接受請求,有就用空閑Winsock來接受請求,不然服務(wù)器會動態(tài)生成新的Winsock控件,然后用新生成的控件請求。當Winsock控件數(shù)組接收到數(shù)據(jù)時,先將數(shù)據(jù)按間隔的逗號分開,提取幀頭和類型,并對數(shù)據(jù)內(nèi)容分別做相應(yīng)的處理。當網(wǎng)絡(luò)連接關(guān)閉時,要找到網(wǎng)絡(luò)連接列表中相應(yīng)的記錄,將網(wǎng)絡(luò)連接狀態(tài)顯示為“斷開”。另外,在利用sock發(fā)送數(shù)據(jù)之前一定要檢驗sock連接狀態(tài),否則當sock連接不是連接狀態(tài)時,系統(tǒng)會出錯。下面來看一下該控件的一些事件代碼。1.Winsock觸發(fā)Close事件:PrivateSubSockToCln_Close(indexAsInteger)'網(wǎng)絡(luò)連接關(guān)閉DimiAsIntegerDimFindItmAsListItemFori=1ToClMaxIfClient(i).index=indexThen'找到該連接SetFindItm=Me.LvCnn.FindItem(Client(i).UsrID)FindItm.SubItems(1)="斷開"FindItm.SubItems(2)=NowExitForEndIfNextiEndSub2.Winsock觸發(fā)ConnectionRequest事件:'接受連接請求PrivateSubSockToCln_ConnectionRequest(indexAsInteger,ByValrequestIDAsLong)DimiAsIntegerFori=1ToMaxSvrSock'查詢是否有關(guān)閉的空閑控件IfSockToCln(i).State=sckClosedThenSockToCln(i).LocalPort=0IfSockToCln(i).LocalPort=SvrPortThen'不能占用偵聽端口ExitSubEndIfSockToCln(i).AcceptrequestIDExitSubEndIfNexti'沒有空閑的控件,原有socket都被占用,需要新增WinsockMaxSvrSock=MaxSvrSock+1'控件數(shù)增加LoadSockToCln(MaxSvrSock)'動態(tài)生成一個winsock控件SockToCln(MaxSvrSock).LocalPort=0'設(shè)置新端口SockToCln(MaxSvrSock).AcceptrequestID'接受連接請求EndSub3.Winsock觸發(fā)DataArrival事件:'接受并處理數(shù)據(jù)PrivateSubSockToCln_DataArrival(indexAsInteger,ByValbytesTotalAsLong)DimStrArrivalAsString,StrGet()AsStringDimstrBackAsStringDimRdrIDAsStringDimbkNumAsLongDimStatNumAsIntegerDimUsrIDAsStringDimUsrPwdAsStringMe.SockToCln(index).GetDataStrArrival,vbString'接受數(shù)據(jù)IfLen(StrArrival)<1ThenExitSubStrGet()=Split(StrArrival,",",-1)'拆分接收到的數(shù)據(jù)SelectCaseStrGet(0)'判斷類型Case"Lend"'圖書借閱RdrID=StrGet(1)'得到RdrIDbkNum=Val(StrGet(2))'得到BkNumstrBack=CheckLend(RdrID,bkNum)'回復客戶端Case"Return"'圖書歸還bkNum=Val(StrGet(1))'得到BkNumstrBack=CheckReturn(bkNum)'回復客戶端Case"Pay"'繳納欠款RdrID=StrGet(1)'得到RdrIDstrBack=CheckPay(RdrID)'回復客戶端Case"Type"'操作圖書類別'調(diào)用BookType函數(shù)處理圖書管理命令strBack=BookType(StrGet,index)Case"Book"'圖書管理'調(diào)用BookInfo函數(shù)處理圖書管理命令strBack=BookInfo(StrGet,index)Case"Rdr"'讀者管理'調(diào)用Reader函數(shù)處理圖書管理命令strBack=Reader(StrGet,index)Case"Usr"'管理員管理'調(diào)用User函數(shù)處理圖書管理命令strBack=User(StrGet,index)Case"Stat"‘借閱統(tǒng)計管理StatNum=Val(StrGet(1))'得到StatNumstrBack=CheckStat(StatNum)'回復客戶端Case"Cnn"'連接信息UsrID=StrGet(1)'得到UsrIDUsrPwd=StrGet(2)'得到UsrPwdstrBack=CheckUsr(UsrID,UsrPwd,index)'回復客戶端EndSelectIfMe.SockToCln(index).State<>sckConnectedThen'檢驗sock連接ExitSubEndIfMe.SockToCln(index).SendDatastrBack'發(fā)送返回信息EndSub5.1.2服務(wù)器端公共模塊設(shè)計啟動VisualBasic6.0后,新建一個標準EXE工程,然后將該工程保存,選擇保存路徑,并命名為圖書館管理系統(tǒng)服務(wù)器工程。接著給該工程添加一個模塊。選擇菜單[工程]、[添加模塊]命令,此模塊中定義服務(wù)器端需要用到的公共變量和公共類型。下面是代碼的實現(xiàn)過程。'定義全局ADO對象連接,用于連接數(shù)據(jù)庫PublicDBCnnAsNewADODB.Connection'現(xiàn)存動態(tài)生成的Winsock控件數(shù)(不包括靜態(tài)生成的那個保持幀聽的控件)PublicMaxSvrSockAsIntegerPublicSvrPortAsString'服務(wù)器端口PublicClient(1To100)AsClType'允許連接100個客戶端PublicClMaxAsInteger'記錄客戶端連接最大下標TypeClType'定義客戶端類型UsrIDAsString'管理員IDindexAsInteger'通道號EndType5.1.3服務(wù)器端主界面預覽5.2客戶端設(shè)計5.2.1客戶端代碼設(shè)計1.MDIForm_Load過程和MDIForm_Unload過程PrivateSubMDIForm_Load()IfApp.PrevInstanceThen'確定該程序沒有被啟動過MsgBox"您已經(jīng)啟動過了本程序!"EndEndIfEndSubPrivateSubMDIForm_Unload(CancelAsInteger)IfMe.SockToSvr.State<>sckClosedThen'檢查Winsock連接是否關(guān)閉Me.SockToSvr.CloseEndIf EndSub2.客戶端Winsock觸發(fā)事件過程Close過程PrivateSubSockToSvr_Close()'狀態(tài)欄顯示服務(wù)器狀態(tài)MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):斷開。"EndSubConnect過程PrivateSubSockToSvr_Connect()'連接服務(wù)器DimstrAsString'向服務(wù)器發(fā)送請求數(shù)據(jù)=Cnn,Usr_ID,Usr_Pwdstr="Cnn,"&UserNow.ID&","&UserNow.Pwd&","'檢驗sock連接并向服務(wù)器發(fā)送數(shù)據(jù)IfMDIFrm.SockToSvr.State<>sckConnectedThenMsgBox"還沒有連接數(shù)據(jù)庫,不能發(fā)送請求!"ExitSubEndIfMe.SockToSvr.SendDatastrEndSubDataArrival過程PrivateSubSockToSvr_DataArrival(ByValbytesTotalAsLong)DimStrArrivalAsString,StrGet()AsStringDimStartAsIntegerDimiAsInteger,jAsInteger,kAsIntegerDimLtItmAsListItem'接收數(shù)據(jù),String類型Me.SockToSvr.GetDataStrArrival,vbStringIfLen(StrArrival)<1ThenExitSub'拆分接收到的數(shù)據(jù)StrGet()=Split(StrArrival,",",-1)'得到幀頭,按不同類型做響應(yīng)的處理SelectCaseStrGet(0)'用戶管理Case"Usr"'按類型處理SelectCaseStrGet(1)'添加管理員Case"01"'狀態(tài)欄顯示服務(wù)器狀態(tài)MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)添加管理員。"'彈出提示框提示用戶MsgBoxStrGet(2),,"服務(wù)器響應(yīng)"'刪除管理員Case"02"'狀態(tài)欄顯示服務(wù)器狀態(tài)MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)刪除管理員。"'彈出提示框提示用戶MsgBoxStrGet(2),,"服務(wù)器響應(yīng)"'查詢管理員Case"03"'狀態(tài)欄顯示服務(wù)器狀態(tài)MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)查詢管理員。"'清空列表FrmUsrQuery.ListUsrResult.Clear'在列表中顯示查詢結(jié)果Fori=0ToUBound(StrGet)-2FrmUsrQuery.ListUsrResult.AddItemStrGet(i+2)NextiEndSelect'讀者管理Case"Rdr"'按類型處理SelectCaseStrGet(1)'添加讀者Case"01"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)添加讀者。"MsgBoxStrGet(2),,"服務(wù)器響應(yīng)"'刪除讀者Case"02"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)刪除讀者。"MsgBoxStrGet(2),,"服務(wù)器響應(yīng)"'查詢讀者Case"03"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)查詢讀者。"FrmRdrQuery.ListRdrResult.ClearFori=0ToUBound(StrGet)-2FrmRdrQuery.ListRdrResult.AddItemStrGet(i+2)NextiEndSelect'圖書類型信息Case"Type"SelectCaseStrGet(1)'添加圖書類型Case"01"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)添加圖書類型。"MsgBoxStrGet(2),,"服務(wù)器響應(yīng)"'刪除圖書類別Case"02"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)刪除圖書類別。"MsgBoxStrGet(2),,"服務(wù)器響應(yīng)"'查詢圖書類型Case"03"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)查詢圖書類型。"'清空列表FrmBookType.List1.Clear'添加查詢結(jié)果Fori=0ToUBound(StrGet)-2FrmBookType.List1.AddItemStrGet(i+2)NextiEndSelect'圖書信息Case"Book"SelectCaseStrGet(1)'添加圖書信息Case"01"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)添加圖書信息。"MsgBoxStrGet(2),,"服務(wù)器響應(yīng)"'查詢圖書信息Case"02"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)查詢圖書信息。"FrmBookInfo.LvBkResult.ListItems.ClearFori=0ToUBound(StrGet)-2SetLtItm=FrmBookInfo.LvBkResult.ListItems.Add()LtItm.Text=i+1LtItm.SubItems(1)=StrGet(i+2)NextiEndSelect'借閱圖書Case"Lend"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)借閱圖書。"MsgBoxStrGet(1),,"服務(wù)器響應(yīng)"'歸還圖書Case"Return"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)歸還圖書。"MsgBoxStrGet(1),,"服務(wù)器響應(yīng)"'繳納罰款Case"Pay"MDIFrm.StatusBar1.Panels(1).Text="服務(wù)器連接狀態(tài):響應(yīng)繳納罰款。"MsgBoxStrGet(1),,"服務(wù)器響應(yīng)"'圖書排名信息Case"Stat"MDIFrm.StatusBar1.Panels(1

溫馨提示

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

最新文檔

評論

0/150

提交評論