圖書(shū)借閱管理系統(tǒng)(數(shù)據(jù)庫(kù)大作業(yè))_第1頁(yè)
圖書(shū)借閱管理系統(tǒng)(數(shù)據(jù)庫(kù)大作業(yè))_第2頁(yè)
圖書(shū)借閱管理系統(tǒng)(數(shù)據(jù)庫(kù)大作業(yè))_第3頁(yè)
圖書(shū)借閱管理系統(tǒng)(數(shù)據(jù)庫(kù)大作業(yè))_第4頁(yè)
圖書(shū)借閱管理系統(tǒng)(數(shù)據(jù)庫(kù)大作業(yè))_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告學(xué) 院: 理學(xué)院 班 級(jí): 數(shù)學(xué)系 課 題:基于Visual C#.NET的圖書(shū)館管理系統(tǒng) 指導(dǎo)教師: 王楊 組員:學(xué)號(hào) 姓名 職責(zé) 翟曉凱 DBA 、系統(tǒng)設(shè)計(jì)員、系統(tǒng)開(kāi)發(fā)員 閆好博 系統(tǒng)分析員、系統(tǒng)調(diào)查員 劉 盾 系統(tǒng)分析員、系統(tǒng)測(cè)試員 李 陽(yáng) 項(xiàng)目管理員、系統(tǒng)調(diào)查員 王俊棋 系統(tǒng)測(cè)試員、系統(tǒng)調(diào)查員 黎校剛 項(xiàng)目管理員、系統(tǒng)設(shè)計(jì)員 靳 萌 系統(tǒng)分析員、系統(tǒng)設(shè)計(jì)員高校圖書(shū)館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)1 圖書(shū)館管理系統(tǒng)需求分析1.1引言 圖書(shū)館管理系統(tǒng)一般主要包括對(duì)圖書(shū)作者和出版社等在內(nèi)的基礎(chǔ)數(shù)據(jù)管理,圖書(shū)進(jìn)銷(xiāo)存管理,圖書(shū)借閱管理,圖書(shū)歸還管理,讀者管理,統(tǒng)計(jì)打印和系統(tǒng)管理等幾部分。

2、通過(guò)實(shí)際調(diào)查,本圖書(shū)館管理設(shè)計(jì)系統(tǒng)主要具備以下功能: 系統(tǒng)使用人員較多,通過(guò)“讀者管理”功能模塊實(shí)現(xiàn)1.“讀者類(lèi)型設(shè)置”,用于設(shè)置讀者的類(lèi)型及相關(guān)的信息,內(nèi)容包括類(lèi)型、圖書(shū)冊(cè)數(shù)、期刊冊(cè)數(shù)、續(xù)借次數(shù)、限制圖書(shū)、限制期刊等。 2.“讀者檔案管理”,用于設(shè)置讀者相關(guān)的信息,內(nèi)容包括編號(hào)、條形碼、姓名、性別、類(lèi)型、出生日期、有效證件、證件號(hào)碼、聯(lián)系方式、登記日期、有效期至、操作員、備注、圖書(shū)借閱次數(shù)、期刊借閱次數(shù)、是否掛失等。 系統(tǒng)應(yīng)提供對(duì)圖書(shū)相關(guān)信息的管理功能,通過(guò)“圖書(shū)管理”功能模板實(shí)現(xiàn): 1.“圖書(shū)類(lèi)型設(shè)置”,用于設(shè)置圖書(shū)的類(lèi)型及相關(guān)的信息,內(nèi)容包括類(lèi)型名稱(chēng),可借天數(shù)等。 2.“圖書(shū)檔案管理”,

3、用于設(shè)置圖書(shū)相關(guān)的信息,內(nèi)容包括編號(hào)、條形碼、書(shū)名、版次、類(lèi)型、作者、譯者、ISBN、出版社、圖書(shū)開(kāi)本、價(jià)格、頁(yè)碼、書(shū)架名稱(chēng)、現(xiàn)存量、庫(kù)存總量、入庫(kù)時(shí)間、操作員、簡(jiǎn)介、借出次數(shù)、是否注銷(xiāo)等。 管理圖書(shū)借出歸還等功能,通過(guò)“圖書(shū)流通管理”功能模塊實(shí)現(xiàn): 1.“圖書(shū)借閱”,用于登記讀者借閱圖書(shū)的記錄并減少圖書(shū)在庫(kù)的庫(kù)存,登記內(nèi)容包括借閱編號(hào)、圖書(shū)編號(hào)、讀者編號(hào)、押金、借閱時(shí)間、應(yīng)還時(shí)間、操作員等。 2.“圖書(shū)歸還”用于登記讀者歸還圖書(shū)的記錄并增加圖書(shū)在庫(kù)的庫(kù)存,登記內(nèi)容包括歸還編號(hào)、圖書(shū)編號(hào)、讀者編號(hào)、退還押金、歸還時(shí)間、操作員等。 3.“圖書(shū)續(xù)借”,用于登記讀者到期圖書(shū)的續(xù)借記錄。 4.“圖書(shū)罰

4、款”,用于對(duì)圖書(shū)超期、丟失等情況的罰款管理,內(nèi)容包括罰款編號(hào)、圖書(shū)編號(hào)、讀者編號(hào)、罰款日期、應(yīng)罰金額、實(shí)收金額、是否交款、備注等。1.2 目標(biāo)與任務(wù) 圖書(shū)館管理系統(tǒng)數(shù)據(jù)字典: (1)數(shù)據(jù)項(xiàng)與數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)項(xiàng)是不可再分的數(shù)據(jù)單位,數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系,對(duì)本系統(tǒng)的數(shù)據(jù)項(xiàng)與數(shù)據(jù)結(jié)構(gòu)的描述在系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)施階段能夠直接體現(xiàn)出來(lái),這里不在一一列出。(2)處理過(guò)程處理過(guò)程名說(shuō)明輸入輸出讀者類(lèi)別設(shè)置管理讀者類(lèi)別信息新增,修改,刪除讀者類(lèi)別讀者類(lèi)型讀者檔案管理管理讀者信息新增,修改,刪除讀者信息讀者信息圖書(shū)類(lèi)別設(shè)置管理圖書(shū)類(lèi)別信息新增,修改,刪除圖書(shū)類(lèi)別圖書(shū)類(lèi)型圖書(shū)檔案管理管理圖書(shū)信息新增,修改

5、,刪除圖書(shū)信息圖書(shū)信息圖書(shū)征訂管理管理征訂圖書(shū)信息新增,修改,刪除征訂信息圖書(shū)征訂圖書(shū)借閱管理借閱圖書(shū)讀者信息,圖書(shū)信息圖書(shū)借閱圖書(shū)歸還歸還圖書(shū)讀者信息,圖書(shū)信息圖書(shū)歸還圖書(shū)管理系統(tǒng)數(shù)據(jù)流圖:頂層數(shù)據(jù)流圖:管理員 圖書(shū)館管理系統(tǒng)感覺(jué) 管理員信息 讀者信息 圖書(shū)信息 第2層數(shù)據(jù)流圖:(圖書(shū)借閱,圖書(shū)歸還,管理員查詢(xún),管理員修改)圖書(shū)借閱圖書(shū)信息表借閱信息表 讀者信息表管理員 修改讀者信息 新讀者信息 查詢(xún) 修改圖書(shū)信息 新圖書(shū)信息罰款信息表圖書(shū)信息表圖書(shū)歸還讀者信息表第3層數(shù)據(jù)流圖圖書(shū)信息表:(圖書(shū)借閱) 續(xù)借單 更借書(shū)登記管理員 新有效檢驗(yàn) 無(wú)效借書(shū) 有效借書(shū)單 借閱信息表借閱信息表第3層數(shù)據(jù)

6、流圖:(圖書(shū)讀者信息表歸還) 逾期清單管理員 更新 有效檢驗(yàn)圖書(shū)信息表還書(shū)登記 收費(fèi)更新罰款信息表第3層數(shù)據(jù)流圖:(管理員查詢(xún)圖書(shū)信息,查詢(xún)讀者信息,查詢(xún)借閱信息,查詢(xún)罰款信息)讀者信息表借閱信息表管理員查詢(xún)檢驗(yàn) 無(wú)效信息 有效信息圖書(shū)信息表罰款信息表 查詢(xún)結(jié)果 第3層數(shù)據(jù)流圖:(管理員添加,刪除,修改讀者信息)添加讀者信息 更新管理員讀者信息表刪除讀者信息修改讀者信息 更新第3層數(shù)據(jù)流圖:(管理員添加,刪除,修改圖書(shū)信息)添加圖書(shū)信息 更新管理員圖書(shū)信息表修改圖書(shū)信息刪除圖書(shū)信息2 概念結(jié)構(gòu)設(shè)計(jì)2.1 引言 系統(tǒng)開(kāi)發(fā)的總體目標(biāo)是實(shí)現(xiàn)圖書(shū)館管理的系統(tǒng)化和自動(dòng)化,縮短借閱者的等待時(shí)間,減輕工作人

7、員的工作量,方便工作人員對(duì)它的操作,提高管理的質(zhì)量和水平,做到高效、智能化管理,從而達(dá)到提高圖書(shū)管理效率的目的。 主要任務(wù)是對(duì)讀者信息、管理員信息、圖書(shū)資料信息、借閱信息、歸還圖書(shū)信息、罰款信息的基本信息的操作及外理。 概念設(shè)計(jì)階段主要是將需求分析階段得到的用戶(hù)需求抽象為信息結(jié)構(gòu)(概念模型)的過(guò)程,它是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵。 2.2 目標(biāo)與任務(wù)(1)選擇中層數(shù)據(jù)流為切入點(diǎn),通常選擇實(shí)際系統(tǒng)中的子系統(tǒng);(2)設(shè)計(jì)分E-R圖,即各子模塊的E-R圖;(3)生成初步E-R圖,通過(guò)合并方法,做到各子系統(tǒng)實(shí)體、屬性、聯(lián)系統(tǒng)一;(4)生成全局E-R圖,通過(guò)消除沖突等方面。在本圖書(shū)管理系統(tǒng)中,從第3層數(shù)據(jù)流程

8、圖下手。分析各3層數(shù)據(jù)流圖和數(shù)據(jù)字典,知道各個(gè)系統(tǒng)功能?chē)@“讀者”、“管理員”和“圖書(shū)”的處理。根據(jù)實(shí)體與屬性間的兩條準(zhǔn)則:作為“屬性”,不能再具有需要描述的性質(zhì)?!皩傩浴辈荒芘c其他實(shí)體具有聯(lián)系。2.3 成果(1) 根據(jù)不同的對(duì)象,從第三層數(shù)據(jù)流圖入手,分別畫(huà)出各分E-R圖 (a)從圖書(shū)借閱和圖書(shū)歸還流圖抽象出如下E-R圖讀者 m m m 罰款借閱歸還 1管理員圖書(shū) n n (b)從管理員添加修改刪除讀者信息流圖抽象出E-R圖讀者管理員管理 1 m (c)從管理員添加修改刪除圖書(shū)信息流圖抽象出E-R圖維護(hù)圖書(shū)管理員 1 m (2) 合并各分E-R圖,消除屬性沖突,命名沖突,結(jié)構(gòu)沖突等三類(lèi)沖突,

9、生成初步E-R圖,再消除不必要冗余,得到基本E-R圖如下:讀者類(lèi)別 管理員罰款屬于 1 讀者 m m 1 維護(hù) m 1書(shū)架借閱 m n m屬于讀者歸還圖書(shū) 1 m n m(3) E-R圖的各實(shí)體屬性如下:讀者類(lèi)別:讀者類(lèi)型(類(lèi)型,圖書(shū)冊(cè)數(shù),期刊冊(cè)數(shù),續(xù)借次數(shù),限制期刊,限制圖書(shū))讀者:讀者(條形碼,編號(hào),姓名,性別,出生日期,有效證件,證件號(hào)碼,聯(lián)系方式,登記日期,有效期至,操作員,備注,圖書(shū)借閱次數(shù),期刊借閱次數(shù),是否掛失)管理員:管理員(編號(hào),名稱(chēng),密碼,圖書(shū)管理,期刊管理,讀者管理,圖書(shū)借還,期刊借還)圖書(shū):圖書(shū)(條形碼,編號(hào),書(shū)名,類(lèi)型,作者,譯者,ISBN,出版社,價(jià)格,頁(yè)碼,現(xiàn)存量

10、,庫(kù)存總量,入庫(kù)時(shí)間,簡(jiǎn)介,借出次數(shù),是否注銷(xiāo))書(shū)架:書(shū)架(編號(hào),書(shū)架名稱(chēng))3 邏輯結(jié)構(gòu)設(shè)計(jì)3.1 目標(biāo)與任務(wù) 概念結(jié)構(gòu)是獨(dú)立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。3.2 將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)體型轉(zhuǎn)換為關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。對(duì)于實(shí)體間的聯(lián)系則有以下不同的情況:(1)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合。(2) 一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以

11、與n端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。(3)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合(4)具有相同碼的關(guān)系模式可合并。 由于讀者類(lèi)別與讀者、書(shū)架與圖書(shū)的聯(lián)系方式是1:n(一對(duì)多),可以將其之間的聯(lián)系與n端實(shí)體讀者、圖書(shū)合并,管理員與圖書(shū)之間的維護(hù)聯(lián)系也是1:n(一對(duì)多),同樣也將其之間的聯(lián)系與n端實(shí)體

12、合并,而讀者與圖書(shū)之間的借閱和歸還聯(lián)系方式則是m:n(多對(duì)多),這樣要把它們之間的聯(lián)系轉(zhuǎn)化為獨(dú)立的關(guān)系模式,讀者與管理員之間的罰款聯(lián)系是m:1(多對(duì)一),將其聯(lián)系與n端實(shí)體合并,具體的基本E-R圖向關(guān)系模型的轉(zhuǎn)化如下: 讀者:讀者(條形碼,編號(hào),姓名,性別,類(lèi)型,出生日期,有效證件,證件號(hào)碼,聯(lián)系方式,登記日期,有效期至,操作員,備注,圖書(shū)借閱次數(shù),期刊借閱次數(shù),是否掛失) 圖書(shū):圖書(shū)(條形碼,編號(hào),書(shū)名,類(lèi)型,作者,譯者,ISBN,出版社,價(jià)格,頁(yè)碼,書(shū)架名稱(chēng),現(xiàn)存量,庫(kù)存總量,入庫(kù)時(shí)間,管理員,簡(jiǎn)介,借出次數(shù),是否注銷(xiāo)) 管理員:管理員(編號(hào),名稱(chēng),密碼,圖書(shū)管理,期刊管理,讀者管理,圖書(shū)

13、借還,期刊借還) 讀者類(lèi)別:讀者類(lèi)別:讀者類(lèi)型(類(lèi)型,圖書(shū)冊(cè)數(shù),期刊冊(cè)數(shù),續(xù)借次數(shù),限制期刊,限制圖書(shū)) 借閱信息:圖書(shū)借閱(借閱編號(hào),讀者編號(hào),圖書(shū)編號(hào),借閱時(shí)間,應(yīng)還時(shí)間,續(xù)借次數(shù),操作員,狀態(tài))歸還信息:圖書(shū)歸還(歸還編號(hào),讀者編號(hào),圖書(shū)編號(hào),歸還時(shí)間,退還押金,操作員)罰款信息:圖書(shū)罰款(罰款編號(hào),讀者編號(hào),圖書(shū)編號(hào),罰款日期,應(yīng)罰金額,實(shí)收金額)3.3 數(shù)據(jù)模型的優(yōu)化分析知上述關(guān)系模式不存在非主屬性對(duì)主屬性的部分函數(shù)依賴(lài),也不存在傳遞函數(shù)依賴(lài),已經(jīng)達(dá)到了3NF,數(shù)據(jù)冗余情況也基本消除,已經(jīng)足以滿(mǎn)足用戶(hù)需要,無(wú)須繼續(xù)優(yōu)化。4 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱(chēng)為數(shù)

14、據(jù)庫(kù)的物理結(jié)構(gòu),它依賴(lài)于選定的數(shù)據(jù)庫(kù)管理系統(tǒng)。為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用要求的物理結(jié)構(gòu)的過(guò)程就是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。本圖書(shū)館管理系統(tǒng)在綜合考慮廣大用戶(hù)的要求以及實(shí)際應(yīng)用后,在關(guān)系數(shù)據(jù)庫(kù)中為某些關(guān)系建立索引存取方法,在實(shí)際運(yùn)作中做到了快速存取數(shù)據(jù)庫(kù)中的數(shù)據(jù),滿(mǎn)足用戶(hù)的多種應(yīng)用要求,具體建立索引的相關(guān)信息將在數(shù)據(jù)庫(kù)實(shí)施中描述。5 圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)的實(shí)施 根據(jù)以上需求分析,一個(gè)基本的圖書(shū)館管理系統(tǒng)數(shù)據(jù)庫(kù)中大致包括20多張表,分別存放相應(yīng)子功能的數(shù)據(jù)信息,其中“讀者信息”和“圖書(shū)信息”表是關(guān)鍵的表,用于存放圖書(shū)館讀者的信息和文獻(xiàn)的信息,圖書(shū)館管理系統(tǒng)實(shí)際上就是對(duì)讀者和文獻(xiàn)的管理。其他涉

15、及讀者信息和文獻(xiàn)信息的表都只記錄相應(yīng)的編號(hào),并根據(jù)作為外鍵的“編號(hào)”字段相對(duì)應(yīng)。因此“讀者信息”、“圖書(shū)信息”和其他表間的關(guān)系是1:N的關(guān)系。5.1 構(gòu)建開(kāi)發(fā)環(huán)境由于軟件版本及電腦配置,各種兼容性問(wèn)題,最終確定使用相對(duì)可以完整安裝運(yùn)行的Visual Studio 2005與SQL Server 2008軟件。圖書(shū)館管理系統(tǒng)開(kāi)發(fā)環(huán)境如下:開(kāi)發(fā)環(huán)境:Visual Studio 2005開(kāi)發(fā)語(yǔ)言:Visual C#后臺(tái)數(shù)據(jù)庫(kù):SQL Server 2008開(kāi)發(fā)平臺(tái):Windows XP分辨率:最佳效果1024*7685.2創(chuàng)建數(shù)據(jù)庫(kù) 打開(kāi)SQL Server企業(yè)管理器,新建一個(gè)數(shù)據(jù)庫(kù),名稱(chēng)為libb

16、ook。注意到數(shù)據(jù)文件的位置,以便分離數(shù)據(jù)庫(kù)后將所需要的MDF文件及其日志文件存儲(chǔ)在自己的盤(pán)里,方便下次使用時(shí)附加所需要的數(shù)據(jù)庫(kù)。5.3 創(chuàng)建表(各個(gè)表的主鍵設(shè)置以及需求分析階段的數(shù)據(jù)項(xiàng)與數(shù)據(jù)結(jié)構(gòu)在截圖中體現(xiàn)) 在新建的數(shù)據(jù)庫(kù)libook下建立以下的表(表名即為數(shù)據(jù)結(jié)構(gòu)名,列的相關(guān)設(shè)置即體現(xiàn)數(shù)據(jù)項(xiàng)的描述):1.出版社(保存圖書(shū)對(duì)應(yīng)出版社的基礎(chǔ)信息) 2.讀者類(lèi)型(保存讀者類(lèi)型及相關(guān)信息)3.期刊丟失(保存期刊丟失記錄)4.供應(yīng)商(保存圖書(shū)供應(yīng)商信息)5.讀者信息(保存讀者的各種信息)6.管理員(保存用戶(hù)信息)7.期刊罰款(保存期刊罰款記錄)8.期刊歸還(保存期刊歸還記錄)9.期刊借閱(保存期刊

17、借閱記錄)10.期刊類(lèi)型(保存期刊類(lèi)型及相關(guān)信息)11.期刊注銷(xiāo)(保存期刊注銷(xiāo)記錄)12.書(shū)架(保存圖書(shū)館內(nèi)數(shù)據(jù)的基本信息)13.期刊信息(保存期刊信息)14.期刊征訂(保存期刊征訂入庫(kù)記錄)15.圖書(shū)丟失(保存圖書(shū)丟失記錄)16.圖書(shū)罰款(保存圖書(shū)罰款記錄) 17.圖書(shū)館(保存圖書(shū)館基礎(chǔ)信息)18.圖書(shū)歸還(保存圖書(shū)歸還記錄)19.圖書(shū)借閱(保存圖書(shū)借閱記錄)20.圖書(shū)類(lèi)型(保存圖書(shū)類(lèi)型及相關(guān)信息)21.圖書(shū)信息(保存圖書(shū)信息)22.圖書(shū)征訂(保存圖書(shū)征訂入庫(kù)記錄)23.圖書(shū)注銷(xiāo)(保存圖書(shū)注銷(xiāo)記錄)24.文獻(xiàn)尺寸(保存文獻(xiàn)尺寸信息)25.文獻(xiàn)等級(jí)(保存文獻(xiàn)等級(jí)信息)26.文獻(xiàn)印刷(保存文獻(xiàn)印

18、刷信息)27.文獻(xiàn)語(yǔ)系(保存文獻(xiàn)印刷信息)28.文獻(xiàn)附件(保存文獻(xiàn)附件信息)5.4 建立表與表的關(guān)系,外鍵約束進(jìn)入設(shè)計(jì)表界面,右擊,建立關(guān)系,表與表關(guān)系建立如下:關(guān)系名主鍵表外鍵表主鍵表列外鍵表列圖書(shū)丟失_圖書(shū)編號(hào)_fk圖書(shū)信息圖書(shū)丟失編號(hào)圖書(shū)編號(hào)圖書(shū)歸還_圖書(shū)編號(hào)_fk圖書(shū)信息圖書(shū)歸還編號(hào)圖書(shū)編號(hào)圖書(shū)借閱_圖書(shū)編號(hào)_fk圖書(shū)信息圖書(shū)借閱編號(hào)圖書(shū)編號(hào)圖書(shū)歸還_圖書(shū)編號(hào)_fk圖書(shū)信息圖書(shū)歸還編號(hào)圖書(shū)編號(hào)FK_圖書(shū)征訂_圖書(shū)信息圖書(shū)信息圖書(shū)征訂編號(hào)圖書(shū)編號(hào)圖書(shū)注銷(xiāo)_圖書(shū)編號(hào)_fk圖書(shū)信息圖書(shū)注銷(xiāo)編號(hào)圖書(shū)編號(hào)FK_圖書(shū)罰款_讀者信息讀者信息圖書(shū)罰款編號(hào)讀者編號(hào)期刊丟失_期刊編號(hào)_fk期刊信息期刊丟失

19、編號(hào)期刊編號(hào)FK_期刊罰款_讀者信息讀者信息期刊罰款編號(hào)讀者編號(hào)FK_讀者信息_讀者類(lèi)型讀者類(lèi)型讀者信息類(lèi)型類(lèi)型5.5 建立索引(物理設(shè)計(jì)階段的存取方法)進(jìn)入設(shè)計(jì)表界面,右擊,建立各個(gè)表的索引,各個(gè)表索引的建立如下:表名索引名列名順序書(shū)架PK_書(shū)架編號(hào)升序出版社PK_出版社出版社編號(hào)升序圖書(shū)丟失PK_圖書(shū)丟失丟失編號(hào)升序圖書(shū)信息PK_圖書(shū)信息編號(hào)升序圖書(shū)借閱PK_圖書(shū)借閱借閱編號(hào)升序圖書(shū)歸還PK_圖書(shū)歸還歸還編號(hào)升序圖書(shū)征訂PK_圖書(shū)征訂征訂編號(hào)升序圖書(shū)注銷(xiāo)PK_圖書(shū)注銷(xiāo)注銷(xiāo)編號(hào)升序圖書(shū)類(lèi)型PK_圖書(shū)類(lèi)型類(lèi)型編號(hào)升序圖書(shū)罰款PK_圖書(shū)罰款罰款編號(hào)升序期刊丟失PK_期刊丟失丟失編號(hào)升序期刊信息P

20、K_期刊信息編號(hào)升序期刊借閱PK_期刊借閱借閱編號(hào)升序期刊歸還PK_期刊歸還歸還編號(hào)升序期刊征訂PK_期刊征訂征訂編號(hào)升序期刊注銷(xiāo)PK_期刊注銷(xiāo)注銷(xiāo)編號(hào)升序期刊類(lèi)型PK_期刊類(lèi)型類(lèi)型編號(hào)升序期刊罰款PK_期刊罰款罰款編號(hào)升序用戶(hù)清單PK_用戶(hù)清單_0E391C95用戶(hù)編號(hào)升序讀者信息PK_讀者信息編號(hào)升序讀者類(lèi)型PK_讀者類(lèi)型類(lèi)型升序5.6 創(chuàng)建存儲(chǔ)過(guò)程 在數(shù)據(jù)庫(kù)libbook存儲(chǔ)過(guò)程目錄下新建“sf_圖書(shū)征訂”,“sf_圖書(shū)借閱”和“sf_圖書(shū)歸還”3個(gè)存儲(chǔ)過(guò)程,從而實(shí)現(xiàn)征訂圖書(shū)入庫(kù),借閱圖書(shū)出庫(kù)和歸還圖書(shū)入庫(kù),產(chǎn)生罰款信息等功能,建立這3個(gè)存儲(chǔ)過(guò)程的文本欄內(nèi)填寫(xiě)注釋如下:create pr

21、oc sf_圖書(shū)借閱asbegin tran-借書(shū)出庫(kù),減少圖書(shū)庫(kù)存量update 圖書(shū)信息 set 現(xiàn)存量 = isnull(現(xiàn)存量,0) - 1from 圖書(shū)信息 as a, 圖書(shū)借閱 as bwhere a.編號(hào)=b.圖書(shū)編號(hào) and b.狀態(tài)=新借-設(shè)置借閱狀態(tài)update 圖書(shū)借閱 set 續(xù)借次數(shù)=0,狀態(tài)=未還where 狀態(tài)=新借commitGOcreate proc sf_圖書(shū)歸還 借閱編號(hào) int, 罰款金額 moneyasbegin tran-借書(shū)出庫(kù),減少圖書(shū)庫(kù)存量update 圖書(shū)信息 set 現(xiàn)存量 = isnull(現(xiàn)存量,0) + 1from 圖書(shū)信息 as a

22、, 圖書(shū)借閱 as bwhere a.編號(hào)=b.圖書(shū)編號(hào) and b.借閱編號(hào)=借閱編號(hào)- 如果罰金不是0, 在 圖書(shū)罰款 中產(chǎn)生記錄if 罰款金額 0insert into 圖書(shū)罰款(圖書(shū)編號(hào),讀者編號(hào),罰款日期,應(yīng)罰金額,是否交款)select 圖書(shū)編號(hào),讀者編號(hào),getdate(), 罰款金額, 0from 圖書(shū)借閱 where 借閱編號(hào)=借閱編號(hào)- 插入圖書(shū)歸還表insert into 圖書(shū)歸還(圖書(shū)編號(hào),讀者編號(hào),歸還時(shí)間)select 圖書(shū)編號(hào),讀者編號(hào),getdate()from 圖書(shū)借閱 where 借閱編號(hào)=借閱編號(hào)-設(shè)置借閱狀態(tài)update 圖書(shū)借閱 set 狀態(tài)=已還 w

23、here 借閱編號(hào)=借閱編號(hào)commitGOcreate proc sf_圖書(shū)征訂asbegin tran-驗(yàn)收入庫(kù),增加圖書(shū)庫(kù)存量update 圖書(shū)信息 set 庫(kù)存總量 = isnull(庫(kù)存總量,0) + b.訂購(gòu)數(shù)量, 現(xiàn)存量 = isnull(現(xiàn)存量,0) + b.訂購(gòu)數(shù)量, 入庫(kù)時(shí)間 = b.驗(yàn)收日期from 圖書(shū)信息 as a, 圖書(shū)征訂 as bwhere a.編號(hào)=b.圖書(shū)編號(hào) and b.是否驗(yàn)收=0-設(shè)置圖書(shū)征訂記錄的標(biāo)志,標(biāo)志為已驗(yàn)收update 圖書(shū)征訂 set 驗(yàn)收日期=getdate(), 是否驗(yàn)收=1where 是否驗(yàn)收=0commitGO6 程序開(kāi)發(fā)6.1 創(chuàng)

24、建工程(1)啟動(dòng)Visual Studio 2005,選擇【文件】|【新建】|【項(xiàng)目】,點(diǎn)擊【Visual Studio解決方案】|【空白解決方案】,名稱(chēng)為圖書(shū)館管理系統(tǒng)。(2)單擊打開(kāi)【解決方案資源管理器】,在其中右擊【解決方案“圖書(shū)館管理系統(tǒng)”】,在彈出的快捷菜單中選擇【添加】|【新建項(xiàng)目】命令,在彈出的對(duì)話(huà)框中的【項(xiàng)目類(lèi)型】列表框中選擇【Visual C#項(xiàng)目】,在右邊的【模板】列表框中選擇【W(wǎng)indows應(yīng)用程序】選項(xiàng),名稱(chēng)為“圖書(shū)館管理系統(tǒng)”,然后單擊【確定】按鈕,即可生成一個(gè)新的工程項(xiàng)目。6.2 ADO.NET數(shù)據(jù)組件的設(shè)置建立數(shù)據(jù)庫(kù)應(yīng)用程序過(guò)程中,需要經(jīng)常與SQL Server數(shù)

25、據(jù)源進(jìn)行交互。SglConnectin對(duì)象管理與數(shù)據(jù)源的連接;SglConunand和SglDataReader可以執(zhí)行簡(jiǎn)單的查詢(xún)和讀取數(shù)據(jù);5glDataAdapter作為數(shù)據(jù)適配器可以將數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出來(lái),放到DataSet以供程序中調(diào)用,也可以提取DataSet中儲(chǔ)存的緩存的更新,將它們提交給數(shù)據(jù)庫(kù)。DataSet對(duì)象的核心實(shí)際上為數(shù)據(jù)的集合,它類(lèi)似于Excel中的一個(gè)工作簿,可以存儲(chǔ)一個(gè)或多個(gè)查詢(xún)的結(jié)果。本書(shū)中與數(shù)據(jù)庫(kù)的交互,主要是由這幾個(gè)類(lèi)完成,尤其是SglConnection, SglDataAdapter和DataSet。6.2.1 添加數(shù)據(jù)連接(1)單擊IDE界面的【服務(wù)器資

26、源管理器】,如果后臺(tái)SQL Server允許,則會(huì)在【服務(wù)器】項(xiàng)下面看到服務(wù)器名稱(chēng)。 在這里,選中【數(shù)據(jù)連接】項(xiàng),右擊,在彈出的快捷菜單中選擇【添加連接】命令,將彈出如下對(duì)話(huà)框。選中Microsoft SQL Server,點(diǎn)擊繼續(xù),出現(xiàn)對(duì)話(huà)框,服務(wù)器添加本地,數(shù)據(jù)庫(kù)名添加libbook。打開(kāi)高級(jí)選項(xiàng), 將Workstation ID填寫(xiě)為localhost,這樣做的目的是為了防止在其他計(jì)算機(jī)中允許程序時(shí),由于SQL Server服務(wù)器名稱(chēng)不同而造成無(wú)法訪(fǎng)問(wèn)的錯(cuò)誤,localhost是本地?cái)?shù)據(jù)庫(kù)的通用名稱(chēng)。6.2.2 數(shù)據(jù)適配器配置從工具箱的【數(shù)據(jù)】頁(yè)中拖動(dòng)一個(gè)SglDataAdapter控件

27、到窗體設(shè)計(jì)器中,如圖8.30所示。此時(shí)【數(shù)據(jù)適配器配置向?qū)А繉⒆詣?dòng)啟動(dòng),如圖所示。單擊下一步,繼續(xù),選擇【使用SQL語(yǔ)句】,然后單擊【下一步】按鈕,進(jìn)入生成SQL語(yǔ)句的部分,這是啟動(dòng)【數(shù)據(jù)適配器配置向?qū)А亢蟮牡冢?)步,如圖所示。可以在其中的編輯框中輸入查詢(xún)SQL語(yǔ)句(如select*from讀者類(lèi)型”)。頁(yè)面中的【高級(jí)選項(xiàng)】按鈕控制一些與更新數(shù)據(jù)庫(kù)有關(guān)的選項(xiàng),在只需要從數(shù)據(jù)庫(kù)中查詢(xún)數(shù)據(jù)而不需要更新刪除插入等操作時(shí),可以取消選中【生成Insert,Update和Delete語(yǔ)句】復(fù)選框,如圖?!静樵?xún)生成器】按鈕可以通過(guò)圖形化的界面生成SQL語(yǔ)句,非常的方便。再單擊【下一步】按鈕,將完成數(shù)據(jù)適配

28、器的設(shè)置,完成后,在窗體設(shè)計(jì)器的下方將出現(xiàn)一個(gè)托盤(pán),其上有放置的SglDataAdapter和自動(dòng)生成的SglConnection對(duì)象,如圖所示。在SglDataAdapterl對(duì)象上右擊,在彈出的快捷菜單中選擇【配置數(shù)據(jù)適配器】命令可以重新配置數(shù)據(jù)適配器。右擊SglDataAdapterl對(duì)象,在彈出的快捷菜單中選擇【生成數(shù)據(jù)集】命令,彈出【生成數(shù)據(jù)集】對(duì)話(huà)框,如圖所示。生成數(shù)據(jù)集后,在窗體設(shè)計(jì)器下方的托盤(pán)中將自動(dòng)出現(xiàn)一個(gè)數(shù)據(jù)集對(duì)象,如圖所示。至此,完成了一個(gè)最基本ADO.NET數(shù)據(jù)組件的創(chuàng)建和設(shè)置6.3 創(chuàng)建系統(tǒng)主窗體利用系統(tǒng)默認(rèn)生成的窗體作為主窗體,添加相應(yīng)的控件,定義控件屬性。編寫(xiě)主窗

29、體事件處理代碼:using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;namespace 圖書(shū)館管理系統(tǒng)public class mainFrm : System.Windows.Forms.Form/*省略系統(tǒng)自動(dòng)生成的代碼*/static void Main() /整個(gè)程序啟動(dòng)時(shí)先顯示登錄框,登錄成功再顯示主界面LoginFrm login = new LoginFrm();logi

30、n.ShowDialog();if (LoginFrm.blCanLogin=true)Application.Run(new mainFrm();/-查詢(xún)MDI子窗體是否存在-private bool checkChildFrmExist(string childFrmName)foreach(Form childFrm in this.MdiChildren)if(childFrm.Name = childFrmName) /用子窗體的Name進(jìn)行判斷,如果存在則將他激活if(childFrm.WindowState = FormWindowState.Minimized)childFrm

31、.WindowState = FormWindowState.Normal;childFrm.Activate();return true;return false;/-顯示讀者類(lèi)別設(shè)置窗體-private void menuItem2_Click(object sender, System.EventArgs e)/通過(guò)窗體名稱(chēng)查詢(xún)?cè)摯绑w是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個(gè)if (this.checkChildFrmExist(ReaderClassify) = true)return;ReaderClassify newFrm=new ReaderClassify();newFrm

32、.MdiParent = this;newFrm.Show();/-顯示讀者信息設(shè)置窗體-private void menuItem3_Click(object sender, System.EventArgs e)/通過(guò)窗體名稱(chēng)查詢(xún)?cè)摯绑w是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個(gè)if (this.checkChildFrmExist(ReaderInfo) = true)return;ReaderInfo newFrm=new ReaderInfo();newFrm.MdiParent = this;newFrm.Show();/-顯示圖書(shū)類(lèi)型設(shè)置窗體-private void menuI

33、tem5_Click(object sender, System.EventArgs e)/通過(guò)窗體名稱(chēng)查詢(xún)?cè)摯绑w是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個(gè)if (this.checkChildFrmExist(BookClassify) = true)return;BookClassify newFrm=new BookClassify();newFrm.MdiParent = this;newFrm.Show();/-顯示圖書(shū)檔案管理窗體-private void menuItem6_Click(object sender, System.EventArgs e)/通過(guò)窗體名稱(chēng)查詢(xún)?cè)摯绑w

34、是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個(gè)if (this.checkChildFrmExist(BookInfo) = true)return;BookInfo newFrm=new BookInfo();newFrm.MdiParent = this;newFrm.Show();/-顯示圖書(shū)征訂窗體-private void menuItem8_Click(object sender, System.EventArgs e)/通過(guò)窗體名稱(chēng)查詢(xún)?cè)摯绑w是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個(gè)if (this.checkChildFrmExist(BookSubscribe) = true

35、)return;BookSubscribe newFrm=new BookSubscribe();newFrm.MdiParent = this;newFrm.Show();/-顯示圖書(shū)借閱窗體-private void menuItem9_Click(object sender, System.EventArgs e)/通過(guò)窗體名稱(chēng)查詢(xún)?cè)摯绑w是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個(gè)if (this.checkChildFrmExist(BookBorrow) = true)return;BookBorrow newFrm=new BookBorrow();newFrm.MdiParent

36、 = this;newFrm.Show();/-顯示圖書(shū)歸還窗體-private void menuItem10_Click(object sender, System.EventArgs e)/通過(guò)窗體名稱(chēng)查詢(xún)?cè)摯绑w是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個(gè)if (this.checkChildFrmExist(BookReturn) = true)return;BookReturn newFrm=new BookReturn();newFrm.MdiParent = this;newFrm.Show();/-顯示逾期圖書(shū)窗體-private void menuItem11_Click(o

37、bject sender, System.EventArgs e)/通過(guò)窗體名稱(chēng)查詢(xún)?cè)摯绑w是否已經(jīng)存在,如存在則顯示,否則就新創(chuàng)建一個(gè)if (this.checkChildFrmExist(OverdueBook) = true)return;OverdueBook newFrm=new OverdueBook();newFrm.MdiParent = this;newFrm.Show();/-顯示圖書(shū)罰款窗體-private void menuItem12_Click(object sender, System.EventArgs e)/通過(guò)窗體名稱(chēng)查詢(xún)?cè)摯绑w是否已經(jīng)存在,如存在則顯示,否則

38、就新創(chuàng)建一個(gè)if (this.checkChildFrmExist(BookPenalty) = true)return;BookPenalty newFrm=new BookPenalty();newFrm.MdiParent = this;newFrm.Show();private void menuItem13_Click(object sender, System.EventArgs e)this.Close(); 6.4 創(chuàng)建系統(tǒng)子窗體,窗體截圖將在運(yùn)行與調(diào)試階段提供,這里只給出窗體事件處理代碼(1)登錄窗體:using System;using System.Drawing;usi

39、ng System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;namespace 圖書(shū)館管理系統(tǒng)/*省略系統(tǒng)自動(dòng)生成代碼*/public class LoginFrm : System.Windows.Forms.Formpublic static bool blCanLogin = false; /記錄能否檢驗(yàn)是否通過(guò)public static string strUser = ; /記錄用戶(hù)名public static string strDepartment =

40、 ;/記錄通過(guò)者所屬部門(mén)private DataSet ds = new DataSet();private DataTable myTable;private DataRow myRow;private string sendStrSQL = SELECT * from 用戶(hù)清單;/*省略系統(tǒng)自動(dòng)生成代碼*/public LoginFrm()InitializeComponent();/初始化窗體時(shí),從數(shù)據(jù)庫(kù)中的“用戶(hù)清單”表中檢索數(shù)據(jù)并保存在mytable中LinkDataBase link = new LinkDataBase();string sendTableName = 用戶(hù)清單;this.ds = link.SelectDataBase(sendStrSQL,sendTableName);this.myTable = ds.Tables0;/*省略系統(tǒng)自動(dòng)生成代碼*/-根據(jù)輸入的用戶(hù)名和密碼進(jìn)行登錄校驗(yàn)-private void btn_Login

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論