數(shù)據(jù)庫課程設計--圖書館管理系統(tǒng)_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  課程名稱 數(shù)據(jù)庫原理課程設計 </p><p>  課題名稱 圖書館管理系統(tǒng) </p><p>  專 業(yè) 信息管理與信息系統(tǒng) </p><p>

2、  班 級 信息管理1202班 </p><p>  學 號 </p><p>  姓 名 </p><p>  指導教師 </p

3、><p>  2013年 12 月 6 日</p><p>  課 程 設 計 任 務 書</p><p>  課程名稱 數(shù)據(jù)庫原理課程設計</p><p>  課 題 圖書館管理系統(tǒng) </p><p>  專業(yè)班級 信息管理與信息系統(tǒng) &

4、lt;/p><p>  學生姓名 </p><p>  學 號 </p><p>  指導老師 </p><p>  審 批 </p><p&g

5、t;  任務書下達日期 2013 年 12 月 6 日</p><p>  任務完成日期 2013 年 12 月 24 日</p><p>  一、設計內容與設計要求</p><p><b>  1.設計內容:</b></p><p><b>  圖書館管理系統(tǒng)</b></p&g

6、t;<p><b>  系統(tǒng)功能分析</b></p><p>  圖書館管理系統(tǒng)應具備借書、還書、圖書查詢和圖書管理(如增加、修改和刪除)等基本管理功能,具體如下:</p><p> ?。?)憑借書證借書時,對借書證的有效性、最大借書數(shù)和目前能借書數(shù),借書期限進行判斷,并記錄借書信息。</p><p> ?。?)在還書時,更改借書

7、信息記錄,并檢查該書是否超期,如超期應計算出罰款金額。</p><p> ?。?)能查詢讀者基本信息和借書的歷史記錄。</p><p>  (4)能對所有圖書按分類查詢(如作者、書名、出版社等)。</p><p> ?。?)能對圖書進行基本管理(如增加、修改和刪除)。</p><p>  (6)能管理讀者的基本信息(如增加、修改和刪除)。&l

8、t;/p><p> ?。?)能對各類讀者的權限(有效性、最大借書數(shù)目和借書期限等)和超期罰款金額進行設置。</p><p>  數(shù)據(jù)庫中表的參考結構(注:僅供參考)</p><p><b>  表名:DZXX</b></p><p>  說明:讀者基本信息表</p><p><b>  表名

9、:TSXX</b></p><p><b>  說明:圖書信息表</b></p><p><b>  表名:JHJL</b></p><p><b>  說明:借還書記錄</b></p><p><b>  表名:DZLX</b></p&

10、gt;<p><b>  說明:讀者類型表</b></p><p>  高校學生成績管理信息系統(tǒng)</p><p><b>  系統(tǒng)功能設計</b></p><p>  系統(tǒng)采用模塊化程序設計方法,便于系統(tǒng)功能的各種組合和修改,系統(tǒng)應具備數(shù)據(jù)庫維護功能,及時根據(jù)用戶需求進行數(shù)據(jù)的添加、修改、刪除、查詢、備份等操

11、作。</p><p>  作為高校學生成績管理系統(tǒng),它應該有以下基本功能:</p><p>  (1)能進行系部設置、專業(yè)設置、班級設置、課程代碼設置、教師代碼設置</p><p> ?。?)能錄入每學期所學課程、錄入學生基本情況</p><p> ?。?)單科成績錄入、單個學生全部成績錄入</p><p> ?。?)

12、查詢學生基本情況數(shù)據(jù)、單科成績查詢、每個學生全部成績查詢</p><p>  (5)打印班級花名冊、打印班級綜合表、打印個人成績通知單</p><p>  數(shù)據(jù)庫及數(shù)據(jù)表的設計</p><p>  數(shù)據(jù)庫由以下幾個數(shù)據(jù)表組成:</p><p> ?。?)學生數(shù)據(jù)表:(學號,姓名,性別,出生年月,班級,政治面貌)</p><

13、p> ?。?)教師數(shù)據(jù)表:(教師號,教師姓名,學歷,職稱,單位)</p><p> ?。?)課程數(shù)據(jù)表:(課程號,課程名)</p><p> ?。?)課程設置數(shù)據(jù)表:(課程號,課程名,類別,總學時,教師號,教師姓名,學期,班級號,學分)</p><p> ?。?)班級數(shù)據(jù)表:(班級號,班級名,所屬系部)</p><p> ?。?)成績數(shù)

14、據(jù)表:(學號,姓名,課程號,課程名,學期,成績,學分)</p><p><b>  2.設計要求:</b></p><p>  (1)論述課題的性質、內容以及本次課程設計的目的和要求。</p><p> ?。?)說明系統(tǒng)對計算機軟、硬件環(huán)境的基本要求,對Windows操作系統(tǒng)和SQL Server數(shù)據(jù)庫管理系統(tǒng)和C/S模式簡要的說明。</

15、p><p>  (3)總體設計方案的分析、比較和論證。</p><p> ?。?)數(shù)據(jù)庫的建立,數(shù)據(jù)庫中表的結構,各表中關鍵字的設置,表與表之間的關系。</p><p> ?。?)應用程序各功能模塊和報表的設計。</p><p> ?。?)編寫代碼、上機輸入、調試、修改并運行通過。</p><p> ?。?)編寫課程設計說

16、明書。說明書是總結性的技術文件,應全面敘述整個設計的內容及過程(可參考上述6條),發(fā)現(xiàn)的問題及解決方法等。</p><p> ?。?)源代碼和參考書目應作為說明書的附錄。</p><p> ?。?)說明書應采用A4紙張,文字說明不少于5000字。說明書中應包括系統(tǒng)結構示意圖。</p><p><b>  二、進度安排</b></p>

17、<p>  第一周:星期一 上午8:00——12:00,下午2:00——6:00 </p><p>  星期二 上午8:00——12:00 下午2:00——6:00</p><p>  第二周:星期一 下午2:00——6:00</p><p>  星期二 下午2:00——6:00</p><p><b> 

18、 第一章 緒論</b></p><p>  §1.1設計背景1</p><p>  §1.2系統(tǒng)描述1</p><p>  §1.3開發(fā)環(huán)境1</p><p>  第二章 需求分析2</p><p>  §2.1 可行性分析2</p><

19、p>  §2.2 數(shù)據(jù)功能圖2</p><p>  2.3 數(shù)據(jù)流程圖3</p><p>  第三章 數(shù)據(jù)庫設計4</p><p>  §3.1 概念結構設計4</p><p>  §3.2 邏輯結構設計7</p><p>  §3.3 物理結構設計7</

20、p><p>  第四章 數(shù)據(jù)庫實施10</p><p>  §4.1相關SQL語句10</p><p>  §4.1.1創(chuàng)建數(shù)據(jù)庫名為LIB的數(shù)據(jù)庫10</p><p>  §4.1.2創(chuàng)建基本信息表10</p><p>  §4.1.3創(chuàng)建觸發(fā)器11</p>

21、<p>  §4.2 查詢模塊12</p><p>  §4.2.1 查詢圖書12</p><p>  §4.2.2 查詢讀者14</p><p>  §4.3.3 查詢用戶借閱歷史16</p><p>  §4.3書籍管理模塊16</p><p>

22、;  §4.3.1 增加圖書16</p><p>  §4.3.2 刪除圖書18</p><p>  第五章 軟件測試20</p><p>  §5.1模塊測試20</p><p>  5.1.1書籍管理模塊測試20</p><p>  5.1.2查詢模塊測試21</p&

23、gt;<p>  5.2結果分析21</p><p><b>  設計總結22</b></p><p><b>  學習體會23</b></p><p><b>  6.評分表25</b></p><p><b>  26</b>&l

24、t;/p><p><b>  第一章 緒論</b></p><p><b>  §1.1設計背景</b></p><p>  隨著社會的發(fā)展,人類的生產、生活越來越離不開信息。誰擁有了更多更有效的信息,誰就將在競爭中處于有利地位。信息產業(yè)正在成為一個國家的支柱。圖書作為信息存儲及傳播的主要媒體之一,數(shù)量、規(guī)模、種類比

25、以往任何時候都大得多,不論個人還是圖書管理部門都需要使用方便而有效的方式來管理書籍。</p><p>  目前的圖書館是單一的手工檢索,出現(xiàn)了很多問題:檢索速度慢、效率低,圖書統(tǒng)計工作難、藏書更新不能及時完成,而且最重要的是借書還書的工作量之大。</p><p>  在計算機日益普及的今天,若采用一套行之有效的圖書管理系統(tǒng),會方便許多。對圖書管理部門而言,以前單一的手工檢索已不能滿足人們的

26、需求,為了便于圖書資料的管理,需要有效的圖書管理系統(tǒng)。開發(fā)圖書管理系統(tǒng)就是要采用現(xiàn)代化的信息管理方式代替手工管理方式,提高圖書管理工作效率,做到規(guī)范管理、科學統(tǒng)計和快速查詢,讓圖書館更好的為學校、社會服務。</p><p><b>  §1.2系統(tǒng)描述</b></p><p>  本次程序設計所設計的圖書館管理系統(tǒng)脫離了繁瑣的人工管理,使讀者借閱圖書更方便,

27、管理員管理圖書和讀者更快捷。該圖書管理系統(tǒng)不僅具有借書還書的基本功能,還增加了借閱管理、書籍管理、讀者管理、查詢等功能,并且附加了幫助的功能。</p><p>  書籍管理模塊:該模塊具有增加圖書和流失(刪除)圖書的功能。</p><p>  查詢模塊:該模塊具有查詢圖書、查詢讀者和查詢用戶借閱歷史的功能。其中,圖書查詢可以按圖書編號、圖書名稱、出版時間和作者名稱等方式查詢;讀者查詢可以按

28、讀者姓名和編號方式查詢;用戶借閱歷史查詢只需輸入讀者編號就可查詢到圖書編號、借書日期、還書日期和歸還類型(是否歸還)。</p><p><b>  §1.3開發(fā)環(huán)境</b></p><p>  Windows XP</p><p>  Microsoft SQL Server 2000</p><p>  Mi

29、crosoft Visual C++ 6.0</p><p><b>  第二章 需求分析</b></p><p>  §2.1 可行性分析</p><p>  進行數(shù)據(jù)庫設計之前首先必須準確了解與分析用戶需求(包括數(shù)據(jù)與處理)。需求分析是整個設計過程的基礎,是最困難、最耗費時間的一步。作為“地基”的需求分析是否做得充分與準確,決定了

30、在其上構建數(shù)據(jù)庫大廈的速度與質量。需求分析做得不好,甚至會導致整個數(shù)據(jù)庫設計返工重做。</p><p>  一個系統(tǒng)被實施或者被設計之前必然要做可行性分析,滿足可行性系統(tǒng)才能朝著設計和實施階段發(fā)展??尚行苑治霭夹g上的可行性和經濟上的可行性。該圖書管理管理系統(tǒng)完全滿足這兩種可行性。</p><p>  首先,技術上的可行性主要是分析技術條件能否順利完成開發(fā)工作,軟硬件能否滿足需要。該系統(tǒng)

31、的開發(fā)是基于Visual C++ 6.0和SQL Server 2000,這兩種軟件在前面的課程中已經被熟練掌握。Visual C++不僅可以運行程序,也可以設計出完美的界面,讀者、圖書和管理員類就是在Visual C++中定義的,顯示的界面也是在Visual C++中生成的。數(shù)據(jù)庫管理系統(tǒng)則采用SQL Server,它能夠處理大量數(shù)據(jù),同時保證數(shù)據(jù)的完整性和安全性。因此該系統(tǒng)的開發(fā)平臺已成熟可行。另一方面:硬件,在科技飛速發(fā)展的今天,

32、硬件更新速度越來越快,容量越來越大,可靠性越來越高,價格也越來越便宜,學生實驗機房所用的硬件都是經過更新的,完全能滿足該系統(tǒng)設計所需。因此硬件平臺也能夠滿足該系統(tǒng)所需。</p><p>  其次,就是經濟的可行性。鑒于計算機發(fā)展異常迅速,在軟硬件配置以及開發(fā)技術均已可行的情況下開發(fā)這樣一個圖書館管理系統(tǒng)成本不會很高,而其可以大大提高圖書館的工作效率,也是圖書館管理發(fā)展的必然趨勢,其必將有比較寬闊的市場,因此該系統(tǒng)

33、滿足經濟可行性。</p><p>  綜上所述,該圖書館管理系統(tǒng)可行。</p><p>  §2.2 數(shù)據(jù)功能圖</p><p>  圖書館管理系統(tǒng)在被證明可行之后,根據(jù)圖書館管理需求設計出如下系統(tǒng)所需功能圖。該系統(tǒng)可以實現(xiàn)五大功能:增加圖書、刪除(流失)圖書、查詢讀者、查詢圖書、查詢借閱歷史。根據(jù)這些功能設計出系統(tǒng)的功能模塊,如圖2.1所示。其中增加圖書

34、和刪除圖書是管理員的權限,讀者不享有。查詢讀者、圖書和借閱歷史讀者和管理員均享有。</p><p><b>  圖2.1功能圖</b></p><p><b>  2.3 數(shù)據(jù)流程圖</b></p><p>  由系統(tǒng)描述和系統(tǒng)功能圖可以得出系統(tǒng)的功能流圖,如下圖2.2所示。</p><p>  圖

35、2.2 數(shù)據(jù)流程圖</p><p><b>  第三章 數(shù)據(jù)庫設計</b></p><p>  §3.1 概念結構設計</p><p>  將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計。它是整個數(shù)據(jù)庫設計的關鍵。在需求分析階段所得到的應用需求應該首先抽象為信息世界的結構,才能更好地、更準確地用在某一DBMS實

36、現(xiàn)這些需求。</p><p>  描述概念模型的有力工具是E-R圖。在這里使用了E-R圖描述了圖書館管理系統(tǒng)的數(shù)據(jù)模型,將第二章的數(shù)據(jù)流圖轉換為了更好、更直觀的模式。這些E-R圖描述了各實體及其屬性、實體間的聯(lián)系等。</p><p>  圖3.1 圖書及其屬性圖</p><p>  圖3.2 讀者及其屬性圖</p><p>  圖3.3 管理

37、員及其屬性圖</p><p>  圖書、讀者、管理員各作為一個實體,圖3.1、圖3.2、圖3.3分別表示各實體及其屬性圖。圖書和讀者作為兩個獨立的實體,之間存在著‘借閱‘的聯(lián)系,同樣圖書和管理員也存在著管理的聯(lián)系。此外,借閱也可以單獨作為一個實體存在,有其自己的屬性。</p><p>  圖3.4是借閱的實體及其聯(lián)系圖。</p><p>  圖3.4 借閱(聯(lián)系)及

38、其屬性</p><p>  讀者和圖書之間存在著借閱的聯(lián)系,讀者和管理員之間存在著管理的聯(lián)系,由這三個實體及其屬性圖和三者之間的聯(lián)系,可以得到實體及其聯(lián)系圖,如圖3.5和3.6所示。讀者和圖書之間存在多對多的關系,管理員和圖書之間也是多對多的關系。</p><p>  圖3.5 讀者、圖書及其聯(lián)系圖</p><p>  圖3.6 管理員、圖書及其聯(lián)系圖</p&

39、gt;<p>  §3.2 邏輯結構設計</p><p>  概念結構是獨立于任何一種數(shù)據(jù)模型的信息結構。邏輯結構設計的任務就是把概念結構設計階段設計好的基本E-R圖轉換為與選用的DBMS產品所支持的數(shù)據(jù)模型相符合的邏輯結構。數(shù)據(jù)庫邏輯結構設計是總體設計階段非常重要的環(huán)節(jié),好的邏輯結構可以簡化開發(fā)過程,使系統(tǒng)功能更加清晰明確。因為數(shù)據(jù)庫邏輯結構的變化會造成編碼的改動,所以必須認真地設計數(shù)據(jù)

40、庫邏輯結構后在進行編碼,從而避免了無謂的重復工作。目前DBMS產品一般支持關系、網(wǎng)狀、層次三種模型中的一種,本次課程設計選用的是關系模型。</p><p>  E-R圖向關系模型轉換要解決的問題是如何將實體型和實體間的聯(lián)系轉換為關系模式,如何確定這些關系模式的屬性和碼。實體圖書、讀者、管理員之間的關系如圖3.5和3.6所示,兩兩實體之間存在的是多對多的關系,所以在概念結構設計的基礎上,將兩圖轉換為如下關系模式,整

41、個系統(tǒng)所包含的信息有圖書信息、讀者信息、管理員信息和借閱信息,這些關系模式如下所示:</p><p>  圖書(書號,書名,作者,出版社,價格,出版日期,分類,條形碼,備注,ISBN,數(shù)量)</p><p>  Bookinfo(ID,Name,Auther,Pubname,Price,PubDate,Sort,Barcode,Info,ISBN,Counts)</p>&l

42、t;p>  讀者(借閱證號,姓名,性別,密碼,Email,可借數(shù)量)</p><p>  User(ID,Name,Sex,Password,Email,Countable)</p><p>  管理員(編號,姓名,密碼,性別)</p><p>  Manager(ID,Name,Password,Sex)</p><p>  借閱(圖

43、書號,借閱證號,借書日期,還書日期,還書狀態(tài),罰金)</p><p>  Lendinfo(BookID,UserID,LendDate,ReturnDate,IsBack,F(xiàn)ee)</p><p>  注:這些關系模式均為優(yōu)化后的數(shù)據(jù)模型,帶下劃線表示主鍵。</p><p>  §3.3 物理結構設計</p><p>  數(shù)據(jù)庫在

44、物理設備上的存儲結構與存取方法成為數(shù)據(jù)庫的物理結構,它依賴于選定的數(shù)據(jù)庫管理系統(tǒng)。為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應用要求的物理結構的過程,就是數(shù)據(jù)庫的物理設計。以下就是在關系模式的基礎上,由優(yōu)化后的關系模型轉化為合理的物理存儲結構,基本信息表如下表所示。</p><p>  數(shù)據(jù)庫的物理設計通常分為兩步:</p><p>  (1)確定數(shù)據(jù)庫的物理結構,在關系數(shù)據(jù)庫中主要指存取方法

45、和存儲結構;</p><p> ?。?)對物理結構進行評價,評價的重點是時間和空間的效率。</p><p>  評價結果滿足原設計要求,可進入到物理實施階段。</p><p>  圖書基本信息存放在BookInfo表中,位置是LIB;用戶基本信息存放在Users表中,位置是LIB;管理員基本信息存放在Manager表中,位置LIB;借閱基本信息存放在LendInfo

46、表中,位置是LIB。</p><p>  在對時間效率、空間效率、維護代價和各種用戶要求進行權衡之后,選擇了一個較優(yōu)的方案作為作為數(shù)據(jù)庫的物理結構,該結構符合用戶需求。</p><p>  表3.1 圖書基本信息表</p><p>  表3.2 用戶基本信息表</p><p>  表3.3 管理員基本信息表</p><p&

47、gt;  表3.4 借閱基本信息表</p><p><b>  第四章 數(shù)據(jù)庫實施</b></p><p>  完成數(shù)據(jù)庫的物理設計之后,就要用RDBMS提供的數(shù)據(jù)定義語言和其它應用程序將數(shù)據(jù)庫邏輯設計和物理設計結果嚴格描述出來,成為DBMS可以接受的源代碼,再經過調試產生目標模式。然后就可以組織數(shù)據(jù)入庫了,這就是數(shù)據(jù)庫實施階段。</p><p&g

48、t;  §4.1相關SQL語句</p><p>  數(shù)據(jù)庫實施有兩項重要的工作,一項是數(shù)據(jù)的載入,另一項是應用程序的編碼和調試。本次課程設計采用SQL語句與C++編碼連接的方式實現(xiàn)數(shù)據(jù)的載入以及程序的運行。以下是部分相關SQL語句,相關的C++編碼在4.2中有部分補充。</p><p>  §4.1.1創(chuàng)建數(shù)據(jù)庫名為LIB的數(shù)據(jù)庫</p><p>

49、;  CREATE DATABASE LIB --創(chuàng)建數(shù)據(jù)庫名為LIB</p><p>  §4.1.2創(chuàng)建基本信息表</p><p>  1 創(chuàng)建BookInfo表:</p><p>  CREATE TABLE BookInfo</p><p><b>  ( </b></p><p&

50、gt;  ID varchar(10) ,</p><p>  Name varchar(100) ,</p><p>  Sort varchar(100),</p><p>  Counts int check(counts>=0),--存書數(shù)量</p><p>  PubName varchar(100) ,</p>

51、<p>  Author varchar(50) ,</p><p>  ISBN varchar(50) ,</p><p>  PubDate smalldatetime ,</p><p>  Price float(8) ,</p><p>  Barcode varchar(50), --條形碼的值</p>

52、<p>  Info varchar(200), --書的信息或簡要說明</p><p>  primary key(ID)</p><p><b>  )</b></p><p>  2 創(chuàng)建Users表:</p><p>  CREATE TABLE Users</p><p>&

53、lt;b>  (</b></p><p>  ID varchar(10) ,</p><p>  Name varchar(20) not null,</p><p>  Sex char(2) check(sex in('男','女','F','M')),</p>

54、<p>  Password varchar(10) ,</p><p>  Email varchar(50) ,</p><p>  Countable int check(countable<=20 and countable>=0) default 5,--可借書的數(shù)量</p><p>  Forfeit int check(Forfe

55、it in(0,1)) default 0,</p><p>  Primary key(ID)</p><p><b>  )</b></p><p>  3 創(chuàng)建Manager表:</p><p>  CREATE Table Manager</p><p><b>  (</

56、b></p><p>  ID varchar(10) ,</p><p>  Name varchar(20) not null unique,</p><p>  Sex varchar(4),</p><p>  Password varchar(10) not null,</p><p>  primar

57、y key(ID)</p><p><b>  )</b></p><p>  §4.1.3創(chuàng)建觸發(fā)器</p><p>  本系統(tǒng)創(chuàng)建了三個觸發(fā)器,它們分別實現(xiàn)增加圖書、刪除圖書、統(tǒng)計圖書可借數(shù)量的功能。其代碼如下。</p><p>  1 創(chuàng)建增加圖書的觸發(fā)器</p><p>  CR

58、EATE TRIGGER BookidChange</p><p>  ON BOOKINFO</p><p>  AFTER UPDATE</p><p><b>  AS</b></p><p>  IF UPDATE(ID)</p><p><b>  BEGIN</b>

59、;</p><p>  DECLARE @book_id as varchar</p><p>  DECLARE @old_book_id as varchar</p><p>  SELECT @book_id=(select Id from inserted)</p><p>  SELECT @old_book_id =(select

60、 id from deleted)</p><p>  Update LENDINFO</p><p>  SET LENDINFO.bookid=@book_id</p><p>  WHERE LENDINFO.bookid =@old_book_id</p><p><b>  END</b></p>

61、<p>  2 創(chuàng)建刪除圖書的觸發(fā)器</p><p>  create trigger deletebook</p><p>  on bookinfo instead of delete</p><p><b>  as</b></p><p>  delete from lendinfo where us

62、erid in (select ID from deleted)</p><p>  delete from bookinfo where id in (select ID from deleted)</p><p>  3 創(chuàng)建統(tǒng)計圖書可借數(shù)量的觸發(fā)器</p><p>  create trigger usercountable </p><p

63、>  on lendinfo after insert</p><p><b>  as</b></p><p>  update users set countable=countable-1 where ID in (select userid from inserted)</p><p>  --借書后用戶的可錯數(shù)量減一</p

64、><p><b>  §4.2 查詢模塊</b></p><p>  §4.2.1 查詢圖書</p><p><b>  1 按圖書編號查詢</b></p><p>  例如,查詢編號100004的圖書,界面如圖4.1所示:</p><p>  圖4.1 查詢

65、圖書編號界面</p><p><b>  源代碼:</b></p><p>  #include "SearchBID.h"</p><p>  CSearchBID::CSearchBID(CWnd* pParent /*=NULL*/)</p><p>  : CDialog(CSearchBID

66、::IDD, pParent)</p><p>  {} /*建立圖書編號查詢類*/</p><p>  void CSearchBID::Refresh_Data()</p><p><b>  {</b></p><p>  CString cSource;</p><p>  cSourc

67、e="select * from bookinfo where ID='"+ m_ID +"'";</p><p><b>  }</b></p><p>  void CSearchBID::OnOK() </p><p><b>  {</b></p>

68、<p>  Refresh_Data();</p><p>  if(m_ID=="")</p><p><b>  {</b></p><p>  MessageBox("輸入要查詢的條件","提示",MB_OK);</p><p><b&

69、gt;  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  2 按圖書名稱</b></p><p>  例如,查詢圖書名稱為數(shù)據(jù)結構的圖書,界面如圖4.2所示:</p>

70、<p>  圖4.2 查詢圖書名稱界面</p><p><b>  3 按作者名稱</b></p><p>  例如,查詢作者為無名的圖書,界面如圖4.3所示:</p><p>  圖4.3 查詢圖書作者界面</p><p><b>  源代碼:</b></p><p

71、>  #include "SearchBA.h"</p><p>  CSearchBA::CSearchBA(CWnd* pParent /*=NULL*/)</p><p>  : CDialog(CSearchBA::IDD, pParent)</p><p><b>  {}</b></p>&l

72、t;p>  void CSearchBA::Refresh_Data()</p><p><b>  {</b></p><p>  CString cSource;</p><p>  cSource="select * from bookinfo where Author='"+ m_Author +&qu

73、ot;'";</p><p><b>  }</b></p><p>  void CSearchBA::OnOK() </p><p><b>  {</b></p><p>  Refresh_Data();</p><p>  if(m_Author=

74、="")</p><p><b>  {</b></p><p>  MessageBox("輸入要查詢的條件","提示",MB_OK);</p><p><b>  return;</b></p><p><b>  }<

75、/b></p><p><b>  }</b></p><p><b>  4 按出版日期</b></p><p>  例如,查詢20011-10-01出版的圖書,界面如圖4.4所示:</p><p>  圖4.4 查詢圖書出版時間界面</p><p>  #inclu

76、de "SearchBD.h"</p><p>  CSearchBD::CSearchBD(CWnd* pParent /*=NULL*/)</p><p>  : CDialog(CSearchBD::IDD, pParent)</p><p><b>  {}</b></p><p>  voi

77、d CSearchBD::Refresh_Data()</p><p><b>  {</b></p><p>  CString cSource;</p><p>  cSource="select * from bookinfo where PubDate='"+ m_PubDate +"'&q

78、uot;;</p><p><b>  }</b></p><p>  void CSearchBD::OnOK() </p><p><b>  {</b></p><p>  if(m_PubDate=="")</p><p><b>  {

79、</b></p><p>  MessageBox("輸入要查詢的條件","提示",MB_OK);</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b&g

80、t;</p><p><b>  5 按出版社名稱</b></p><p>  例如,查詢清華大學出版社出版的圖書,界面如圖4.5所示:</p><p>  圖4.5 查詢圖書出版社界面</p><p>  §4.2.2 查詢讀者</p><p><b>  1 按讀者編號&l

81、t;/b></p><p>  例如,查詢編號為10003的讀者,假面如圖4.6所示:</p><p>  圖4.6 查詢讀者編號界面</p><p>  #include "SearchByID.h"</p><p>  CSearchByID::CSearchByID(CWnd* pParent /*=NULL*

82、/)</p><p>  : CDialog(CSearchByID::IDD, pParent)</p><p><b>  {}</b></p><p>  void CSearchByID::Refresh_Data()</p><p><b>  {</b></p><p

83、>  CString cSource;</p><p>  cSource="select * from Users where ID='"+ m_ID +"'";</p><p><b>  }</b></p><p>  void CSearchByID::OnOK() <

84、/p><p><b>  {</b></p><p>  Refresh_Data();</p><p>  if(m_ID=="")</p><p><b>  {</b></p><p>  MessageBox("輸入要查詢的條件:用戶ID&q

85、uot;,"提示",MB_OK);</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  2 按讀者姓名</b></p>

86、;<p>  例如,查詢姓名為刁姍姍的讀者,界面如圖4.7所示:</p><p>  圖4.7 查詢讀者姓名界面</p><p>  §4.3.3 查詢用戶借閱歷史</p><p>  例如,查詢編號為10005的讀者,界面如圖4.8所示:</p><p>  圖4.8 查詢讀者編號界面</p><

87、p>  §4.3書籍管理模塊</p><p>  §4.3.1 增加圖書</p><p>  例如,圖書館里原本沒有編號為100008的圖書,界面如圖4.9顯示:</p><p>  圖4.9 插入圖書前界面</p><p>  插入界面如圖4.10所示:</p><p>  圖4.10 插入

88、圖書界面</p><p>  插入后再查詢,圖書館存在編號為100008的圖書,界面如圖4.11所示:</p><p>  圖4.11 插入圖書后界面</p><p><b>  源代碼:</b></p><p>  void CBookInfoDlg::OnOK() </p><p><b

89、>  {</b></p><p>  UpdateData(TRUE); </p><p>  if (m_ID == "")</p><p><b>  {</b></p><p>  MessageBox("請輸入圖書編號");</p><

90、p><b>  return;</b></p><p><b>  }</b></p><p>  if (m_Name == "")</p><p>  {MessageBox("請輸入圖書名稱");</p><p><b>  return

91、; }</b></p><p>  CBook book;</p><p>  book.setID(m_ID);</p><p>  book.setName(m_Name);</p><p>  book.setSort(m_Sort);</p><p>  book.setAuthor(m_Autho

92、r);</p><p>  book.setBarcode(m_Barcode);</p><p>  book.setInfo(m_Info);</p><p>  book.setISBN(m_ISBN);</p><p>  book.setPubDate(m_PubDate);</p><p>  book.s

93、etPubName(m_PubName);</p><p>  book.setCounts(m_Counts);</p><p>  book.setPrice(m_Price);</p><p>  if(m_ID!=""&&m_Name!=""&&m_Counts>0&&am

94、p;m_Counts<20)</p><p><b>  {</b></p><p>  book.sql_insert();</p><p>  MessageBox("插入成功",MB_OK);</p><p>  CDialog::OnOK();</p><p>&

95、lt;b>  }</b></p><p><b>  }</b></p><p>  §4.3.2 刪除圖書</p><p>  建立在4.11的基礎上,現(xiàn)在圖書館里存在100008號圖書,下面將100008號圖書刪除,界面如圖4.12所示:</p><p>  圖4.12 刪除(掛失)100

96、008號圖書</p><p>  下面從書庫里查詢100008號圖書,查詢結果如圖2所示,100008號圖書已被刪除:</p><p>  圖4.13 查詢無100008號圖書</p><p><b>  源代碼:</b></p><p>  void CDeleteBookDlg::OnOK() </p>

97、<p><b>  {</b></p><p>  CBook book;</p><p>  UpdateData(true);</p><p>  if(m_BookID=="")</p><p><b>  {</b></p><p> 

98、 MessageBox("輸入要刪除的讀者的編號");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  book.sql_delete(m_BookID);</p><p>  MessageBox("掛失

99、成功","提示");</p><p>  CDialog::OnOK();</p><p><b>  }</b></p><p><b>  第五章 軟件測試</b></p><p>  在原有系統(tǒng)的數(shù)據(jù)有一小部分已輸入數(shù)據(jù)庫后,就可以開始對數(shù)據(jù)庫系統(tǒng)進行聯(lián)合調試,這

100、又稱為數(shù)據(jù)庫的試運行。這一階段要實際運行數(shù)據(jù)庫應用程序,執(zhí)行對數(shù)據(jù)庫的各種操作,測試應用程序的功能是否滿足設計要求,如果不滿足,對應用程序各部分則要修改、調整,直到達到設計要求為止。</p><p>  為了設計出有效地測試方案按照下面準則進行測試:所有測試都應追溯到用戶需求;在完成了需求模型就要著手制定測試計劃,在編碼之前對所有測試工作進行計劃和設計;從小模塊開始逐步進行大模塊測試,通常先重點測試單個程序模塊再

101、轉向集合的模塊;精心設計測試方案,盡可能充分覆蓋程序邏輯使之達到要求的可靠性。</p><p><b>  §5.1模塊測試</b></p><p>  5.1.1書籍管理模塊測試</p><p>  表5.1 書籍管理模塊測試表</p><p>  5.1.2查詢模塊測試</p><p&g

102、t;  表5.2 查詢模塊測試表</p><p><b>  5.2結果分析</b></p><p>  經過測試之后,證明所設計圖書館管理系統(tǒng)在書籍管理和查詢兩個模塊試運行正常:</p><p>  1.可以實現(xiàn)需求分析中的全部操作,且程序運行正常。</p><p>  2.這個圖書館管理系統(tǒng)不僅可以實現(xiàn)基本的圖書借閱

103、,而且能夠遠程操作,讀者可以在網(wǎng)上查閱圖書信息,管理員可以自主增刪圖書,讀者和管理員還可以查詢用戶借閱歷史。</p><p><b>  設計總結</b></p><p>  在Windows XP開發(fā)環(huán)境下,運用Visual C++編程語言和SQL Server數(shù)據(jù)庫完成了圖書館管理系統(tǒng)。系統(tǒng)基本上實現(xiàn)了預期的各項功能,達到了任務書中的主要設計內容的各項任務,整個系

104、統(tǒng)也在經過測試和不斷地改正之后能夠順利運行。以面向對象的分析系統(tǒng)需求,建立模型和設計實現(xiàn),系統(tǒng)基本實現(xiàn)了圖書信息的錄入和修改和讀者借、還的功能。讀者與管理員通過界面對象調用控制類對象,控制對象進行各種操作并把信息寫入數(shù)據(jù)庫?;旧蠈崿F(xiàn)了需求分析中應該實現(xiàn)的功能:</p><p>  1.書籍管理--能夠按要求自主添加圖書和刪除圖書</p><p>  2.查詢—可以有不同的方式查詢圖書、讀

105、者,還可以查詢讀者借閱歷史</p><p>  還有就是系統(tǒng)在一些信息設置的細節(jié)上還存在不足,可以對系統(tǒng)的相關字段進行格式設置和異常處理,使數(shù)據(jù)更加規(guī)范化。系統(tǒng)只是簡單基本實現(xiàn)了圖書信息錄入修改和讀者借、還等功能,在應用中還需要不斷修改和完善。</p><p>  其次,本系統(tǒng)只對傳統(tǒng)書籍進行了最基本的管理,隨著計算機技術的飛速發(fā)展,應將各個圖書館的圖書進行聯(lián)網(wǎng)交流,使讀者可以遠程查詢圖書

106、館的藏書等信息,還應開發(fā)對電子書的管理,形成網(wǎng)上圖書資源共享平臺,使讀者可以在線閱讀電子書資料,并設置用戶權限,使管理員可以上傳圖書資料信息,高級用戶可以下載網(wǎng)上電子書資源,從而實現(xiàn)信息資源最大化被共享。</p><p><b>  學習體會</b></p><p>  這一次課程設計與以往最大的不同便是有了界面,有了數(shù)據(jù)庫。通過近一個學期對數(shù)據(jù)庫的學習,在一些方面有

107、了提高。以前遙不可及的界面操作變成了現(xiàn)實。這一學期所學到的很多東西都通過這次課程設計顯示了出來,派上了用場。通過此次課程設計對數(shù)據(jù)庫在應用程序中起得作用有了深刻的了解,這些東西都是課本上學不來的。將課本上學的東西運用到實際當中去收獲的不僅僅是一份課程設計,更是對自己將來所要從事的事業(yè)的了解以及自信心。</p><p>  圖書管理系統(tǒng)在校園和很多企業(yè)都是常用的工具軟件。選擇這個題目,一方面是由于課本上這方面的東西

108、多一點,理解起來比較容易,另一方面,自己經常到圖書館借書,對這一方面比較了解,這樣需求分析做起來相對簡單,系統(tǒng)做起來更貼近實際。</p><p>  由于這個學期才開始學習數(shù)據(jù)庫,在編寫代碼的過程中遇到了很多很多的難題。有的時候甚至想要放棄,但最終還是堅持了下來,并將困難解決掉。而且積累了一點經驗,做之前先想好要做什么,把大體的各個功能界面畫出來,做得過程中照著先前設計的界面去做,這樣思維不會短路,不會有的時候感

109、覺做不下去了。遇到問題的時候要多想想為什么,先想想自己該怎樣去解決,如果實在想不出來可以到網(wǎng)上去搜搜看,因為網(wǎng)絡資源很豐富,十之八九可以幫你解決掉。做得時候先把各個功能模塊做出來再考慮怎樣去美化界面。美化界面見人見智,也有一定的難度。其實我們平時用得狠多軟件都為你設計界面提供了很多思路。如果不太會處理可以跟著它們學。一般做得沒有那么美觀,但最做起碼不會讓你不知所措。在以后遇到自己感到很漂亮的界面時,認真想想是怎樣做出來的,總結一下,這樣

110、會讓自己有不小的收獲。</p><p>  總結一下,感覺這次課程設計在幾個方面還是做得不錯的。首先,與同組者協(xié)作很順利。課程設計中肯定會遇見意見不統(tǒng)一的時候,這時候如果兩個人都堅持自己的意見肯定不行,所以需要接受對方的意見,正是因為如此我們這次的課程設計才會很成功。其次,基礎很好。大一時候就接觸了C語言,對編程環(huán)境和語言都比較熟悉,在編程方面也很擅長,也比較喜歡。半年的SQL的學習是我對SQL運行環(huán)境也很熟悉,

111、這期間老師也對課程設計有了不少的教學,是我提前對該系統(tǒng)有了很多了解。最后,就是頁面的設計。之前上過頁面設計的公選課,對頁面設計有一定的掌握,也比較愛好,因此頁面設計這一塊也感覺得心應手。</p><p>  當然有寫地方做得也不太好。主要是數(shù)據(jù)統(tǒng)計,應該多一些數(shù)據(jù)統(tǒng)計,例如某個季度的借書情況、一個星期中平均那天什么時候借書的人最多、以及各類圖書的借閱情況與庫存數(shù)量的比之等。這些應該都是很有意義的數(shù)據(jù)。然而由于時間

112、限制沒有來得及實現(xiàn)。再有,有些地方做得還是不夠精細,在彈出的對話框中并不是作用的按鈕都是要用到的,對用不到的按鈕應該隱藏等。</p><p>  通過此次數(shù)據(jù)庫的課程設計,真正達到了學與用的結合,增強了對數(shù)據(jù)庫方面應用的理解,對自己今后參與開發(fā)數(shù)據(jù)庫系統(tǒng)積累了不少經驗,在實驗過程中,從建立數(shù)據(jù)開始,對靈據(jù)庫設計理念及思想上有更高的認識,從需求分析,到概念設計和邏輯設計,E-R圖的表示,數(shù)據(jù)字典的創(chuàng)建,懂得了不少有

113、關數(shù)據(jù)庫開發(fā)過程中的知識,在實驗中建表,及其關系模式,關系代數(shù)的建立及理解,將SQL語的查詢語句用得淋漓盡致,增強了自己在數(shù)據(jù)庫中應用SQL語言的靈活性,其中包括,插入、刪除、修改、查詢,牽涉表和表之間的聯(lián)系,主建與外主鍵的定義,約束項的設置,使邏輯更嚴密,在學習過程中,我也能過上網(wǎng)查了不少資料,也看了一些別人設計的圖書館管理信息系統(tǒng)的設計報告,學以致用,自我創(chuàng)新,獨立完成了這份自己的報告,從中在學到用,從用又到學,不斷修改,系統(tǒng)更新。

114、雖然不能達到完善系統(tǒng),但也做到了盡善盡美,加強理論學習對完善系統(tǒng)會有很多幫助,不管怎么說,對這次做的課程設計自己覺得還算滿意 </p><p><b>  。</b></p><p><b>  6.課程設計評分表</b></p><p>  課程名稱: 圖書館管理系統(tǒng) </p><p&

溫馨提示

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

評論

0/150

提交評論