圖書管理系統(tǒng)開發(fā)畢業(yè)論文_第1頁(yè)
圖書管理系統(tǒng)開發(fā)畢業(yè)論文_第2頁(yè)
圖書管理系統(tǒng)開發(fā)畢業(yè)論文_第3頁(yè)
圖書管理系統(tǒng)開發(fā)畢業(yè)論文_第4頁(yè)
圖書管理系統(tǒng)開發(fā)畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、圖書管理系統(tǒng)開發(fā)圖書管理系統(tǒng)開發(fā) 摘摘 要要 圖書管理系統(tǒng)開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè) 方面。采用 sql server 2005 數(shù)據(jù)庫(kù)作為后臺(tái)數(shù)據(jù)庫(kù)、visual c#編程語(yǔ)言作為前臺(tái)開發(fā) 工具。通過(guò)對(duì)圖書管理的調(diào)查論證,圖書管理系統(tǒng)可以分為用戶信息管理、客戶信息管 理、圖書信息管理、出版社信息管理、客戶租還書管理、綜合查詢功能。 我在這次設(shè)計(jì)中主要完成了出版社信息管理和客戶租還書管理。經(jīng)過(guò)和其他組員設(shè) 計(jì)模塊的整合運(yùn)行后,系統(tǒng)運(yùn)行結(jié)果證明,本文所設(shè)計(jì)的圖書管理系統(tǒng)可以滿足學(xué)生和 教師借閱者、圖書管理員兩方面的需要,達(dá)到了設(shè)計(jì)要求。 關(guān)鍵字:關(guān)鍵字:圖書、數(shù)

2、據(jù)庫(kù)、管理系統(tǒng) 目 錄 一 緒論 .- 4 - (一) 圖書管理的現(xiàn)狀 .- 4 - (二) 系統(tǒng)開發(fā)目的和意義 .- 4 - (三) 圖書管理系統(tǒng)的可行性分析 .- 4 - (四) 開發(fā)環(huán)境 .- 5 - (五) 圖書管理系統(tǒng)開發(fā)相關(guān)技術(shù)的介紹 .- 5 - 1 visual c#的介紹 .- 5 - 2 sql server 的介紹 .- 5 - 二 系統(tǒng)需求分析 .- 6 - (一) 任務(wù)概述 .- 6 - (二) 數(shù)據(jù)描述 .- 6 - (三) 功能需求 .- 7 - (四) 性能需求 .- 7 - 1 系統(tǒng)處理的準(zhǔn)確性和及時(shí)性 .- 7 - 2 系統(tǒng)的易用性和易維護(hù)性 .- 7 -

3、3 系統(tǒng)的標(biāo)準(zhǔn)性 .- 7 - 4 系統(tǒng)的響應(yīng)速度 .- 7 - 三 系統(tǒng)概要設(shè)計(jì) .- 8 - (一) 系統(tǒng)功能描述 .- 8 - (二) 功能模塊劃分 .- 8 - (三) 系統(tǒng)流程分析 .- 9 - 四 系統(tǒng)詳細(xì)設(shè)計(jì) .- 10 - (一) 數(shù)據(jù)庫(kù)設(shè)計(jì) .- 10 - 1 數(shù)據(jù)庫(kù)需求分析 .- 10 - 2 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) .- 10 - 3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)分析 .- 11 - 4 連接數(shù)據(jù)庫(kù) .- 13 - (二) 主控制模塊設(shè)計(jì) .- 14 - 1 主控制模塊功能說(shuō)明 .- 14 - 2 主控制模塊設(shè)計(jì)圖 .- 14 - (三) 出版社信息模塊設(shè)計(jì) .- 14 - 1 出版社信息

4、模塊塊功能說(shuō)明 .- 14 - 2 出版社信息模塊功能圖 .- 14 - 3 出版社信息模塊設(shè)計(jì)圖 .- 15 - (四) 客戶租還書管理模塊設(shè)計(jì) .- 15 - 1 客戶租還書模塊功能說(shuō)明 .- 15 - 2 客戶租還書模塊功能圖 .- 15 - 3 客戶租還書模塊設(shè)計(jì)圖 .- 16 - 五 測(cè)試分析報(bào)告 .- 17 - (一) 測(cè)試用例 .- 17 - (二) 測(cè)試結(jié)果 .- 17 - 六 結(jié)論 .- 18 - 致謝 .- 18 - 參考文獻(xiàn) .- 19 - 附錄 .- 20 - 一一 緒論緒論 隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,當(dāng)今社會(huì)正快速向信息化社會(huì)前進(jìn),信息系統(tǒng)的作用 也越來(lái)越大。圖書館在

5、正常運(yùn)營(yíng)中總是面對(duì)大量的讀者信息,書籍信息以及由兩者相互 作用產(chǎn)生的借書信息,還書信息。因此圖書管理信息化是發(fā)展的必然趨勢(shì)。用結(jié)構(gòu)化系 統(tǒng)分析與設(shè)計(jì)的方法,建立一套有效的圖書信息管理系統(tǒng),可以減輕工作,將工作科學(xué) 化、規(guī)范化,提高了圖書館信息管理的工作質(zhì)量因此根據(jù)圖書館目前實(shí)際的管理情況開 發(fā)一套圖書管理系統(tǒng)是十分必要的。 ( (一一) ) 圖書管理的現(xiàn)狀圖書管理的現(xiàn)狀 圖書管理是高校內(nèi)每一個(gè)系部或院部都必須切實(shí)面對(duì)的工作,但一直以來(lái)人們使用 傳統(tǒng)的人工方式管理圖書資料。這種方式存在著許多缺點(diǎn),如效率低、保密性差且較為 繁瑣。另外,隨著圖書資料數(shù)量的增加,其工作量也將大大增加,這必將增加圖書資

6、料 管理者的工作量和勞動(dòng)強(qiáng)度,這將給圖書資料信息的查找、更新和維護(hù)都帶來(lái)了很多困 難。 經(jīng)過(guò)詳細(xì)的調(diào)查,目前我國(guó)各類高等學(xué)校中有相當(dāng)一部分單位圖書資料管理還停留 在人工管理的基礎(chǔ)上。這樣的管理機(jī)制已經(jīng)不能適應(yīng)時(shí)代的發(fā)展,其管理方法將浪費(fèi)許 多人力和物力。隨著科學(xué)技術(shù)的不斷提高,這種傳統(tǒng)的手工管理方法必然被以計(jì)算機(jī)為 基礎(chǔ)的信息管理方法所取代。 傳統(tǒng)圖書管理的特點(diǎn)是一直以來(lái),中小型書店、中小學(xué)的小型圖書館及各高校圖書館 和資料室使用傳統(tǒng)的人工方式管理圖書檔案、客戶檔案。這種管理方式存在著諸多缺點(diǎn), 如:手續(xù)繁瑣、工作量大、效率低下、出錯(cuò)率高等,同時(shí)給對(duì)大量資料的查詢、更新及 維護(hù)都帶來(lái)不少困難。

7、 ( (二二) ) 系統(tǒng)開發(fā)系統(tǒng)開發(fā)目的目的和意義和意義 隨著社會(huì)的進(jìn)步,信息技術(shù)的廣泛應(yīng)用,數(shù)字化管理的優(yōu)勢(shì)日趨顯著。針對(duì)云航中 學(xué)圖書館管理落后的情況,設(shè)計(jì)實(shí)現(xiàn)一個(gè)圖書信息管理系統(tǒng),通過(guò)圖書信息管理系統(tǒng)的 使用對(duì)學(xué)校圖書館的各種圖書信息進(jìn)行管理可以給管理員和用戶帶來(lái)以下不同的方便: 檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn) 能夠極大地提高工作效率,也是圖書館管理科學(xué)化、正規(guī)化的重要標(biāo)志之一,而且計(jì)算 機(jī)管理的成本不斷降低。因此,開發(fā)一套圖書管理軟件已經(jīng)很有必要,并且實(shí)現(xiàn)研究服 務(wù)于實(shí)踐的原則。 ( (三三) ) 圖書管理系統(tǒng)的可行性分析圖書管理系統(tǒng)的可行

8、性分析 本次畢業(yè)設(shè)計(jì)題目:“基于 b/s 的云航中學(xué)圖書館信息管理系統(tǒng)設(shè)計(jì)與開發(fā)”主要 目的是利用數(shù)據(jù)庫(kù)軟件編制一個(gè)管理軟件,用以實(shí)現(xiàn)圖書、讀者以及日常工作等多項(xiàng)管 理。同時(shí)對(duì)整個(gè)系統(tǒng)的分析、設(shè)計(jì)過(guò)程給出一個(gè)完整論證。圖書管理系統(tǒng)是一種基于集 中統(tǒng)一規(guī)劃的數(shù)據(jù)庫(kù)數(shù)據(jù)管理新模式。在對(duì)圖書、讀者的管理,其實(shí)是對(duì)圖書、讀者數(shù) 據(jù)的管理。本系統(tǒng)的建成無(wú)疑會(huì)為管理者對(duì)圖書管理系統(tǒng)提供極大的幫助。本系統(tǒng)的設(shè) 計(jì)主要從以下幾方面做起:系統(tǒng)業(yè)務(wù)流程分析、系統(tǒng)的功能設(shè)計(jì)、系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè) 計(jì)等。作這些工作需對(duì)數(shù)據(jù)庫(kù)知識(shí)有足夠認(rèn)識(shí),并深入的了解 visual basic 的使用和管 理系統(tǒng)的相關(guān)知識(shí)。 現(xiàn)在大多

9、數(shù)的圖書管理方式為手工處理,重復(fù)勞動(dòng)多,勞動(dòng)強(qiáng)度大,而且容易出錯(cuò), 新系統(tǒng)的使用能否可以很好的解決這些問(wèn)題要看系統(tǒng)的可行性,可行性研究的目的是用 最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。系統(tǒng)的可行性分析有以下幾個(gè) 方面: 技術(shù)可行性:處理速度快、準(zhǔn)確通過(guò)權(quán)限的設(shè)置,數(shù)據(jù)的安全性好、方便查詢、借閱 管理等。 經(jīng)濟(jì)可行性:系統(tǒng)建設(shè)不需要很大的投入、可縮減人力投入。 運(yùn)行上可行性:本系統(tǒng)作為一個(gè)小型的圖書館信息管理系統(tǒng),所耗費(fèi)的資源非常的小。 從各種社會(huì)因素可行性分析:可降低工作人員工作強(qiáng)度,提高效率,會(huì)得到學(xué)校工作 人員的一致同意的。 綜上所述通過(guò)可行性分析認(rèn)為新系統(tǒng)的開發(fā)方案切實(shí)可行,

10、可進(jìn)行開發(fā)。 ( (四四) ) 開發(fā)環(huán)境開發(fā)環(huán)境 開發(fā)環(huán)境:windows 7 開發(fā)工具:visual c# 數(shù)據(jù)庫(kù)管理系統(tǒng): sql server 2005 數(shù)據(jù)庫(kù)服務(wù)器: sql server 2005 桌面引擎 ( (五五) ) 圖書管理系統(tǒng)開發(fā)相關(guān)技術(shù)的介紹圖書管理系統(tǒng)開發(fā)相關(guān)技術(shù)的介紹 1 1 visualvisual c#c#的介紹的介紹 c#(讀作 c sharp)是微軟開發(fā)的一種面向?qū)ο蟮木幊陶Z(yǔ)言,是微軟.net 開發(fā)環(huán)境 的重要組成部分。而 microsoft visual c# 2005 是微軟開發(fā)的 c#編程集成開發(fā)環(huán)境(同 種產(chǎn)品還有 borland 公司的 c# bu

11、ilder) ,它是為生成在 .net framework 上運(yùn)行的多種 應(yīng)用程序而設(shè)計(jì)的。c# 簡(jiǎn)單、功能強(qiáng)大、類型安全,而且是面向?qū)ο蟮摹# 憑借它的 許多創(chuàng)新,在保持 c 樣式語(yǔ)言的表示形式和優(yōu)美的同時(shí),實(shí)現(xiàn)了應(yīng)用程序的快速開發(fā)。 2 2 sqlsql serverserver 的介紹的介紹 sql(structured query language),結(jié)構(gòu)化查詢語(yǔ)言。sql 語(yǔ)言的主要功能就是同各 種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。按照 ansi(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定,sql 被作為關(guān)系 型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。sql 語(yǔ)句可以用來(lái)執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫(kù) 中的數(shù)據(jù),從數(shù)

12、據(jù)庫(kù)中提取數(shù)據(jù)等。絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)都采用了 sql 語(yǔ)言標(biāo)準(zhǔn)。雖然很多數(shù)據(jù)庫(kù)都對(duì) sql 語(yǔ)句進(jìn)行了再開發(fā)和擴(kuò)展,但是包括 select, insert, update, delete, create,以及 drop 在內(nèi)的標(biāo)準(zhǔn)的 sql 命令仍然可以被用來(lái)完 成幾乎所有的數(shù)據(jù)庫(kù)操作。 二二 系統(tǒng)需求分析系統(tǒng)需求分析 ( (一一) ) 任務(wù)概述任務(wù)概述 經(jīng)過(guò)對(duì)云航中學(xué)詳細(xì)調(diào)查,加深了對(duì)現(xiàn)行圖書管理業(yè)務(wù)的深刻了解,與此同時(shí),將 整個(gè)圖書管理的業(yè)務(wù)流程抽象描述如下: 新的圖書購(gòu)進(jìn)后,分門別類地進(jìn)行歸并并匯總,加以編號(hào)。 新書編號(hào)后,上到書架以備學(xué)生借閱。 如某學(xué)生需要借閱圖書,則

13、在其本人的借閱登記表上進(jìn)行登記,記錄相關(guān)借閱信息與 借閱日期。 學(xué)生借閱圖書后,應(yīng)及時(shí)歸還圖書,并在本人的借閱登記表上注明還書日期和時(shí)間。 根據(jù)以上調(diào)查分析,可以給出其現(xiàn)行業(yè)務(wù)流程圖如圖 2.1 所示。 圖 2.1 現(xiàn)行圖書管理業(yè)務(wù)流程圖 ( (二二) ) 數(shù)據(jù)描述數(shù)據(jù)描述 經(jīng)過(guò)詳細(xì)的調(diào)查,我們已經(jīng)清楚了解了現(xiàn)行的業(yè)務(wù)流程,接下來(lái)給出系統(tǒng)的邏輯模 型。構(gòu)造系統(tǒng)邏輯模型的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。根據(jù)現(xiàn)行圖書管理的業(yè)務(wù)流程, 首先把數(shù)據(jù)流圖中的源點(diǎn)和終點(diǎn)都選定為學(xué)生,因此可以得到圖書管理系統(tǒng)的基本系統(tǒng) 模型,如圖 2.2 所示。 圖 2.2 圖書管理系統(tǒng)的基本系統(tǒng)模型 根據(jù)基本系統(tǒng)模型,對(duì)其逐步

14、細(xì)化,得到描述邏輯系統(tǒng)細(xì)化后的數(shù)據(jù)流圖,如圖 2.3 所示。 管管理理 員員 學(xué)學(xué)生生信信息息 1 學(xué)學(xué)生生 管管理理 d1 學(xué)學(xué)生生信信息息 圖圖書書信信息息 2 圖圖書書 管管理理 d2圖圖書書信信息息登登記記圖圖書書信信息息登登記記 圖圖書書信信息息 學(xué)學(xué)生生借借閱閱 圖圖 書書 3 借借閱閱管管 理理 借借閱閱信信息息 借借閱閱登登記記d3 4 歸歸還還管管 理理 學(xué)學(xué)生生信信息息 歸歸還還圖圖書書 歸歸還還登登記記d4 學(xué)學(xué)生生 借借閱閱結(jié)結(jié)果果 歸歸還還圖圖書書 歸歸還還結(jié)結(jié)果果 新圖書新圖書新圖書新圖書 新圖書 分分類類、編編號(hào)號(hào)學(xué)學(xué)生生借借閱閱學(xué)學(xué)生生歸歸 還還圖圖書書 歸歸還

15、還后后的的圖圖書書 圖 2.3 圖書管理系統(tǒng)數(shù)據(jù)流圖 ( (三三) ) 功能需求功能需求 經(jīng)過(guò)以上詳細(xì)的用戶調(diào)查,在現(xiàn)行業(yè)務(wù)流程和數(shù)據(jù)分析的基礎(chǔ)上,基本可以確定系 統(tǒng)設(shè)計(jì)必須達(dá)到的目標(biāo)。 以下是圖書管理系統(tǒng)必須具備的功能: 新進(jìn)圖書的登記功能:對(duì)于購(gòu)進(jìn)的新書,系統(tǒng)必須具備圖書信息資料的錄入功能。 圖書的查詢修改功能:當(dāng)圖書資料發(fā)生變化,如圖書丟失或有錯(cuò)誤信息輸入時(shí),則應(yīng) 能夠及時(shí)對(duì)數(shù)據(jù)進(jìn)行修改和補(bǔ)充。 借閱的登記,歸還的登記功能:系統(tǒng)的主要功能之一,供本校學(xué)生借閱圖書、歸還圖 書,并進(jìn)行登記。 學(xué)生信息的增加、刪除和修改功能:系統(tǒng)主要功能之一,建立學(xué)生信息,并對(duì)其進(jìn)行 維護(hù)。 ( (四四) )

16、 性能需求性能需求 為了保證系統(tǒng)能夠長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,圖書管理系統(tǒng)應(yīng)該滿足 以下的性能需求: 1 1 系統(tǒng)處理的準(zhǔn)確性和及時(shí)性系統(tǒng)處理的準(zhǔn)確性和及時(shí)性 系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開發(fā)過(guò)程中,要充分 考慮系統(tǒng)當(dāng)前和將來(lái)可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足學(xué)校對(duì) 信息處理的需求。 2 2 系統(tǒng)的易用性和易維護(hù)性系統(tǒng)的易用性和易維護(hù)性 圖書管理系統(tǒng)是直接面對(duì)使用人員的,而使用人員往往對(duì)計(jì)算機(jī)并不時(shí)非常熟悉。 這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就要求 系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語(yǔ)和中文信息的界面;針對(duì)用

17、戶可能出現(xiàn)的使用問(wèn)題, 要提供足夠的在線幫助,縮短用戶對(duì)系統(tǒng)熟悉的過(guò)程。 3 3 系統(tǒng)的標(biāo)準(zhǔn)性系統(tǒng)的標(biāo)準(zhǔn)性 系統(tǒng)在設(shè)計(jì)開發(fā)使用過(guò)程中都要涉及到很多計(jì)算機(jī)硬件、軟件。所有這些都要符合 主流國(guó)際、國(guó)家和行業(yè)標(biāo)準(zhǔn)。 4 4 系統(tǒng)的響應(yīng)速度系統(tǒng)的響應(yīng)速度 圖圖書書管管 理理系系統(tǒng)統(tǒng) 圖圖書書管管理理員員 圖圖書書管管理理員員 圖圖書書借借閱閱信信息息圖圖書書歸歸還還信信息息 圖書管理系統(tǒng)系統(tǒng)在日常處理中的響應(yīng)速度為秒級(jí),達(dá)到實(shí)時(shí)要求,以及時(shí)反饋信 息。在進(jìn)行統(tǒng)計(jì)分析時(shí),根據(jù)所需數(shù)據(jù)量的不同而從秒級(jí)到分鐘級(jí),原則是保證操作人員 不會(huì)因?yàn)樗俣葐?wèn)題而影響工作效率。 三三 系統(tǒng)概要設(shè)計(jì)系統(tǒng)概要設(shè)計(jì) 系統(tǒng)設(shè)計(jì)主

18、要包括客戶需求的總結(jié)、功能模塊的劃分和系統(tǒng)流程的分析。根據(jù)客戶需 求總結(jié)系統(tǒng)主要完成的功能,以及將來(lái)拓展需要完成的功能,然后根據(jù)設(shè)計(jì)好的功能劃 分出系統(tǒng)的功能模塊,以方便程序的管理和維護(hù),最后設(shè)計(jì)出系統(tǒng)的流程。接下來(lái),就 對(duì)系統(tǒng)設(shè)計(jì)的前期準(zhǔn)備做詳細(xì)介紹。 ( (一一) ) 系統(tǒng)功能描述系統(tǒng)功能描述 一個(gè)圖書借閱管理系統(tǒng)應(yīng)該提供包括客戶信息管理、圖書信息管理、出版社信息管 理、用戶信息管理、租還書、報(bào)表顯示和綜合查詢等功能。 客戶、圖書、出版社、用戶信息的數(shù)據(jù)維護(hù)模塊提供增加、刪除、改變和查詢、瀏覽 等基本的數(shù)據(jù)維護(hù)功能。 打印報(bào)表功能模塊可以用報(bào)表的形式顯示數(shù)據(jù)表。 綜合查詢模塊可以通過(guò)用戶選

19、擇的數(shù)據(jù)表和相應(yīng)的查詢條件來(lái)查詢相關(guān)內(nèi)容。 客戶租還書模塊是圖書出租管理系統(tǒng)的核心功能,實(shí)現(xiàn)客戶和圖書出租的交互。 ( (二二) ) 功能模塊劃分功能模塊劃分 圖書出租管理系統(tǒng)應(yīng)該具有客戶信息管理、圖書信息管理、租還書和綜合查詢等功 能。根據(jù)系統(tǒng)功能的需求分析,我們把該系統(tǒng)的功能劃分為 7 個(gè)模塊。 客戶信息維護(hù)模塊 圖書信息維護(hù)模塊 出版社信息維護(hù)模塊 用戶信息維護(hù)模塊 客戶租還書管理模塊 綜合查詢模塊 報(bào)表顯示模塊 圖書出租管理系統(tǒng)的功能模塊如圖 3.1 所示。 圖 3.1 圖書出租管理系統(tǒng)的功能模塊圖 其中,客戶租/還書管理模塊包括以下 3 個(gè)子模塊。 租借圖書 圖書信息管理系統(tǒng) 客 戶

20、 信 息 模 塊 圖 書 信 息 模 塊 用 戶 信 息 模 塊 租 還 書 管 理 模 塊 綜 合 查 詢 模 塊 出 版 社 信 息 模 塊 報(bào) 表 顯 示 模 塊 歸還圖書 查詢租借信息 客戶信息維護(hù)模塊包括以下 4 個(gè)子模塊 增加客戶信息 刪除客戶信息 修改客戶信息 查詢客戶信息 該模塊圖如圖 3.2 所示。 圖 3.2 客戶信息維護(hù)模塊圖 同理,如圖書信息管理、出版社信息管理、用戶信息管理模塊也被類似的分為增加、 刪除、修改、查詢 4 個(gè)模塊。 從圖中可以看出,該信息管理系統(tǒng)的角色可以劃分為 3 類。 普通用戶:擁有客戶信息維護(hù)、圖書信息管理、出版社信息管理及客戶租還書信息管 理、報(bào)

21、表顯示和綜合查詢的權(quán)限。 系統(tǒng)管理員:擁有客戶信息維護(hù)、圖書信息管理、出版社信息管理、用戶信息管理以 及客戶租還書管理、報(bào)表顯示和綜合查詢的權(quán)限。但其主要功能還是用戶信息管理。 客戶:租書和還書。 ( (三三) ) 系統(tǒng)流程分析系統(tǒng)流程分析 圖書出租管理系統(tǒng)的開發(fā)首先要設(shè)計(jì)一個(gè)登錄系統(tǒng),用戶只有輸入了正確的用戶名和 密碼方可進(jìn)入系統(tǒng)內(nèi)部。系統(tǒng)流程圖如圖 3.3 所示。 客戶信息模塊 客 戶 信 息 模 塊 圖 書 信 息 模 塊 用 戶 信 息 模 塊 出 版 社 信 息 模 塊 租 還 書 管 理 模 塊 綜 合 查 詢 報(bào) 表 顯 示 模 塊 圖書信息管理系統(tǒng) 客 戶 信 息 管 理 圖

22、書 信 息 管 理 用 戶 信 息 管 理 出 版 社 信 息 管 理 登陸 用戶系統(tǒng)管理員 圖 3.3 圖書出租管理系統(tǒng)圖 四四 系統(tǒng)詳細(xì)設(shè)計(jì)系統(tǒng)詳細(xì)設(shè)計(jì) ( (一一) ) 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞直接影響的圖書出租管理系統(tǒng)的效率和實(shí)現(xiàn)的效果。合理地設(shè) 計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)可以提高數(shù)據(jù)存儲(chǔ)的效率,保證數(shù)據(jù)的完整和統(tǒng)一。數(shù)據(jù)庫(kù)設(shè)計(jì)一般包括 如下幾個(gè)步驟。 數(shù)據(jù)庫(kù)需求分析 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)分析 1 1 數(shù)據(jù)庫(kù)需求分析數(shù)據(jù)庫(kù)需求分析 圖書出租管理系統(tǒng)的數(shù)據(jù)庫(kù)功能主要體現(xiàn)在對(duì)各種信息的提供、保存、更新和查詢操 作上,包括圖書信息、用戶信息、客戶信息、租借信息和出版社信息,

23、各個(gè)部分?jǐn)?shù)據(jù)內(nèi) 容又有內(nèi)在聯(lián)系。針對(duì)該系統(tǒng)的數(shù)據(jù)特點(diǎn),可以總結(jié)出如下的需求。 用戶和客戶具有不同的身份。 用戶信息記錄用戶資料。 客戶信息記錄客戶的詳細(xì)信息。 圖書信息記錄圖書的名稱、出版社等信息。 租借信息記錄客戶租借圖書的信息。 出版社信息由出版社名稱、出版社地址等各個(gè)信息。 經(jīng)過(guò)上述系統(tǒng)功能分析和需求總結(jié),設(shè)計(jì)如下的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)。 圖書信息,包括圖書編號(hào)、圖書名稱、作者等數(shù)據(jù)項(xiàng)。 租書信息,包括客戶編號(hào)、圖書編號(hào)、租借日期等數(shù)據(jù)項(xiàng)。 出版社信息,包括出版社名稱、出版社地址、電話等數(shù)據(jù)項(xiàng)。 客戶信息,包括客戶編號(hào)、姓名、密碼等數(shù)據(jù)項(xiàng)。 用戶信息,包括用戶編號(hào)、密碼和分類數(shù)據(jù)項(xiàng)。 2 2

24、 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 得到上面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)后,就可以設(shè)計(jì)滿足需要的各種實(shí)體及相互關(guān)系,再 用實(shí)體關(guān)系圖,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。 在這個(gè)系統(tǒng)中,所存在的實(shí)體有:圖書信息實(shí)體、租書信息實(shí)體、出版社信息實(shí)體、 客戶信息實(shí)體和用戶信息實(shí)體。 圖書:圖書編號(hào)名稱作者出版社 租書:客戶編號(hào)圖書編號(hào)租借日期應(yīng)歸還日期 客戶:客戶編號(hào)名稱密碼租借數(shù)量 出版社:出版社名稱地址電話郵件 用戶:用戶編號(hào)密碼分類 3 3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)分析數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)分析 有了數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫(kù)的設(shè)計(jì)就簡(jiǎn)單多了。在圖書出租管理系統(tǒng)中,首 先要?jiǎng)?chuàng)建圖書出租管理系統(tǒng)數(shù)據(jù)庫(kù),然后在數(shù)據(jù)庫(kù)中創(chuàng)建需要

25、的表和字段。如果有需要, 還可以設(shè)計(jì)視圖、存儲(chǔ)過(guò)程和觸發(fā)器。下面分別講述在圖書出租管理系統(tǒng)中數(shù)據(jù)庫(kù)的設(shè) 計(jì)。 創(chuàng)建數(shù)據(jù)庫(kù) 在開發(fā)環(huán)境中,啟動(dòng)“服務(wù)器資源管理器”窗口,在 sql server 服務(wù)器節(jié)點(diǎn)右擊, 在圖案出的快捷菜單中選擇“新建數(shù)據(jù)庫(kù)”命令,將打開“創(chuàng)建數(shù)據(jù)庫(kù)”對(duì)話框。在 “心數(shù)據(jù)庫(kù)名”文本框中輸入 bookmanagement,選擇“使用 windows 身份驗(yàn)證”單選按 鈕。 創(chuàng)建字/字段 在這個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)中要建立 5 張數(shù)據(jù)表,分別是用戶表、圖書表、客戶表、租 借信息表和出版社表。下面說(shuō)明創(chuàng)建表和字段的方法。在剛剛建立的 bookmanagement 數(shù) 據(jù)庫(kù)節(jié)點(diǎn)下的“表

26、”節(jié)點(diǎn)右擊,在彈出的快捷菜單中選擇“新建表”命令。在彈出的 “新建表”窗體中輸入如圖 4.1 所示的字段和屬性。 圖 4.1 book 表 圖書表的字段說(shuō)明,其中設(shè)置 bookid 為主鍵和索引。 表 4.1 圖書表(book) 表 4.2 租借信息表(borrowbook) 表 4.3 出版社表(publishcompany) 表 4.4 客戶表(reader) 表 4.5 用戶表(user) 在建立完所有的數(shù)據(jù)表后,要根據(jù)數(shù)據(jù)表之間的關(guān)系在屬性頁(yè)中添加關(guān)系。為 book 表和 borrowbook 表之間添加 fk_borrowbook_book 關(guān)系,為 book 表 book 表和 p

27、ulishcompany 之間添加 fk_book_publishcompany 關(guān)系,為 reader 表和 borrowbook 表 之間添加 fk_borrowbook_reader 關(guān)系。 創(chuàng)建視圖 在圖書出租管理系統(tǒng)中,為便于瀏覽目前客戶借圖書的信息,要?jiǎng)?chuàng)建一個(gè) borrow 視 圖來(lái)顯示租借記錄中客戶和所租借圖書的一些詳細(xì)信息以便以后綜合瀏覽。在 bookmanagement 數(shù)據(jù)庫(kù)下面的“視圖”節(jié)點(diǎn)右鍵,在彈出的快捷慘淡中選擇“新建視圖” 命令,在彈出的對(duì)話框中選擇 book 表、borrowbook 表和 reader 表,及其各自想要顯示 的字段。 borrow 視圖的 sq

28、l 語(yǔ)法如下: select dbo.borrowbook.readerid,dbo.borrowbookid,dbo.borrowbook.returndate, dbo.borrowbook.borrowdate,dbo.reader.readerid as expr 1, dbo.reader.readername,dbo.reader.readerphoneno,dbo.book.b ookid as expr2, dbo.book.bookname,dbo.book.bookremain from dbo.book inner join dbo.borrowbook on dbo.b

29、ook. bookid=dbo.borrowbook.bookid inner join dbo.reader on dbo.borrowbook.readerid=dbo.reader.readerid 創(chuàng)建存儲(chǔ)過(guò)程 為保證系統(tǒng)具有良好的課擴(kuò)展性,有些業(yè)務(wù)規(guī)則可以以儲(chǔ)存過(guò)程方式放在數(shù)據(jù)庫(kù)服 務(wù)器上。儲(chǔ)存過(guò)程提供了數(shù)據(jù)驅(qū)動(dòng)應(yīng)用程序中的許多優(yōu)點(diǎn)。利用存儲(chǔ)過(guò)程可以,將數(shù)據(jù) 庫(kù)操作層狀在單個(gè)命令中,為獲取最佳性能二進(jìn)行優(yōu)化并通過(guò)附加的安全性而增強(qiáng)系統(tǒng) 安全性。 在圖書出租管理系統(tǒng)中,創(chuàng)建實(shí)現(xiàn)在客戶租還書時(shí)對(duì)客戶表中的客戶所借書目和圖 書表中圖書庫(kù)存量的改變的存儲(chǔ)過(guò)程和客戶借書之前查詢客戶租借圖書數(shù)目

30、和圖書庫(kù)存 量和存儲(chǔ)過(guò)程。在開發(fā)環(huán)境中創(chuàng)建存儲(chǔ)過(guò)程可以通過(guò)在“服務(wù)器資源管理器”窗口中的 “存儲(chǔ)過(guò)程”節(jié)點(diǎn)右擊,在彈出的對(duì)話框中選擇“新建存儲(chǔ)過(guò)程”命令??纱鎯?chǔ)過(guò)程編 寫窗口中寫入代碼。 在圖書出租管理系統(tǒng)中,需要?jiǎng)?chuàng)建 6 個(gè)存儲(chǔ)過(guò)程。下面介紹各個(gè)存儲(chǔ)過(guò)程和功能。 客戶安裝配套光盤上的數(shù)據(jù)庫(kù)之后可以通過(guò) sql sever2005 的企業(yè)管理器查看這些存儲(chǔ) 過(guò)程的代碼。 readerborrowednumber 存儲(chǔ)過(guò)程 該存儲(chǔ)過(guò)程負(fù)責(zé)客戶已經(jīng)租借的圖書書目。其目的是為了在客戶租借圖書之前判斷 此客戶是否達(dá)到借書書目的上限。 booknumber 存儲(chǔ)過(guò)程 此存儲(chǔ)過(guò)程的功能是根據(jù)輸入的圖書編號(hào)

31、得到該圖書現(xiàn)在的存儲(chǔ)數(shù)量。 borrowreader 存儲(chǔ)過(guò)程 當(dāng)客戶租借某種圖書后,該存儲(chǔ)過(guò)程向客戶表的客戶目前所借圖書一項(xiàng)添加 1。 returnbook 存儲(chǔ)過(guò)程 當(dāng)客戶歸還所借的圖書時(shí),該存儲(chǔ)過(guò)程在圖書表中相應(yīng)的數(shù)據(jù)庫(kù)現(xiàn)存量中減去 1。 returnreader 存儲(chǔ)過(guò)程 當(dāng)客戶歸還所借圖書是,該存儲(chǔ)過(guò)程在客戶表中把客戶所借圖書數(shù)量減 1。 returnbook 存儲(chǔ)過(guò)程 當(dāng)客戶歸還所借的圖書時(shí),該存儲(chǔ)過(guò)程在圖書表中相應(yīng)的圖書現(xiàn)存量中增加 1。 4 4 連接數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù) 圖書出租管理系統(tǒng)使用 vc#+sql server 來(lái)進(jìn)行開發(fā)。為了使系統(tǒng)正常工作,需要建 立與數(shù)據(jù)庫(kù)系統(tǒng)的連接

32、來(lái)讀取和寫入數(shù)據(jù)。 一般來(lái)講,可以有兩種方式連接數(shù)據(jù)庫(kù)。一種是在窗體中直接添加 sqlconnection 并通過(guò)直接設(shè)置其 connectionstring 屬性來(lái)連接數(shù)據(jù)庫(kù);另一種創(chuàng)建一個(gè)連接類 login,其代碼如程序清單所示。 public class login public static string connection get returndata source=(local);initial catalog=bookmanagement; integrated security=sspi 該代碼將返回?cái)?shù)據(jù)庫(kù)連接命令,然后可在程序中利用此連接命令生成數(shù)據(jù)庫(kù)連接。 本章應(yīng)用的是第

33、一種方法,因?yàn)楸容^直觀、易操作。而第二種方法更加底層,所以可以 更加詳細(xì)地控制數(shù)據(jù)庫(kù)連接。 ( (二二) ) 主控制模塊主控制模塊設(shè)計(jì)設(shè)計(jì) 1 1 主控制模塊功能說(shuō)明主控制模塊功能說(shuō)明 系統(tǒng)的主控制界面是用戶進(jìn)入到各個(gè)功能界面的總控制界面。當(dāng)系統(tǒng)管理員登錄到 主界面時(shí)可以進(jìn)行任何的操作,而普通的用戶會(huì)發(fā)現(xiàn)其中的“用戶信息”一項(xiàng)為不可用。 2 2 主控制模塊設(shè)計(jì)圖主控制模塊設(shè)計(jì)圖 圖 4.2 系統(tǒng)主界面設(shè)計(jì) ( (三三) ) 出版社信息模塊設(shè)計(jì)出版社信息模塊設(shè)計(jì) 1 1 出版社信息模塊塊功能說(shuō)明出版社信息模塊塊功能說(shuō)明 系統(tǒng)的出版社信息界面可以實(shí)現(xiàn)出版社信息的增、刪、改、差。 2 2 出版社信息

34、模塊功能圖出版社信息模塊功能圖 圖 4.3 出版社信息模塊功能圖 3 3 出版社信息模塊設(shè)計(jì)圖出版社信息模塊設(shè)計(jì)圖 圖 4.4 出版社信息模塊設(shè)計(jì)圖 ( (四四) ) 客戶租還書管理模塊客戶租還書管理模塊設(shè)計(jì)設(shè)計(jì) 1 1 客戶租還書模塊功能說(shuō)明客戶租還書模塊功能說(shuō)明 租書功能是本系統(tǒng)的核心功能,客戶租還書管理界面也是系統(tǒng)中最為常用的界面。 界面中用戶可以先查詢客戶的租借記錄,并對(duì)客戶租還書進(jìn)行操作。為了提示目前的操 作和結(jié)果,界面左上角設(shè)一信息提示的文本框。 2 2 客戶租還書模塊功能圖客戶租還書模塊功能圖 出版社信息管理 刪 除 出 版 社 信 息 更 改 出 版 社 信 息 增 加 出 版

35、 社 信 息 查 看 出 版 社 信 息 租還書管理 租 借 記 錄 歸還圖書 租借圖書 圖 4.5 客戶租還書模塊功能圖 3 3 客戶租還書模塊設(shè)計(jì)圖客戶租還書模塊設(shè)計(jì)圖 圖 4.6 客戶租還書模塊設(shè)計(jì)圖 五五 測(cè)試分析報(bào)告測(cè)試分析報(bào)告 ( (一一) ) 測(cè)試用例測(cè)試用例 1.出版社信息模塊測(cè)試用例 字段名稱描 述 測(cè)試項(xiàng)出版社信息模塊的功能測(cè)試 輸入標(biāo)準(zhǔn) 1.打開出版社信息模塊,點(diǎn)擊“添加” ,輸入出版社信息,點(diǎn)擊“確定” 。 2.點(diǎn)擊“修改” ,輸入新出版社信息,點(diǎn)擊“確定” 。 3.選擇一組出版社信息,點(diǎn)擊“刪除” ,點(diǎn)擊“確定” 。 輸出標(biāo)準(zhǔn) 1.增加一組出版社信息欄,出版社信息寫入

36、數(shù)據(jù)庫(kù)。 2.可以修改出版社信息,新的出版社信息寫入數(shù)據(jù)庫(kù)。 3.一組出版社信息從數(shù)據(jù)庫(kù)中刪除。 表 5.1 出版社信息模塊測(cè)試用例 2.租還書模塊測(cè)試用例 字段名稱描 述 測(cè)試項(xiàng)綜合查詢模塊的功能測(cè)試 輸入標(biāo)準(zhǔn) 1.打開綜合查詢模塊,選擇“數(shù)據(jù)表” 、 “查詢項(xiàng)” 、 “查詢條件”選項(xiàng), 輸入指定值,點(diǎn)擊“查詢” 。 2.點(diǎn)擊“重置” 。 輸出標(biāo)準(zhǔn) 1.系統(tǒng)顯示出指定查詢條件的信息 2.可重新選擇“數(shù)據(jù)表” 、 “查詢項(xiàng)” 、 “查詢條件”選項(xiàng),輸入指定值。 表 5.2 租還書模塊測(cè)試用例 ( (二二) ) 測(cè)試結(jié)果測(cè)試結(jié)果 1.出版社信模塊測(cè)試結(jié)果 測(cè)試結(jié)果正常操作無(wú)任何異常處理出現(xiàn) 與預(yù)

37、期的偏差無(wú) 說(shuō)明的問(wèn)題出版社信模塊通過(guò)了功能測(cè)試 表 5.3 出版社信模塊測(cè)試結(jié)果 2.租還書模塊測(cè)試結(jié)果 測(cè)試結(jié)果正常操作無(wú)任何異常處理出現(xiàn) 與預(yù)期的偏差無(wú) 說(shuō)明的問(wèn)題租還書模塊通過(guò)了功能測(cè)試 表 5.4 租還書模塊測(cè)試結(jié)果 六六 結(jié)論結(jié)論 經(jīng)過(guò)幾個(gè)月的設(shè)計(jì)和開發(fā),學(xué)校圖書管理系統(tǒng)基本開發(fā)完畢。其功能基本符合用戶 需求。通過(guò)這次畢業(yè)設(shè)計(jì)真切地體會(huì)到畢業(yè)設(shè)計(jì)的目的并不止于自己?jiǎn)渭內(nèi)蝿?wù)的完成, 而在于學(xué)習(xí)新的知識(shí)并掌握具體的方法,如何具體使用和具體應(yīng)用你所學(xué)所用的語(yǔ)言。 從而獲得一種本領(lǐng):就是融會(huì)貫通各種語(yǔ)言。回首整個(gè)開發(fā)設(shè)計(jì)過(guò)程,我學(xué)到了很多書 本上學(xué)不到的東西。比如以前開發(fā)軟件的時(shí)候,一般做

38、的就是編碼工作,實(shí)現(xiàn)比較簡(jiǎn)單 的功能。但是這次畢業(yè)設(shè)計(jì),我要負(fù)責(zé)圖書管理系統(tǒng)的整個(gè)開發(fā)過(guò)程,包括系統(tǒng)可行性 分析、系統(tǒng)需求分析、系統(tǒng)概要設(shè)計(jì)、系統(tǒng)詳細(xì)設(shè)計(jì)等方面的工作。在每個(gè)設(shè)計(jì)階段我 都能學(xué)到一些新知識(shí),對(duì)我的動(dòng)手能力提高很大。在整個(gè)畢業(yè)設(shè)計(jì)過(guò)程中,我基本上完 成了圖書管理系統(tǒng)各個(gè)模塊的功能,達(dá)到了畢業(yè)設(shè)計(jì)的要求。 在以后的工作中,還會(huì)遇到很多類似的情況,此次畢業(yè)設(shè)計(jì)為我以后的工作積累了 很多寶貴的經(jīng)驗(yàn)。這幾個(gè)月中,從接到設(shè)計(jì)課題到具體設(shè)計(jì)再到完成系統(tǒng)開發(fā),是一個(gè) 不斷地遇到問(wèn)題與解決問(wèn)題的過(guò)程。其中包括:分析各種需求、完善各種功能、增加必 要環(huán)節(jié)、對(duì)各部分及整體進(jìn)行檢測(cè)與維護(hù)。當(dāng)然仍存在許

39、多問(wèn)題不能解決地盡善盡美, 還需不斷地繼續(xù)與探索。在結(jié)束設(shè)計(jì)的同時(shí)也感到了勞動(dòng)的艱辛與勞動(dòng)成果的來(lái)之不易, 明白了畢業(yè)設(shè)計(jì)是給自己提供了一個(gè)鍛煉、升華、提高、完善的機(jī)會(huì)。 致謝致謝 這次軟件工程課程設(shè)計(jì),我主要采用 studio 作為前臺(tái)開發(fā)工具,microsoft sql severe2005 作為后臺(tái)數(shù)據(jù)庫(kù),結(jié)合軟件工程設(shè)計(jì)和數(shù)據(jù)庫(kù)編程的有關(guān)知識(shí),開發(fā)了這個(gè) 圖書管理系統(tǒng)。 通過(guò)這次軟件工程課程設(shè)計(jì),我對(duì)于軟件工程設(shè)計(jì)的相關(guān)步驟和流程有了更深刻的 理解,熟悉并掌握了 visual c#編程語(yǔ)言和 microsoft sql severe2005 的數(shù)據(jù)庫(kù)使用, 另一方面,也對(duì) sql 語(yǔ)言

40、作為嵌入式語(yǔ)言的功能有了更深刻的體會(huì)。同時(shí),我也發(fā)現(xiàn)自 己對(duì)于軟件工程設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)的知識(shí)掌握的還不夠,設(shè)計(jì)和編程能力還有待于進(jìn)一 步提高。這次課程設(shè)計(jì)給了我一個(gè)鍛煉自己,強(qiáng)化專業(yè)知識(shí)的機(jī)會(huì),通過(guò)這次課程設(shè)計(jì), 我也得以一窺軟件工程設(shè)計(jì)的廣袤天地,我相信,只要認(rèn)真學(xué)習(xí),多借鑒別人的經(jīng)驗(yàn), 多思考,多實(shí)踐,就一定能夠成為一個(gè)合格的軟件設(shè)計(jì)人員,能夠翱翔在軟件開發(fā)的天 地。同時(shí),在這里感謝我的指導(dǎo)老師的悉心指導(dǎo)。 參考文獻(xiàn)參考文獻(xiàn) 1白梅關(guān)于網(wǎng)絡(luò)教育中資源建設(shè)的思考j電化教育研究,2001,(12):48-51 2謝幼如,李克東. 網(wǎng)絡(luò)教學(xué)的設(shè)計(jì)與評(píng)價(jià)研究報(bào)告r. http:/ 3盧瀟軟件工程m

41、北京:清華大學(xué)出版社,2004:229-243. 4(美)william stalling 著,魏迎梅譯操作系統(tǒng)內(nèi)核與設(shè)計(jì)原理m, 2001:56-110. 5王國(guó)榮,朱琳杰. asp private string usersort; 主控制窗體 mainform 的構(gòu)造函數(shù)如下 public mainform(string username,string usersort) / / windows 窗體設(shè)計(jì)器支持所必需的 / initializecomponent(); this.username=username; usersort=usersort; / / todo: 在initial

42、izecomponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼 / 其中,initializecomponent()函數(shù)是系統(tǒng)根據(jù)對(duì)控件的所有添加、設(shè)置工作而自動(dòng) 產(chǎn)生的幕后代碼。通過(guò)構(gòu)造函數(shù)把用戶名和用戶類型兩個(gè)參數(shù)傳遞給 mainform 類中的變 量 username 和 usersort。 為了實(shí)現(xiàn)把剛剛在登錄系統(tǒng)注冊(cè)過(guò)的用戶名顯示在主控制窗體,并根據(jù)用戶類型來(lái) 設(shè)置“用戶信息”按鈕的可用性,并添加程序清單所示的代碼。 private void mainform_load(object sender, system.eventargs e) this.text=圖書館管理系統(tǒng)+username;

43、 if(this.usersort=system) this.btnuser.enabled=true; else this.btnuser.enabled=false; 上述代碼通過(guò)把 username 賦值給窗體的 text 屬性來(lái)達(dá)到在窗體標(biāo)題中顯示用戶名 的效果,并根據(jù)用戶類型來(lái)設(shè)置 btnuser 按鈕的 enable 屬性來(lái)達(dá)到控制用戶權(quán)限的目的。 主控制界面實(shí)現(xiàn)的最主要的功能是調(diào)用各個(gè)功能模塊的界面。例如,調(diào)用圖書信息 維護(hù)界面,就是通過(guò)按鈕 btnbook 添加一下所示的代碼而實(shí)現(xiàn)的。 private void btnbook_click(object sender, syst

44、em.eventargs e) form bookform=new book(); bookform.showdialog(); 在上端代碼中通過(guò)創(chuàng)建一個(gè)圖書信息維護(hù)窗體的實(shí)例 bookform,并通過(guò) showdialog 的方 法來(lái)顯示此實(shí)例。需要指出的是,在一個(gè)窗體中顯示另外一個(gè)窗體有兩個(gè)方法 show()和 showdialog()。其中 show()方法調(diào)用稱為非模式對(duì)戶框,焦點(diǎn)可以不再新顯示的窗體上, 而 showdialog()方法顯示的窗體稱為模式對(duì)話框,焦點(diǎn)必須停留在新顯示的窗體上。此 系統(tǒng)為了每次用戶只能對(duì)一個(gè)界面進(jìn)行操作,所以采用 showdialog()來(lái)顯示窗體。 數(shù)

45、據(jù)維護(hù)功能就是包括對(duì)數(shù)據(jù)庫(kù)中某個(gè)數(shù)據(jù)表的增加、刪除、修改和查詢功能。 在開始編寫代碼之前,向 book 窗體中添加 sqlconnection1 數(shù)據(jù)庫(kù)連接組件,并設(shè)置 connectionstring 屬性來(lái)連接數(shù)據(jù)庫(kù) bookmanagement。添加數(shù)據(jù)適配器組件 sqldataadapter1,并使用數(shù)據(jù)適配器配置向?qū)?duì)其進(jìn)行配置。首先,選擇剛創(chuàng)建的鏈接 并選擇 book 數(shù)據(jù)表的所有列,然后用數(shù)據(jù)適配器 sqldataadapter1 生成數(shù)據(jù)集 datasetbook 的實(shí)例 objdatasetbook,雙擊打開 datasetbook.xsd 文件可以看到設(shè)計(jì)完 畢的數(shù)據(jù)庫(kù)。

46、當(dāng) book 窗體加載的時(shí)候,執(zhí)行的是 book_load()方法,其程序參考如下程序 private void book_load(object sender, system.eventargs e) this.loaddataset(); this.datasetpostionchange(); this.buttonpositonchange(); this.textenablecontrol(false); this.buttonenablecontrol(false); 從上述代碼中可以看出,在 book 窗體加載時(shí)執(zhí)行了一系列的函數(shù)。下面就一一分析 這些函數(shù)的代碼及其功能。 首先系

47、統(tǒng)體通過(guò) loaddataset()函數(shù)把數(shù)據(jù)表 book 加載到數(shù)據(jù)集,并通過(guò)數(shù)據(jù)集綁 定控件在界面上進(jìn)行顯示,其代碼參見(jiàn)程序清單 private void loaddataset() datasetbook objdatasettemp=new datasetbook(); try this.filldataset(objdatasettemp); catch (system.exception e) / 在此處添加錯(cuò)誤處理代碼。 this.errorhandle(e); try this.objdatasetbook.clear(); this.objdatasetbook.merge(

48、objdatasettemp); catch(system.exception e) / 在此處添加錯(cuò)誤處理代碼。 this.errorhandle(e); loaddataset()函數(shù)先生成一個(gè)datasetbook的臨時(shí)數(shù)據(jù)集objdatasettemp,并通 過(guò)這個(gè)臨時(shí)數(shù)據(jù)集來(lái)保存filldataset()函數(shù)返回的記錄,這個(gè)函數(shù)稍后會(huì)予以介紹。 在這里使用臨時(shí)數(shù)據(jù)集是因?yàn)樘畛洮F(xiàn)有的數(shù)據(jù)集要重新進(jìn)行數(shù)據(jù)綁定。上一段程序代碼 出現(xiàn)了try和catch塊,這兩個(gè)塊就是在c#中處理異常的程序塊。首先程序可能在try塊中 引發(fā)異常,然后在catch塊中截獲異常并加以處理,以避免系統(tǒng)出錯(cuò)而導(dǎo)致死

49、機(jī)。函數(shù) errorhandle()是錯(cuò)誤處理函數(shù),也將在稍后予以介紹。下面來(lái)分析filldataset() 函數(shù)的代碼和功能,請(qǐng)參見(jiàn)程序清單 private void filldataset(datasetbook dataset) dataset.enforceconstraints=false; try this.sqlconnection1.open(); this.sqldataadapter1.fill(dataset); catch(system.exception e) this.errorhandle(e); finally dataset.enforceconstraint

50、s=true; this.sqlconnection1.close(); 這個(gè)函數(shù)功能是打開數(shù)據(jù)連接,同時(shí)通過(guò)數(shù)據(jù)適配器來(lái)填充數(shù)據(jù)集。在代碼中要注 意異常的處理。在上述的兩段代碼中都有一個(gè)errorhandle()函數(shù),下面就來(lái)分析這個(gè) 函數(shù)的代碼,參見(jiàn)程序清單 private void filldataset(datasetbook dataset) dataset.enforceconstraints=false; try this.sqlconnection1.open(); this.sqldataadapter1.fill(dataset); catch(system.excepti

51、on e) this.errorhandle(e); finally dataset.enforceconstraints=true; this.sqlconnection1.close(); 這個(gè)函數(shù)功能是打開數(shù)據(jù)連接,同時(shí)通過(guò)數(shù)據(jù)適配器來(lái)填充數(shù)據(jù)集。在代碼中要注 意異常的處理。在上述的兩段代碼中都有一個(gè)errorhandle()函數(shù),下面就來(lái)分析這個(gè) 函數(shù)的代碼,參見(jiàn)程序清單 public void errorhandle(system.exception e) messagebox.show(e.tostring(); 從程序清單中可見(jiàn),這個(gè)函數(shù)通過(guò)傳入的異常參數(shù),利用messagebo

52、x來(lái)顯示異常信 息。 book窗口加載時(shí)處理的第二個(gè)函數(shù)是datapositonchange()函數(shù)。這個(gè)函數(shù)的作用 是通過(guò)label控件lbldataposition來(lái)顯示當(dāng)前記錄在總記錄中的位置,其代碼實(shí)現(xiàn)請(qǐng)參 加程序清單 private void datasetpostionchange() this.lbldatasetposition.text=(this.bindingcontextthis.objdatasetboo k,book.position+1)+的+ (this.bindingcontextthis.objdatasetbook,book.count); 需要理解的是,

53、bindingcontextthis.objdatasetbook,”book”.position是次記 錄在總記錄位置,position從0開始,bingdingcontextthis.objdatasetbook,”book” .count是記錄的總條數(shù)。 book窗口加載時(shí)處理的第三個(gè)函數(shù)是buttonpositionchange()函數(shù)。這個(gè)函數(shù)的 作用是在當(dāng)前數(shù)據(jù)記錄在總記錄中的位置不同時(shí),驅(qū)動(dòng)數(shù)據(jù)記錄跳轉(zhuǎn)的4個(gè)按鈕變?yōu)椴煌?的狀態(tài)。例如,當(dāng)記錄是記錄集中的第一條記錄時(shí),跳轉(zhuǎn)到上一條記錄和跳轉(zhuǎn)到異地調(diào) 記錄的按鈕則應(yīng)當(dāng)無(wú)效,反之亦然。代碼實(shí)現(xiàn)請(qǐng)參見(jiàn)程序清單。 private void

54、 buttonpositonchange() this.btnprevious.enabled=true; this.btnnext.enabled=true; this.btnfirst.enabled=true; this.btnlast.enabled=true; if(this.bindingcontextthis.objdatasetbook,book.position=0) this.btnfirst.enabled=false; this.btnprevious.enabled=false; if(this.bindingcontextthis.objdatasetbook,bo

55、ok.position=this.bindingc ontextthis.objdatasetbook,book.count-1) this.btnnext.enabled=false; this.btnlast.enabled=false; book窗口加載時(shí)處理的第4個(gè)函數(shù)是textenablecontrol()函數(shù)。這個(gè)函數(shù)的作用 是在各個(gè)textbox中顯示記錄中的信息時(shí),不讓用戶有修改的權(quán)限,使各個(gè)textbox的 enable屬性處于false狀態(tài),而當(dāng)用戶單擊“修改”按鈕要對(duì)當(dāng)前的數(shù)據(jù)記錄進(jìn)行修改時(shí), 而是各個(gè)textbox的enable屬性處于true狀態(tài)。 book窗口加載時(shí)

56、處理的第5個(gè)函數(shù)是buttonenablecontrol()函數(shù)的作用是在“添 加”、“刪除”、“修改”按鈕沒(méi)有被激活時(shí),使“取消”按鈕和“確定”按鈕都處于 不可用狀態(tài),而當(dāng)“添加”、“刪除”、“修改”按鈕激活后,“取消”按鈕和“確定” 按鈕就會(huì)處于可用狀態(tài)。代碼實(shí)現(xiàn)參見(jiàn)程序清單。 private void buttonenablecontrol(bool valid) if(valid) this.btncancel.enabled=true; this.btnapply.enabled=true; else this.btncancel.enabled=false; this.btnapp

57、ly.enabled=false; 在數(shù)據(jù)維護(hù)窗口中,數(shù)據(jù)記錄的跳轉(zhuǎn)依靠,btnfirst,btnprevious,btnnext和 btnlast這4個(gè)按鈕。隨著數(shù)據(jù)的跳轉(zhuǎn),會(huì)涉及到buttonpositnchange()和dataset postionchange()函數(shù)。4個(gè)按鈕的處理方法請(qǐng)參見(jiàn)程序清單。 private void btnfirst_click(object sender, system.eventargs e) this.bindingcontextthis.objdatasetbook,book.position=0; this.buttonpositonchange

58、(); this.datasetpostionchange(); private void btnprevious_click(object sender, system.eventargs e) this.bindingcontextthis.objdatasetbook,book.position-=1; this.buttonpositonchange(); this.datasetpostionchange(); private void btnnext_click(object sender, system.eventargs e) this.bindingcontextthis.o

59、bjdatasetbook,book.position+=1; this.buttonpositonchange(); this.datasetpostionchange(); private void btnlast_click(object sender, system.eventargs e) this.bindingcontextthis.objdatasetbook,book.position=this.b indingcontextthis.objdatasetbook,book.count-1; this.buttonpositonchange(); this.datasetpo

60、stionchange(); 上面介紹的代碼段都還屬于數(shù)據(jù)顯示功能,下面介紹記錄編輯功能的代碼,包括對(duì) 當(dāng)前記錄的增加、修改和刪除。當(dāng)單擊“添加”按鈕時(shí),利用addnew()方法在數(shù)據(jù)集 中添加一個(gè)新的記錄,其代碼請(qǐng)參見(jiàn)程序清單。 private void btnadd_click(object sender, system.eventargs e) try this.bindingcontextthis.objdatasetbook,book.addnew(); catch(system.exception e) this.errorhandle(e); this.datasetpostio

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論