畢業(yè)設(shè)計 圖書管理系統(tǒng)畢業(yè)設(shè)計

上傳人:仙*** 文檔編號:31851502 上傳時間:2021-10-13 格式:DOC 頁數(shù):40 大?。?.38MB
收藏 版權(quán)申訴 舉報 下載
畢業(yè)設(shè)計 圖書管理系統(tǒng)畢業(yè)設(shè)計_第1頁
第1頁 / 共40頁
畢業(yè)設(shè)計 圖書管理系統(tǒng)畢業(yè)設(shè)計_第2頁
第2頁 / 共40頁
畢業(yè)設(shè)計 圖書管理系統(tǒng)畢業(yè)設(shè)計_第3頁
第3頁 / 共40頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《畢業(yè)設(shè)計 圖書管理系統(tǒng)畢業(yè)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計 圖書管理系統(tǒng)畢業(yè)設(shè)計(40頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日1繼續(xù)教育學(xué)院綜合作業(yè)報告繼續(xù)教育學(xué)院綜合作業(yè)報告二一年五月十五日課程名稱:課程名稱: 圖書管理系統(tǒng) 考考 號:號: 100205200460 姓姓 名:名: 鄭 莉 專專 業(yè):業(yè): 計算機(jī)及應(yīng)用 單 位: 山西計算機(jī)科技學(xué)院 指導(dǎo)老師:指導(dǎo)老師: 段利國 成成 績:績: 優(yōu) 良 中 及格 不及格 太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日2摘要本文首先介紹了數(shù)據(jù)庫管理系統(tǒng) (DBMS)的基本概念及關(guān)系模型等。然后對問題的來源進(jìn)行深入分析,指出 圖書借閱者、圖書館工作人員和圖書館管理人員 是問

2、題主要來源,并指出本數(shù)據(jù)管理系統(tǒng)的實用性功能就是 管理好圖書館信息,提高工作效率,避免數(shù)據(jù)處理手工操作,工作量大,出錯率高 的弊端。接著對需求分析進(jìn)行細(xì)致的分析,特別對圖書借閱者、圖書館工作人員和圖書館管理人員 三者權(quán)限進(jìn)行分配。接著對系統(tǒng)功能模塊進(jìn)行分析,指出本系統(tǒng)功能模塊主要分為 “圖書資料管理”模塊、“學(xué)生資料管理”模塊、“借還書操作”模塊。總的來說,本圖書管理系統(tǒng),介紹了該系統(tǒng)組成結(jié)構(gòu)、功能特點、使用原理和方法,本系統(tǒng)實現(xiàn)了系統(tǒng)登陸、圖書管理、學(xué)生管理圖書的借閱與歸還、圖書借閱排行榜和查看逾期未還圖書以及各種信息的 打印等功能。有了這個系統(tǒng)就使圖書館的工作變得簡單了許多,使圖書館的圖書

3、管 理形成了一個整體自動化管理模式。管理信息系統(tǒng)的實施在技術(shù)上已逐步成熟。管理信息系統(tǒng)是一個不斷發(fā)展的新 型學(xué)科,企業(yè)要生存要發(fā)展,要高效率地把企業(yè)活動有機(jī)地組織起來,就必須加強(qiáng) 企業(yè)管理,即加強(qiáng)對企業(yè)內(nèi)部的各種資源(人、財、物等)的有效管理,建立與自 身特點相適應(yīng)的管理信息系統(tǒng)。圖書館管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主 要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前端的應(yīng)用程序的開發(fā)兩個方面。對于前者要 求建立數(shù)據(jù)的一致性和完整性,對于后者則要求應(yīng)用程序功能的完備,易用等的特 點?;谏鲜隹紤]本系統(tǒng)主要利用Microsoft Visual Studio 2005 作前端的應(yīng)用開發(fā)工具 ,利用SQL

4、Server 2000 作為后臺的數(shù)據(jù)庫,利用WINDOWS 作為系統(tǒng)平臺開發(fā)的圖書管理系統(tǒng)。另外本圖書館管理系統(tǒng)利用軟件工程化思想和方法,總體上是 采用結(jié)構(gòu)化生命法進(jìn)行系統(tǒng)分析和設(shè)計的,而系統(tǒng)實現(xiàn)等步驟則采用了原型法和面 對對象的方法。關(guān)鍵詞關(guān)鍵詞:C#程序設(shè)計語言, SQL SERVER 2000,軟件工程太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日3目錄目錄 摘摘要要.2第第 1 1 章章 基礎(chǔ)理論知識基礎(chǔ)理論知識.51.1 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)簡介.51.2 數(shù)據(jù)庫管理系統(tǒng).51.3 MICROSOFT VISUAL STUDIO 2005 簡介.61.4 C

5、#語言簡介.61.4.11.4.1 C#C#中中 OOPOOP 概述概述.61.4.21.4.2 面向?qū)ο蟮拿嫦驅(qū)ο蟮?C#C# 編程編程.81.4.31.4.3 接口與繼承接口與繼承.12第二章第二章 系統(tǒng)開發(fā)背景系統(tǒng)開發(fā)背景.14第三章第三章 需求分析需求分析.153.1 應(yīng)用需求分析.153.2 實際需求分析 .15第四章第四章 可行性分析可行性分析.164.1 環(huán)境可行性分析.164.2 面向?qū)ο蟮某绦蚍治?16第五章第五章 系統(tǒng)概要設(shè)計系統(tǒng)概要設(shè)計.175.1 模塊分析.175.1.15.1.1 功能模塊圖功能模塊圖.175.2 模塊分析.175.2.15.2.1 “圖書資料管理圖書

6、資料管理”模塊模塊.175.2.25.2.2 “學(xué)生資料管理學(xué)生資料管理”模塊模塊.185.2.35.2.3 “借還書操作借還書操作”模塊模塊.18第六章第六章 詳細(xì)設(shè)計詳細(xì)設(shè)計.186.1 設(shè)計創(chuàng)建數(shù)據(jù)庫.186.1.16.1.1 設(shè)計數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫.186.1.26.1.2 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫.196.2 創(chuàng)建系統(tǒng)主程序.226.3 創(chuàng)建系統(tǒng)常用類.226.3.16.3.1 創(chuàng)建創(chuàng)建“移動記錄工具欄移動記錄工具欄”類類.236.3.26.3.2 創(chuàng)建創(chuàng)建“命令按鈕工具欄命令按鈕工具欄”類類.236.4 創(chuàng)建登錄表單.236.4.16.4.1 系統(tǒng)主表單的功能系統(tǒng)主表單的功能.236.4

7、.26.4.2 創(chuàng)建系統(tǒng)主表單界面創(chuàng)建系統(tǒng)主表單界面.246.4.3.6.4.3. 新書入庫新書入庫.25太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日46.4.46.4.4 圖書借閱圖書借閱.266.4.56.4.5 圖書歸還圖書歸還.276.4.66.4.6 圖書信息查詢圖書信息查詢.286.4.76.4.7 圖書信息修改圖書信息修改.296.4.86.4.8 舊書銷毀舊書銷毀.306.4.96.4.9 圖書證的辦理及證件信息修改圖書證的辦理及證件信息修改.326.4.106.4.10 證件掛失與注銷證件掛失與注銷.326.4.116.4.11 圖書類別信息排行圖

8、書類別信息排行.336.4.126.4.12 庫存外借信息庫存外借信息.346.4.136.4.13 圖書借閱排行榜圖書借閱排行榜.35第七章第七章 結(jié)果分析結(jié)果分析.36項目學(xué)習(xí)心得體會項目學(xué)習(xí)心得體會.37結(jié)結(jié)束束語語.38致致謝謝.39太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日5第第 1 1 章章 基礎(chǔ)理論知識基礎(chǔ)理論知識1.11.1 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)簡介數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)簡介在數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)之前,對開發(fā)數(shù)據(jù)庫的基本概念應(yīng)當(dāng)了解,對數(shù)據(jù)庫的結(jié)構(gòu)、開發(fā)數(shù)據(jù)庫應(yīng)用程序的步驟、開發(fā)體系及方法都應(yīng)當(dāng)有相當(dāng)清晰的了解和認(rèn)識。數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的目標(biāo)是建立一個滿足

9、用戶長期需求的產(chǎn)品。開發(fā)的主要過程為:理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫設(shè)計。把設(shè)計轉(zhuǎn)變?yōu)閷嶋H的數(shù)據(jù)庫,并且這些數(shù)據(jù)庫帶有功能完備、高效能的應(yīng)用。數(shù)據(jù)庫技術(shù)在計算機(jī)軟件鄰域研究中一直是非常重要的主題,產(chǎn)生于 60 年代,40 多年來數(shù)據(jù)庫技術(shù)得到了迅速發(fā)展,并已形成較為完整的理論體系和一大批實用系統(tǒng)。并且,近年來,隨著 World Wide Web(WWW)的猛增及 Internet 技術(shù)的迅速發(fā)展,使得數(shù)據(jù)庫技術(shù)一時成為最熱門技術(shù)之一。1.21.2 數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS 是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對數(shù)

10、據(jù)庫的一切操作,包括定義、更新及各種控制,都是通過 DBMS 進(jìn)行的。DBMS 總是基于某種數(shù)據(jù)模型,可以把 DBMS 看成是某種數(shù)據(jù)模型在計算機(jī)系統(tǒng)上的具體實現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,DBMS 可以分成層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮偷?。SQL Server 2000 就是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。關(guān)系模型。關(guān)系模型主要是用二維表格結(jié)構(gòu)表達(dá)實體集,用外鍵表示實體間聯(lián)系。關(guān)系模型是由若干個關(guān)系模式組成的集合。關(guān)系模式相當(dāng)于前面提到的記錄類型,它的實例稱為關(guān)系,每個關(guān)系實際上是一張二維表格。關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用指針導(dǎo)航數(shù)據(jù),表格簡單用戶易懂,編程時并不涉及存儲結(jié)構(gòu)

11、,訪問技術(shù)等細(xì)節(jié)。關(guān)系模型是數(shù)學(xué)化模型。SQL 語言是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)化語言,已得到了廣泛的應(yīng)用。太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日61.31.3 MicrosoftMicrosoft VisualVisual StudioStudio 20052005 簡介簡介2005 年,微軟發(fā)布了 Visual Studio 2005。.NET 字眼從各種語言的名字中被抹去,但是這個版本的 Visual Studio 仍然還是面向 .NET 框架的(版本 2.0) 。它同時也能開發(fā)跨平臺的應(yīng)用程序,如開發(fā)使用微軟操作系統(tǒng)的手機(jī)的程序等。總體來說是一個非常龐大的軟件,

12、甚至包含代碼測試功能。這個版本的 Visual Studio 包含有眾多版本,分別面向不同的開發(fā)角色。同時還永久提供免費的 Visual Studio Express 版本運行庫實際上在組件的運行時和開發(fā)時操作中都起到很大的作用,盡管名稱中沒有體現(xiàn)這個意思。在組件運行時,運行庫除了負(fù)責(zé)滿足此組件在其他組件上可能具有的依賴項外,還負(fù)責(zé)管理內(nèi)存分配、啟動和停止線程和進(jìn)程,以及強(qiáng)制執(zhí)行安全策略。在開發(fā)時,運行庫的作用稍有變化;由于做了大量的自動處理工作(如內(nèi)存管理),運行庫使開發(fā)人員的操作非常簡單,尤其是與今天的 COM 相比。特別是反射等功能顯著減少了開發(fā)人員為將業(yè)務(wù)邏輯轉(zhuǎn)變?yōu)榭芍赜媒M件而必須編寫

13、的代碼量。1.41.4 C#C#語言簡介語言簡介C#(C Sharp)是微軟于 2000 年提出的一種源于 C+、類似于 Java 的面向?qū)ο缶幊陶Z言,適合于分布式環(huán)境中的組件開發(fā)。C# 是專門為.NET 設(shè)計的,也是.NET 編程的首選語言。1.4.11.4.1 C#C#中中 OOPOOP 概述概述程序設(shè)計語言,在思想上發(fā)展很快,在技術(shù)上也是不斷創(chuàng)新。經(jīng)歷了手工操作(控制面板) 、機(jī)器語言、匯編語言、宏匯編語言、高級語言和第 4 代語言等多個階段。OOP 只是在高級程序設(shè)計語言中,流行的多種編程技術(shù)之一。1基本特征面向?qū)ο缶幊痰娜齻€基本特征是:封裝(encapsulation) 是對問題的抽

14、象,以達(dá)到信息隱藏的目的。通過類和對象,將屬性(數(shù)據(jù)/變量)和方法(操作/函數(shù))封裝在一個黑箱內(nèi),太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日7將細(xì)節(jié)隱藏起來。既可以保護(hù)數(shù)據(jù)不被他人惡意或大意地修改,又能防止其他程序員編寫高耦合度的代碼,還方便了今后對對象內(nèi)部的修改和升級。繼承(inheritance) 利用問題和事物的相似性,通過類的(多層)繼承機(jī)制,可以達(dá)到減少軟件開發(fā)難度和重用已有對象的屬性和方法之目的。多態(tài)(polymorphism) 同一操作或響應(yīng),可以同時針對多個可選的類型和對象,并且能夠自動在它們中間選擇最合適的來進(jìn)行。多態(tài)可以分為:編譯時多態(tài):包括函

15、數(shù)和運算符的重載(overload) ,通過早期的靜態(tài)綁定(binding)來實現(xiàn)。運行時多態(tài):通過繼承結(jié)合晚期動態(tài)綁定來實現(xiàn)用同一基類的指針,可以訪問各個不同派生類中的同名方法和函數(shù)。2基本概念面向?qū)ο缶幊痰幕靖拍睿愃频母拍疃?、表達(dá)不夠準(zhǔn)確、各處的用法各異):抽象(abstraction) 一個問題的本質(zhì)特征。忽略一個對象的細(xì)節(jié),致力于一般的合適級別的程序能力。抽象是在事物的周圍繪制透明的盒子,是定義事物接口的行為。信息隱藏(information hiding) 限制外部對類屬性(數(shù)據(jù)成員)的訪問。封裝(encapsulation) 將某種保密和隱匿應(yīng)用到類中的數(shù)據(jù)和一些方法(函數(shù)或子

16、例程)上。封裝確保一個對象只能通過確定的渠道(即類的公用方法)才可被修改。封裝意味著將數(shù)據(jù)及相關(guān)函數(shù)打包到一個單一的單元(類)中。每個對象暴露一個接口(公用方法) ,規(guī)定其他對象可以如何讀取或修改它。類(class) 問題的抽象,對象的模版,接口的實現(xiàn)。例如 int 是整數(shù)的模版、CPoint 是點的模版。對象(object) 問題中的事物,類的實例(變量) ,擁有數(shù)據(jù)和功能。太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日8若 int i; CPoint p; 則 i 是 int 的實例變量,p 是 CPoint 的實例對象。實例(instance) 一個對象,是某個

17、類的示例。實例化(intantiate) 由類定義創(chuàng)建對象。繼承(inheritance) 創(chuàng)建子類的機(jī)制,一種“is a”或“is like”關(guān)系,形成類層次結(jié)構(gòu)。是 OOP 中對象重用的核心概念。子類(subclass) 繼承自另一個類的派生類(derived class) 。超類(superclass 父類) 被另一個類繼承的基類(base class) 。虛函數(shù)(virtual function) 可以在子類中被覆蓋(override)的函數(shù)。純虛函數(shù)(pure virtual function) 只有聲明沒有定義的函數(shù),必須在派生類中被覆蓋。抽象類(abstract class) 至

18、少包含一個純虛函數(shù)的類,不能被實例化。具體類(concrete class) 可以實例化的類,不包含純虛函數(shù)。接口(interface) 純抽象的類,類的模版。接口中的所有的方法(成員函數(shù))都只有聲明,沒有定義(都是純虛函數(shù)) 。必須在接口的派生類中,實現(xiàn)接口的全部方法。接口可以看成是一個,定義了一套內(nèi)部行為的,若干操作特征標(biāo)記的集合。 (在 C+中,也把類的公用成員函數(shù)叫做接口) 。屬性(attribute) 類和接口中的數(shù)據(jù)信息,又叫數(shù)據(jù)成員(data member)或成員變量(member variable) 。屬性是類知道的事物。方法(method) 類操作的實現(xiàn),又叫成員函數(shù)(mem

19、ber function) 。方法是類要做的事情。 (在 C+中,也把虛函數(shù)叫做方法) 。重載(overload) 一個類中的,參數(shù)的數(shù)目、類型或排列順序不同的多個同名方法(成員函數(shù)) 。覆蓋(override) 在子類中重新定義(與父類中的定義有區(qū)別的)屬性和方法。持久化(persistence) 將對象存入永久存儲中(如文件、數(shù)據(jù)庫等) 。持久對象(persistent object) 存入永久存儲的對象。1.4.21.4.2 面向?qū)ο蟮拿嫦驅(qū)ο蟮?C#C# 編程編程1類類類型定義包含數(shù)據(jù)成員、函數(shù)成員和嵌套類型的數(shù)據(jù)結(jié)構(gòu),其中數(shù)據(jù)成員包太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010

20、年 5 月 10 日9括常量和字段,函數(shù)成員包括方法、屬性、事件、索引器、運算符、實例構(gòu)造函數(shù)、析構(gòu)函數(shù)和靜態(tài)構(gòu)造函數(shù)。類類型支持繼承,繼承是派生類可用來擴(kuò)展和專門化基類的一種機(jī)制。功能與 C+/CLI 的可見性說明符類似,只是增加了 static 修飾符。partial(分部的)用于定義分部類、結(jié)構(gòu)和接口等對象類型,即將它們的定義分成多個部分,保存到多個代碼文件中。這是 C# 2.0 新引進(jìn)的功能,用于解決大型對象類型的定義問題,因為 C# 不支持類體之外的方法和函數(shù)體定義。(1)訪問修飾符類成員可以有如下訪問修飾符(access modifiers):public(公用的)訪問無限制。pr

21、otected(保護(hù)的)只可被包含類(containing class)或其派生的類型訪問。internal(內(nèi)部的)只能被此程序訪問。protected internal(保護(hù)內(nèi)部的)只能被此程序或其包含類所派生的類型訪問。private(私有的)只能被其包含類訪問,為默認(rèn)的。C# 類的 public、protected、private 等成員修飾符,每次只能修飾一個成員,直接位于成員聲明的開始處,而且沒有冒號分隔符。而不是像 C+那樣,一個修飾符可以修飾位于其后(直到下一個修飾符為止)的若干成員。(2)數(shù)據(jù)成員類的數(shù)據(jù)成員(data member)有: 屬性 常量修飾符 const 標(biāo)識符

22、 = 常量表達(dá)式 , ;其中,常量修飾符有:new、public、protected、internal、private 及它們的有效組合。類的數(shù)據(jù)成員可以是靜態(tài)數(shù)據(jù)(使用了 static 修飾符) ,也可以是實例數(shù)據(jù)(未使用 static 修飾符) 。靜態(tài)數(shù)據(jù)為類的所有實例對象所共有,而實例數(shù)據(jù)則每個實例對象都自己的副本。常量默認(rèn)是(總是)靜態(tài)的。字段還可以是只讀的(使用了 readonly 關(guān)鍵字,這是 C# 新增的)和易變的(使用了 volatile 關(guān)鍵字,字段值一般位于 CPU 中的寄存器中,高效但是有效期短太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日10暫

23、) 。(3)函數(shù)成員類的函數(shù)成員(function member)有:屬性(property)提供對對象或類的特性(characteristic)進(jìn)行訪問的成員。聲明格式為:其中,屬性修飾符與方法修飾符相同,訪問修飾符有protected、internal、private、protected internal 和 internal protected,與類成員的普通訪問修飾符相比,沒有 public、多了 internal protected(內(nèi)部保護(hù)的) 。事件(event)定義該類可生成的通知(notifications) 。在發(fā)生某些行為時,可讓對象通知程序??蛻舫绦蚩梢哉{(diào)用事件處理程序

24、代碼來響應(yīng)該事件。聲明格式為:其中,事件修飾符與方法修飾符相同。索引器(indexer)允許對象像數(shù)組一樣被索引的一種成員。聲明格式為:其中,索引器修飾符與方法修飾符類似,只是少了 static。用戶定義的運算符(operator)運算符重載函數(shù)。聲明格式為:構(gòu)造函數(shù)(constructor)包括實例構(gòu)造函數(shù)和靜態(tài)構(gòu)造函數(shù)。實例構(gòu)造函數(shù)(instance constructor)實現(xiàn)初始化一個類實例所需的行為,會在創(chuàng)建每個類實例時被系統(tǒng)調(diào)用。注意:因為 C# 會自動給字段初始化,所以構(gòu)造函數(shù)在 C# 中的作用沒有在 C+的大。格式為:類型名(參數(shù)列表);注意:即使調(diào)用沒有任何參數(shù)的默認(rèn)構(gòu)造函數(shù)

25、,也不能省去后面的圓括號“()” ,不然是語法錯誤。例如:A a = new A();靜態(tài)構(gòu)造函數(shù)(static constructor)實現(xiàn)初始化一個類所需的行為,會在程序裝入時被系統(tǒng)調(diào)用。為類編寫無參數(shù)的具體構(gòu)造函數(shù)是 C# 的一個新特征,主要用于類的靜態(tài)字段或?qū)傩缘倪\行時初始化。格式為:static 類型名(參數(shù)列表);太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日11終結(jié)器(finalizer)在 C# 的舊版本中叫析構(gòu)函數(shù)(destructor) ,但由于引用類型的對象是位于具有垃圾內(nèi)存自動回收功能的 CLR 堆上,所以C# 中的析構(gòu)函數(shù)的功能與 C+的很不

26、一樣。為了與 C+的析構(gòu)函數(shù)有所區(qū)別,在 C# 的新版本中,改叫終結(jié)器。格式(與 C+的析構(gòu)函數(shù)相同)為:類型名();。2結(jié)構(gòu)C# 中的結(jié)構(gòu)(struct)與 C+中的類似,也可以封裝數(shù)據(jù)和函數(shù)(屬性和行為),是一種輕量級的類。但是它與 C# 的(位于 CLR 堆中的)類(為引用類型)不同,它是一種(位于局部棧中的)值類型。1)結(jié)構(gòu)與類的區(qū)別C# 中的結(jié)構(gòu)與類的區(qū)別有:結(jié)構(gòu)是值類型,而類是引用類型。結(jié)構(gòu)是密封的(sealed) ,因此不能被繼承。結(jié)構(gòu)不能繼承類和其他的結(jié)構(gòu)。結(jié)構(gòu)隱式地繼承了 System.ValueType 類型。結(jié)構(gòu)的(無參數(shù))默認(rèn)構(gòu)造函數(shù)不能被自定義的構(gòu)造函數(shù)取代。結(jié)構(gòu)的自

27、定義的構(gòu)造函數(shù),必須初始化結(jié)構(gòu)中全部成員的值。結(jié)構(gòu)沒有析構(gòu)函數(shù)。不允許初始化結(jié)構(gòu)的字段,但是可以初始化結(jié)構(gòu)的常量成員。2)結(jié)構(gòu)聲明結(jié)構(gòu)的完整聲明格式為:其中,結(jié)構(gòu)的修飾符與枚舉修飾符相同:new、public、protected、internal、private,但是與類的有所不同:因為 C# 的結(jié)構(gòu)不支持繼承,所以沒有類的 sealed 和 abstract 修飾符;也沒有 static 修飾符;還與C+一樣,結(jié)構(gòu)的默認(rèn)修飾符為 public(類的默認(rèn)修飾符為 private) 。結(jié)構(gòu)成員聲明與類的基本相同,只是沒有 finalizer-declaration(終結(jié)器聲明,即析構(gòu)函數(shù)定義)

28、。C# 的結(jié)構(gòu)和類一樣,其 public、protected、private 等成員修飾符,每次只能修飾一個成員,也是直接位于成員聲明的開始處,而且也沒有冒號分隔符。而不是像太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日12C+那樣,一個修飾符可以修飾位于其后(直到下一個修飾符為止)的若干成員。3分部類和靜態(tài)類分部類和靜態(tài)類都是 C# 所特有的,而且都是 C# 2.0 版新增加的。前者允許將一個類、結(jié)構(gòu)或接口的定義,放到多個文件中;后者則是僅包含靜態(tài)成員的類。1)分部類分部類和結(jié)構(gòu)是在類和結(jié)構(gòu)的聲明中,使用了 partial 修飾符的類和結(jié)構(gòu)。位于不同文件中的同一個分

29、部類,必須位于同一個命名空間或包含類型(對嵌入式分部類)之中,而且在所有類修飾符必須完全一致。對泛型類,還要求聲明中的類型參數(shù)和對類型參數(shù)的約束也完全一致。但是類的屬性、基類和實現(xiàn)接口的列表卻可以不同。另外,分部類也可以用作嵌套類,不過其包含類必須也是分部類。編譯時,編譯器會合并位于不同文件中的同一個分部類的 XML 注釋、屬性、基類、接口和成員。2)靜態(tài)類靜態(tài)類是在類的聲明中,使用了 static 修飾符的類。靜態(tài)類中只能包含靜態(tài)成員,可以用靜態(tài)構(gòu)造函數(shù)來初始化這些靜態(tài)成員。靜態(tài)類是密封的(不能派生其他類) ,靜態(tài)類不能被實例化,也不能包含實例構(gòu)造函數(shù)。靜態(tài)類一般用于定義公用的常數(shù)和方法(如

30、.NET 中的 Math 類) ,使用時不需要創(chuàng)建實例,直接用“類名.字段”或“類名.方法”即可。例如:1.4.31.4.3 接口與繼承接口與繼承繼承(inheritance)是面向?qū)ο蟮幕咎卣?,所有?C# 類和結(jié)構(gòu)都是直接或間接地從類 Object 派生的。C# 中沒有明確指出基類的類,都以 Object 作為其默認(rèn)基類。C# 中的結(jié)構(gòu)不支持繼承,但是 C# 支持類的單一繼承(single inheritance) ,多重繼承的問題(與 Java 一樣)需通過接口來解決。1接口接口(interface,界面)的概念來源于組件編程的思想。接口定義統(tǒng)一的公用方法的原型,但是不包含方法的具體實

31、現(xiàn)代碼,方法體(代碼)由實現(xiàn)接口的類來定義(編寫) 。所以接口定義的是一種契約(contract) ,實現(xiàn)該接口的類則遵守(adhere)此契約。接口相當(dāng)于組件的界面,供使用組件的用戶查詢和調(diào)用,而實現(xiàn)接口的類則是組件的編碼模塊本身。太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日13在 C# 中,一個接口可以繼承自多個接口,一個類也可以實現(xiàn)多個接口。實現(xiàn)某個接口的類,必須實現(xiàn)該接口中的所有方法。2繼承的種類C# 中的繼承有兩種類型:實現(xiàn)繼承(類繼承)派生類型繼承了基類型的所有成員,包括方法、屬性、事件和索引的實現(xiàn)代碼,派生類既可以直接調(diào)用基類的各種函數(shù)成員的實現(xiàn)代碼,

32、也可以自己編寫代碼來覆蓋或重寫它們,還可以為派生類添加新的數(shù)據(jù)和函數(shù)成員。接口繼承(非實現(xiàn)繼承)派生類型只繼承了基類型中的函數(shù)簽名(signature of a function) ,包括函數(shù)名、類型參數(shù)的個數(shù)、每個形參(formal parameter)的類型和種類(kind,值、引用、輸出) ,從左到右的順序,但是不包括函數(shù)的返回類型、參數(shù)名稱、類型參數(shù)的名稱、以及可對最右邊的參數(shù)指定的參數(shù)修飾符。而沒有繼承基類型中的實現(xiàn)代碼。接口繼承主要用于指定派生類應(yīng)該具有什么特性和功能。接口繼承相當(dāng)于接口的實現(xiàn)。C+只支持實現(xiàn)繼承,VB 則只支持接口繼承,C+/CLI、Java 和 C# 都既支持實

33、現(xiàn)繼承,也支持接口繼承,所以非常適用于編寫基于組件的分布式軟件。C# 中的結(jié)構(gòu),支持(多重)接口繼承,但是不支持實現(xiàn)繼承。即,你可以在結(jié)構(gòu)中實現(xiàn)多個接口中定義的函數(shù)成員,但是你卻不能從類或結(jié)構(gòu)來派生新的結(jié)構(gòu),也不能從結(jié)構(gòu)派生新的類。不過,用戶定義的結(jié)構(gòu),總是自動派生于System.ValueType 抽象類,還可以派生于(實現(xiàn))多個接口。C# 中的類,則支持單一實現(xiàn)繼承和多重接口繼承。3方法的繼承C# 中方法的繼承關(guān)系非常多樣,除了傳統(tǒng) C+的虛函數(shù)(C# 增加了 override修飾符)和純虛函數(shù)(即 C# 的 abstract 抽象函數(shù))外,還增加了隱藏方法(new) 、密封方法(seal

34、ed)和基類方法的調(diào)用指令(base.方法名)等諸多新方式。1)虛方法 override虛函數(shù)是面向?qū)ο缶幊讨袑崿F(xiàn)運行時多態(tài)性的標(biāo)準(zhǔn)途徑,而編譯時的多態(tài)性則是由具有同樣函數(shù)名,但是函數(shù)簽名不同的多個重載(overload)函數(shù)來實現(xiàn)的。太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日14與 C+不同的是,在 C# 中重寫基類的虛方法時,必須使用 C# 特有的重寫修飾符 override(覆蓋) 。2)隱藏方法 new在 C+中,不需要添加任何修飾符,就可以任意重載或覆蓋基類的虛函數(shù)和非虛函數(shù),但是在 C# 中,這樣做會得到一個編譯警告。目的是,為了避免程序員的筆誤,也為

35、了適應(yīng)代碼的維護(hù)與升級。解決辦法是,上面介紹過的使用 override 修飾符來明確重載基類的虛方法,以及使用 new 修飾符來顯式隱藏(覆蓋)基類中具有同樣簽名的(非虛)方法。第二章 系統(tǒng)開發(fā)背景當(dāng)今時代是飛速發(fā)展的信息時代。在各行各業(yè)中離不開信息處理,這正是計算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復(fù)雜的信息管理,計算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書館信息而設(shè)計的。圖書館作為一種信

36、息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他們以前對信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對于圖書借閱情況(如借書天數(shù)、超過限定借書時間的天數(shù))的統(tǒng)計和核實等往往采用對借書卡的人工檢查進(jìn)行,對借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯;由于數(shù)據(jù)繁多,容易丟失,且不易查找。總的來說,缺乏系統(tǒng)、規(guī)范的信息管理手段。盡管有的圖書館有計算機(jī),但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基本環(huán)境。數(shù)據(jù)

37、處理手工操作,工作量大,出錯率高,出錯后不易更改。圖書館采取手工太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日15方式對圖書借閱情況進(jìn)行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內(nèi)容記錄在文件中,圖書館的工作人員和管理員也只是當(dāng)時對它比較清楚,時間一長,如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費時、費力。如要對很長時間以前的圖書進(jìn)行更改就更加困難了?;谶@些問題,我認(rèn)為有必要建立一個圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時

38、、準(zhǔn)確、有效的查詢和修改圖書情況。第三章 需求分析3.13.1 應(yīng)用需求分析應(yīng)用需求分析圖書管理系統(tǒng)需要滿足來自三方面的需求,這三個方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個人借閱情況及個人信息的修改;圖書館工作人員對圖書借閱者的借閱及還書要求進(jìn)行操作,同時形成借書或還書報表給借閱者查看確認(rèn);圖書館管理人員的功能最為復(fù)雜,包括對工作人員、圖書借閱者、圖書進(jìn)行管理和維護(hù)及系統(tǒng)狀態(tài)的查看、維護(hù)并生成催還圖書報表。3.23.2 實際需求分析實際需求分析圖書借閱者可直接查看圖書館圖書情況,如果圖書借閱者根據(jù)本人借書證號和密碼登錄系統(tǒng),還可以進(jìn)行本人

39、借書情況的查詢和維護(hù)部分個人信息。一般情況下,圖書借閱者只應(yīng)該查詢和維護(hù)本人的借書情況和個人信息,若查詢和維護(hù)其他借閱者的借書情況和個人信息,就要知道其他圖書借閱者的借書證號和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書借閱者的要求,還保護(hù)了圖書借閱者的個人隱私。圖書館工作人員有修改圖書借閱者借書和還書記錄的權(quán)限,所以需對工作人員太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日16登陸本模塊進(jìn)行更多的考慮。在此模塊中,圖書館工作人員可以為圖書借閱者加入借書記錄或是還書記錄,并打印生成相應(yīng)的報表給用戶查看和確認(rèn)。圖書館管理人員功能的信息量大,數(shù)據(jù)安全性和保密性要

40、求最高。本功能實現(xiàn)對圖書信息、借閱者信息、總體借閱情況信息的管理和統(tǒng)計、工作人員和管理人員信息查看及維護(hù)。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計圖書的基本信息;瀏覽、查詢、統(tǒng)計、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、統(tǒng)計圖書館的借閱信息。 第四章第四章 可行性分析可行性分析4.14.1 環(huán)境可行性分析環(huán)境可行性分析由于本系統(tǒng)管理的對象單一,都是學(xué)生,且每個數(shù)據(jù)內(nèi)容具有較強(qiáng)的關(guān)聯(lián)性,涉及的計算過程不是很復(fù)雜。因此,比較適合于采用數(shù)據(jù)庫管理。在技術(shù)難度方面,由于有指導(dǎo)老師的指導(dǎo)和相關(guān)參考文獻(xiàn),特別是網(wǎng)上資料,特別是參考其它程序的功能,因此完全可以實現(xiàn)。本系統(tǒng)的設(shè)計是在 Wi

41、ndows XPXP 操作系統(tǒng)環(huán)境下,使用 Visual Studio.NET 2003 中文版開發(fā)成功的。Visual Studio 具有以下特點:4.24.2 面向?qū)ο蟮某绦蛎嫦驅(qū)ο蟮某绦蚍治龇治?、面向?qū)ο笤O(shè)計不再是單純的從代碼的第一行一直編到最后一行,而是考慮如何創(chuàng)建類和對象,利用類和對象來簡化程序設(shè)計,并提供代碼的封裝和可重用性,便于程序的維護(hù)與擴(kuò)展。2、所謂的對象是一種抽象的名稱,用來對應(yīng)實現(xiàn)世界存在的“東西” 。一個窗口、一個按鈕、一個菜單都可視為一個對象,而按鈕對象、菜單對象、又會出現(xiàn)在窗口對象中,因此按鈕對象、菜單對象便是窗口的組件之一。對象內(nèi)部的數(shù)據(jù)是不能隨意更改的,必須由

42、外部向其傳遞信息,再由對象按其方法加以處理。用戶無需太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日17知道其任何細(xì)節(jié),操作是封閉的,對象之間能通過函數(shù)調(diào)用相互通信。3、類可視為一個產(chǎn)品模具、一個模塊。在面向?qū)ο笤O(shè)計中,類是對象的原型,是對象的制作器。類的概念是面向?qū)ο蟪绦蛟O(shè)計最重要的特征。所謂類,是指由數(shù)據(jù)結(jié)構(gòu)及其相關(guān)操作所形成的集合,描述該類任一對象的共同的行為特征,是對一組性質(zhì)相同的對象的程序描述,概括了對象的共同性質(zhì)和數(shù)據(jù)。4、面向?qū)ο笤O(shè)計的核心是類的設(shè)計。例如:可以定義一個“成績查詢”類,該類中可以定義查詢的姓名、學(xué)號、班級等信息,則以此類為原型可以設(shè)計出眾多

43、的“成績查詢”類的對象實例,這些實體都具有類中所定義的特征。第五章第五章 系統(tǒng)概要設(shè)計系統(tǒng)概要設(shè)計5.15.1 模塊分析模塊分析5.1.15.1.1 功能模塊圖功能模塊圖 太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日18圖示 3.2.15.25.2 模塊分析模塊分析5.2.15.2.1 “圖書資料管理圖書資料管理”模塊模塊“圖書資料管理”模塊主要實現(xiàn)圖書資料的分條瀏覽、添加、修改、刪除、查詢和打印功能。在表單的“書籍資料”頁框中可以通過“移動記錄工具欄”分條查看系統(tǒng)內(nèi)所有的圖書的詳細(xì)資料,包括圖書的名稱、類別、作者、出版社、購買日期等。單擊“命令按鈕工具欄”中的按鈕

44、可以對 “書籍資料”頁框中的記錄進(jìn)行相應(yīng)的操作。5.2.25.2.2 “學(xué)生資料管理學(xué)生資料管理”模塊模塊“學(xué)生資料管理”模塊主要實現(xiàn)學(xué)生資料的分條瀏覽、添加、修改、刪除、查詢和打印功能。在表單的“學(xué)生資料”頁框中可以通過“移動記錄工具欄”分條查看系統(tǒng)內(nèi)所有的學(xué)生詳細(xì)資料,包括學(xué)生姓名、性別、系別、班級等資料。單擊“命令按鈕工具欄”中的按鈕可以對“學(xué)生資料”頁框中的記錄進(jìn)行相應(yīng)的操作。5.2.35.2.3 “借還書操作借還書操作”模塊模塊“借還書操作”模塊主要實現(xiàn)讀者借書記錄的查看、借還書操作、圖書借閱排行榜、查看逾期未歸還圖書和記錄打印等功能。讀者借書記錄查看功能可以查看所有的借書記錄 ,也

45、可以只查看目前尚未歸還的借書記錄。在“讀者借書記錄”表單中單擊“借書”按鈕 ,在打開的“輸入”表單中 ,輸入要借出的圖書編號 ,如果該圖書在館中而且該讀者還能借書 , 則借書成功。“讀者借書記錄”表單中單擊“還書”按鈕 , 在打開的“輸入”表單中輸入要歸還的圖書的圖書編號 ,如果該圖書是被當(dāng)前讀者借出 ,則還書成功。當(dāng)表單中顯示的是讀者未歸還的圖書列表時 , 在列出借書記錄的表格中雙擊要歸還的圖書的“圖書編號”欄即可將此圖書還入。在“讀者借書記錄”表單中 , 單擊“過期”按鈕 , 可以查看系統(tǒng)內(nèi)到了歸還日期而未歸還的圖書的借閱記錄。在“讀者借書記錄”表單中 ,單擊“排行”按鈕 ,可以查看系統(tǒng)內(nèi)

46、借閱次數(shù)在所有圖書內(nèi)排行前 10 名的圖書的列表。太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日19第六章第六章 詳細(xì)設(shè)計詳細(xì)設(shè)計6.16.1 設(shè)計創(chuàng)建數(shù)據(jù)庫設(shè)計創(chuàng)建數(shù)據(jù)庫6.1.16.1.1 設(shè)計數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫本系統(tǒng)實現(xiàn)了系統(tǒng)登錄功能 , 而系統(tǒng)登錄需要賬號和密碼 , 這就需要 創(chuàng)建一個“系統(tǒng)帳號”(Accounts) 數(shù)據(jù)表 , 用來存儲系統(tǒng)登錄用的賬號和密碼。本系統(tǒng)要實現(xiàn)圖書資料和學(xué)生資料的管理 , 所以需要創(chuàng)建 “學(xué)生信息” (Student)數(shù)據(jù)表和“圖書信息 ”(Book) 數(shù)據(jù)表。 “學(xué)生信息 ”(Student) 數(shù)據(jù)表中包含了學(xué)生的“系別”信息 ,

47、 在本系統(tǒng)中為了簡化系別的管理 , 另外創(chuàng)建了一個“系別”(Xibie)數(shù)據(jù)表用來存儲系別的信息 , 在“學(xué)生信息”(Student) 數(shù)據(jù)表中只存儲系別的編號。由于系統(tǒng)要實現(xiàn)讀者借還書功能、還要實現(xiàn)讀者借還書記錄的查看 ,所以還需創(chuàng)建一個“讀者借書記錄 ”(JyRec) 數(shù)據(jù)表來保存讀者的借閱記錄。6.1.26.1.2 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫“圖書借閱管理系統(tǒng)”作為一個完整的數(shù)據(jù)庫管理系統(tǒng) , 在創(chuàng)建階段利用項目管理器可以更好組織管理各種格式的文件 , 因此首先需要創(chuàng)建一個項目 , 然后在項目管理器創(chuàng)建其他格式的文件。在 VFP 主窗口中選擇“文件”菜單下“新建”子菜單 , 在打開的“新建”對

48、話框的“文件類型“區(qū)域中選中”項目”,然后單擊右側(cè)的”新建文件”按鈕,打開”創(chuàng)建“對話框中的”項目文件“文本框中輸入項目名稱 , 在此輸入 Tushu”,單擊“保存”按鈕即創(chuàng)建了一個項目。在項目管理器的“數(shù)據(jù)”選項卡中選中“數(shù)據(jù)庫”單擊右側(cè)的“新建”按鈕,在彈出的“新建數(shù)據(jù)庫”對話框中單擊“新建數(shù)據(jù)庫”, 在彈出的“創(chuàng)建”對話框的“數(shù)據(jù)庫名”文本框中輸入數(shù)據(jù)庫的名稱 , 在此輸入“Tushu”作為數(shù)據(jù)庫名 , 單擊“保存“按鈕即創(chuàng)建了一個空的數(shù)據(jù)庫。在項目管理器的“數(shù)據(jù)”選項卡中打開剛才創(chuàng)建的“Tushu”數(shù)據(jù)庫的目錄樹,選中“數(shù)據(jù)表”,單擊右側(cè)的“新建”按鈕即可開始數(shù)據(jù)表的創(chuàng)建。系統(tǒng)關(guān)系圖如

49、下圖所示太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日20圖示 4.1.2本系統(tǒng)中要用到的數(shù)據(jù)表的字段的屬性設(shè)置分別設(shè)置如下?!跋到y(tǒng)賬號”(圖書卡號) 數(shù)據(jù)表的宇段屬性設(shè)置如表 1 所示。表 1“圖書卡號” (LentCardType)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型說明帳號字符型字段寬度 20,主索引字段,不能為空姓名字符型字段寬度 20密碼字符型字段寬度 20創(chuàng)建“系統(tǒng)賬號”(圖書卡號) 數(shù)據(jù)表后向數(shù)據(jù)庫中添加一條記錄作為系統(tǒng)的默認(rèn)帳號,該記錄的各字段的值如下 :“cyr”,“cyr”,“楚雅茹”?!皩W(xué)生信息”(BookInformation) 數(shù)據(jù)表各字段的屬性

50、設(shè)置如表 2 所示。表 2“圖書類型” ( BookInformation)數(shù)據(jù)表字段屬性設(shè)置圖書 Id數(shù)據(jù)類型說明圖書編號字符型字段寬度 6,主索引字段,輸入掩碼為“999999”太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日21書名字符型字段寬度 20作者名字符型字段寬度 20出版社字符型字段寬度 4,為普通索引出版日期字符型字段寬度 10圖書價格字符型字段寬度 12,輸入掩碼為“999#9999999”郵件字符型字段寬度 30借出次數(shù)數(shù)據(jù)類型整數(shù)據(jù);圖書狀態(tài)字符型字段寬度 10“系別信息” (圖書類別)數(shù)據(jù)表各字段的屬性設(shè)置如表 3 所示表 3“圖書類別” (

51、圖書類別)數(shù)據(jù)表字段屬性設(shè)置類型編號字符型字段寬度 4,主索引字段,輸入掩碼為“9999”類型名稱字符型字段寬度 20“圖書信息” (Book)數(shù)據(jù)表各字段的屬性設(shè)置如表 4 所示表 4“圖書信息” (Tushu)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型說明圖書編號字符型字段寬度 6,主索引字段,輸入掩碼為“AA9999”圖書類別字符型字段寬度 10圖書名稱字符型字段寬度 40圖書作者字符型字段寬度 20出版社字符型字段寬度 40購買日期日期型字段寬度 8購買價格貨幣型字段寬度 8借閱次數(shù)數(shù)值型字段寬度 4,默認(rèn)值 0是否借出邏輯型字段寬度 1,默認(rèn)值“.F.”對“圖書信息” (Book)數(shù)據(jù)表的字段

52、屬性設(shè)置需要說明的是“借閱次數(shù)”和“是否借出”字段的默認(rèn)值一定要設(shè)置,因為對于新添加的圖書,其一定是沒有被借出的,而且其借閱次數(shù)一定是 0,所以在表單中向數(shù)據(jù)表添加記錄時,這兩個字段應(yīng)該是不需要添加的,可以由默認(rèn)值生成。太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日22“讀者借書記錄” (JyRec)數(shù)據(jù)表的字段屬性如表 5 所示。表 5“讀者借書記錄” (ReaderInfor)數(shù)據(jù)表字段屬性設(shè)置字段名數(shù)據(jù)類型說明學(xué)號字符型字段寬度 6,普通索引字段,輸入掩碼為“999999”圖書編號字符型字段寬度 6,普通索引字段,輸入掩碼為“AA9999”借閱日期日期型字段寬度

53、 8歸還日期日期型字段寬度 8數(shù)據(jù)表之間的關(guān)系,將在具體表單的數(shù)據(jù)環(huán)境中設(shè)置。將“借書卡” (LentBookCard)數(shù)據(jù)表、 “借書卡類別” (LentCardType)數(shù)據(jù)表、 “圖書信息” (BookInformation)數(shù)據(jù)表、 “讀者借書記錄” (LentNoteInfor)數(shù)據(jù)表添加到表單的數(shù)據(jù)環(huán)境中,用主外鍵建立關(guān)聯(lián)。6.26.2 創(chuàng)建系統(tǒng)主程序創(chuàng)建系統(tǒng)主程序WinForm 是.Net 開發(fā)平臺中對 Windows Form 的一種稱謂。 .Net 為開發(fā)WinForm 的應(yīng)用程序提供了豐富的 Class Library(類庫) 。這些 WinForm 類庫支持 RAD(快速

54、應(yīng)用程序開發(fā) ),這些類庫被封裝在一個名稱空間之中,這個名稱空間就是 System.Windows.Forms。在此名稱空間中定義了許多類,在開發(fā)基于.Net 的 GUI 應(yīng)用程序的時候,就是通過繼承和擴(kuò)展這些類才使得我們的程序有著多樣的用戶界面。將一個文件設(shè)為項目主文件的方法是在項目管理器中選中該文件 , 然后在右鍵快捷菜單中選擇“設(shè)為主文件”子菜單或者選擇“項目”菜單下“設(shè)為主文件”子菜單即可。一個文件設(shè)為項目的主文件后 , 該文件的將以粗體顯示LibraryLogin 程序的代碼為:(見附表)6.36.3 創(chuàng)建系統(tǒng)常用類創(chuàng)建系統(tǒng)常用類系統(tǒng)主表單中“學(xué)生資料”和“書籍資料”頁框控件中都需要

55、用到“移動記錄工具欄”和“命令按鈕工具欄”, 這兩個命令按鈕工具欄如果在表單中分別創(chuàng)建會太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日23使工作變得繁瑣,可以采用創(chuàng)建工具欄類 , 然后在表單中用實例化的方式來簡化工作。6.3.16.3.1 創(chuàng)建創(chuàng)建“移動記錄工具欄移動記錄工具欄”類類“移動記錄工具欄”類基于“CommandGroup”基類,存儲于“AdminButton”可視類庫中,命名為“MoveRecord”?!耙苿佑涗浌ぞ邫凇鳖惏ā笆子涗洝?、“上一個”、“下一個”和“末記錄”4 個按鈕,在表單中可以利用這 4 個按鈕定位數(shù)據(jù)表中的記錄指針。需要指出的是,在本系

56、統(tǒng)中當(dāng)鼠標(biāo)移動到按鈕上時,鼠標(biāo)指針變?yōu)橐粋€特定指針,這就需要一個鼠標(biāo)指定文件,在本系統(tǒng)中使用“H_point.cur”文件,將該鼠標(biāo)指針文件放在系統(tǒng)的根目錄下,添加按鈕“MouseMove”事件如下:(見附表)6.3.26.3.2 創(chuàng)建創(chuàng)建“命令按鈕工具欄命令按鈕工具欄”類類與“移動記錄工具欄”類相同,為了改變鼠標(biāo)停留在按鈕時的指針,還需添加按鈕的“MouseMove”事件,代碼與“移動記錄工具欄”類中的相同。6.46.4 創(chuàng)建登錄表單創(chuàng)建登錄表單 6.4.16.4.1 系統(tǒng)主表單的功能系統(tǒng)主表單的功能為了系統(tǒng)有安全,一般系統(tǒng)都設(shè)有登錄窗體,登錄該系統(tǒng)除了輸入正確的用戶名和密碼外,還必須選擇用

57、戶登錄的權(quán)限.不同權(quán)限的用戶登錄系統(tǒng)分別執(zhí)行不同有操作. 本系統(tǒng)登錄權(quán)限分為四類:圖書管理員:能夠?qū)D書進(jìn)行增加,刪除,修改,查詢,以及圖書證件的查詢操作.證件管理員:能對圖書證件進(jìn)行增加,刪除,修改,查詢操作等.普通管理員:能對圖書信息進(jìn)行增,刪,改,查,并能對圖書證件進(jìn)行增,刪,改,查.高級管理員:能執(zhí)行本系統(tǒng)全部功能.太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日24圖示 6.4.16.4.26.4.2 創(chuàng)建系統(tǒng)主表單界面創(chuàng)建系統(tǒng)主表單界面設(shè)計 Winform 父窗體,命名為“LibraryMainWindow” 。創(chuàng)建好的表單效果中有兩個頁框,其中“學(xué)生資料”

58、頁面效果如下圖所示。圖示 6.4.2太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日25圖書管理主窗體主窗體主要包括:標(biāo)題欄:圖書管理系統(tǒng);菜單欄:圖書管理(新書入庫,圖書查詢,圖書借閱,圖書歸還,圖書信息修改,舊書銷毀),證件管理(新證辦理,證件信息修改,圖書證掛失、注銷) ,圖書預(yù)覽(熱門圖書排行) ,信息統(tǒng)計(庫存借出比例,類別信息統(tǒng)計) ,系統(tǒng)設(shè)置(用戶設(shè)置) ,幫助(關(guān)于窗體) 。工具欄:相當(dāng)于工具欄的快捷方式,包括圖書信息(圖書查詢,圖書借閱,圖書歸還) ,修改信息(圖書修改,證件修改,添加代碼) ,新書入庫,新政辦理,證件掛失、注銷,舊書銷毀,借出比例,圖

59、書類別信息,用戶設(shè)置,窗體容器區(qū):存放子窗體;狀態(tài)欄(初始化信息,系統(tǒng)當(dāng)前時間) ;6.4.3.6.4.3. 新書入庫新書入庫 當(dāng)圖書館新進(jìn)一批圖書時,管理員要通過該系統(tǒng)將所有圖書添加到系統(tǒng)數(shù)據(jù)庫中。為了保證系統(tǒng)的安全性和 健壯性,該系統(tǒng)的文本框。 使用設(shè)置掩碼控件限制用戶的輸入。從而保證系統(tǒng)的安全性。該窗體用 TabCotrol 控件將同類型的信息層疊在一個窗體以方便操作。如果用戶輸入有誤將給出提示,不得將錯誤信息插入數(shù)據(jù)庫??梢渣c擊重置按鈕清空文本框。以便重新輸入。如果用戶輸入正確無誤,單擊保存,將輸入的圖書信息插入庫存中。如果用戶要退出系統(tǒng),單擊退出按鈕,用戶還可以通過點擊 page 頁

60、查看其它頁面。也可以點擊下一頁按鈕跳到下一頁??丶械臄?shù)據(jù)處于可修改狀態(tài), “移動記錄工具欄”處于不可用狀態(tài), “命令按鈕工具欄”中除了“保存”和“取消”按鈕外其他按鈕都處于不可用狀態(tài), “借還書”按鈕處于可用狀態(tài), “書籍信息”頁面處于不可用狀態(tài)。太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日26圖示 6.4.36.4.46.4.4 圖書借閱圖書借閱在“學(xué)生信息” (StuPage)被激活時,應(yīng)該將“學(xué)生信息” (Student)數(shù)據(jù)表所在工作區(qū)作為表單的當(dāng)前工作區(qū),取消由其他表單設(shè)置的過慮條件,并且使頁面進(jìn)入瀏覽狀態(tài)。添加“學(xué)生信息”頁面的 Activate 事件

61、代碼如下:(見附表)“學(xué)生信息”頁面中的“系別”組合框中選擇某一個系編號后,要在“名稱”欄顯示系統(tǒng)編號所代碼的系別名稱,由于在數(shù)據(jù)環(huán)境中將兩者做了關(guān)連,所以在選擇了某個系編號后只需要刷新表單即可。圖書借閱介紹:首先用戶先選定自己要借閱的圖書,然后通過管理員輸入用戶的卡號,然后要判斷用戶的卡號是否正確,如果不正確給出提示,其次判斷用戶的卡號是普通卡還是貴賓卡,是否能滿足用戶借閱圖書的數(shù)量。如果不能滿足用戶的借閱將給出提示。當(dāng)用戶借閱圖書成功后,將更新圖書信息,用戶圖書證件性息。單擊退出將退出此窗體。單擊上一頁可以跳轉(zhuǎn)至圖書查詢。單擊下一頁可以跳至圖書歸還。 太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭

62、莉 2010 年 5 月 10 日27圖示 6.4.4 6.4.56.4.5 圖書歸還圖書歸還在“書籍信息” (BookPage)頁面被激活時,表單中的當(dāng)前數(shù)據(jù)工作期應(yīng)該變?yōu)椤皥D書信息”數(shù)據(jù)表所在的工作期,將可能由其他表單對該數(shù)據(jù)表設(shè)置的過慮條件去掉,同時要使該頁面進(jìn)入瀏覽狀態(tài)。用戶歸還圖書時,管理員先輸入圖書編號,點擊顯示圖書信息。顯示圖書的其他信息。然后輸入用戶的圖書證件號,點擊顯示圖書證件信息,顯示圖書證件的其他信息。檢查用戶信息無誤后,點擊還書。點擊還書后,系統(tǒng)將更改用戶的圖書卡的借閱信息。并修改圖書信;。上一頁跳至圖書借閱;下一頁跳至舊書銷毀;點擊退出將退出該窗體。單擊“還書”按鈕

63、,可以調(diào)用“輸入”表單用來輸入要歸還的圖書編號,如果該圖書由當(dāng)前讀者借出,則還書成功,否則失敗。另外,當(dāng)表單中的表格控件中顯示的是當(dāng)前讀者的“已借出”圖書記錄時,可以通過雙擊列表中的某本書的“圖書編號”欄來快速還書。太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日28圖示 6.4.56.4.66.4.6 圖書信息查詢圖書信息查詢左邊采用樹控件顯示圖書信息當(dāng)用戶單擊該數(shù)節(jié)點是將展開以下信息。如果用戶單擊圖書編號節(jié)點以及字節(jié)點后,單擊工具欄上對應(yīng)的按鈕將在表里顯示對應(yīng)的圖書信息。右邊的圖書信息表采用分頁技術(shù)將成千上百條信息分成多頁,管理員上一頁按鈕,下一頁按鈕,首頁按鈕,尾

64、頁按鈕,分別瀏覽圖書所有信息。左上角按鈕上一頁可以跳至圖書歸還,下一頁跳至舊書銷毀;退出-退出窗體。在對圖書信息查詢,為了能快速查詢所要顯示的圖書信息,設(shè)置了多個條件查詢,如按照作者信息查詢,按照出版社信息查詢,按照圖書名稱信息查詢,按照圖書類別信息查詢等條件,查詢顯示頁面為了美觀,采取了分頁功能,單擊上一頁,可以瀏覽上一頁的信息,單擊下一頁能瀏覽下一頁的信息,也可以直接瀏覽首頁和尾頁的信息。 太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日29圖示 6.4.66.4.76.4.7 圖書信息修改圖書信息修改圖書信息修改表采用分頁技術(shù)。通過單擊按鈕分別瀏覽圖書所有信息。并

65、且在文本框能顯示數(shù)據(jù)表的當(dāng)前頁數(shù)和總頁數(shù)。在數(shù)據(jù)表可以執(zhí)行增加,刪除,修改等的批量更新。刷新按鈕可以將修改的最新信息顯示到表中。關(guān)閉按鈕退出該窗體圖書管理系統(tǒng)示例代碼:如下1.MessageBox.Show(您確定要修改該圖書信息嗎?, 系統(tǒng)提示, MessageBoxButtons.YesNo, MessageBoxIcon.Information)太原理工大學(xué)高等教育自學(xué)考試 學(xué)生:鄭莉 2010 年 5 月 10 日30圖示 6.4.76.4.86.4.8 舊書銷毀舊書銷毀 “書籍信息”頁面的查詢功能由“輸入查詢條件”表單和“圖書信息查詢結(jié)果”表單組成。圖書高級管理員在城需求下要銷毀一部

66、分舊書,按照多個條件進(jìn)行查詢所有要銷毀的圖書信息,同樣也提供了分頁功能,單擊按鈕查詢,根據(jù)圖書編號查詢到要刪除的圖書,單擊銷毀按鈕即刪除該圖書。此“輸入查詢條件”表單也是用來向用戶收集查詢條件。單擊“過期”按鈕可以查看系統(tǒng)中的逾期未歸還的圖書的列表。單擊“排行”按鈕可以查看系統(tǒng)中借出次數(shù)最多的 10 本書的列表。 void btnDestroyBook_Click(object sender, EventArgs e) BookInformationModel objBookInformationmodel = new BookInformationModel(); objBookInformationmodel.BookId = this.txtOldBookID.Text.Trim().ToString(); string bookstatus = null; if (BookInformationBll.SelectBookstatus(objBookInformationmodel).TablesBooktype.Rows.Count 0) foreach (DataRow r

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲