2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

2、  班 級 信息管理1202班 </p><p>  學(xué) 號 </p><p>  姓 名 </p><p>  指導(dǎo)教師 </p

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

4、lt;/p><p>  學(xué)生姓名 </p><p>  學(xué) 號 </p><p>  指導(dǎo)老師 </p><p>  審 批 </p><p&g

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

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

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

8、t;/p><p> ?。?)能對各類讀者的權(quán)限(有效性、最大借書數(shù)目和借書期限等)和超期罰款金額進(jìn)行設(shè)置。</p><p>  數(shù)據(jù)庫中表的參考結(jié)構(gòu)(注:僅供參考)</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>  高校學(xué)生成績管理信息系統(tǒng)</p><p><b>  系統(tǒng)功能設(shè)計(jì)</b></p><p>  系統(tǒng)采用模塊化程序設(shè)計(jì)方法,便于系統(tǒng)功能的各種組合和修改,系統(tǒng)應(yīng)具備數(shù)據(jù)庫維護(hù)功能,及時(shí)根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加、修改、刪除、查詢、備份等操

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

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

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

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

15、p><p> ?。?)總體設(shè)計(jì)方案的分析、比較和論證。</p><p> ?。?)數(shù)據(jù)庫的建立,數(shù)據(jù)庫中表的結(jié)構(gòu),各表中關(guān)鍵字的設(shè)置,表與表之間的關(guān)系。</p><p>  (5)應(yīng)用程序各功能模塊和報(bào)表的設(shè)計(jì)。</p><p> ?。?)編寫代碼、上機(jī)輸入、調(diào)試、修改并運(yùn)行通過。</p><p> ?。?)編寫課程設(shè)計(jì)說

16、明書。說明書是總結(jié)性的技術(shù)文件,應(yīng)全面敘述整個(gè)設(shè)計(jì)的內(nèi)容及過程(可參考上述6條),發(fā)現(xiàn)的問題及解決方法等。</p><p>  (8)源代碼和參考書目應(yīng)作為說明書的附錄。</p><p> ?。?)說明書應(yīng)采用A4紙張,文字說明不少于5000字。說明書中應(yīng)包括系統(tǒng)結(jié)構(gòu)示意圖。</p><p><b>  二、進(jìn)度安排</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設(shè)計(jì)背景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ù)庫設(shè)計(jì)4</p><p>  §3.1 概念結(jié)構(gòu)設(shè)計(jì)4</p><p>  §3.2 邏輯結(jié)構(gòu)設(shè)計(jì)7</p><p>  §3.3 物理結(jié)構(gòu)設(shè)計(jì)7</

20、p><p>  第四章 數(shù)據(jù)庫實(shí)施10</p><p>  §4.1相關(guān)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結(jié)果分析21</p><p><b>  設(shè)計(jì)總結(jié)22</b></p><p><b>  學(xué)習(xí)體會(huì)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設(shè)計(jì)背景</b></p><p>  隨著社會(huì)的發(fā)展,人類的生產(chǎn)、生活越來越離不開信息。誰擁有了更多更有效的信息,誰就將在競爭中處于有利地位。信息產(chǎn)業(yè)正在成為一個(gè)國家的支柱。圖書作為信息存儲及傳播的主要媒體之一,數(shù)量、規(guī)模、種類比

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

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

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

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>  進(jìn)行數(shù)據(jù)庫設(shè)計(jì)之前首先必須準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。需求分析是整個(gè)設(shè)計(jì)過程的基礎(chǔ),是最困難、最耗費(fèi)時(shí)間的一步。作為“地基”的需求分析是否做得充分與準(zhǔn)確,決定了

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

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

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

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

34、和刪除圖書是管理員的權(quán)限,讀者不享有。查詢讀者、圖書和借閱歷史讀者和管理員均享有。</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ù)庫設(shè)計(jì)</b></p><p>  §3.1 概念結(jié)構(gòu)設(shè)計(jì)</p><p>  將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(jié)構(gòu)設(shè)計(jì)。它是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵。在需求分析階段所得到的應(yīng)用需求應(yīng)該首先抽象為信息世界的結(jié)構(gòu),才能更好地、更準(zhǔn)確地用在某一DBMS實(shí)

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

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

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

39、gt;<p>  §3.2 邏輯結(jié)構(gòu)設(shè)計(jì)</p><p>  概念結(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)。數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)是總體設(shè)計(jì)階段非常重要的環(huán)節(jié),好的邏輯結(jié)構(gòu)可以簡化開發(fā)過程,使系統(tǒng)功能更加清晰明確。因?yàn)閿?shù)據(jù)庫邏輯結(jié)構(gòu)的變化會(huì)造成編碼的改動(dòng),所以必須認(rèn)真地設(shè)計(jì)數(shù)據(jù)

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

41、個(gè)系統(tǒng)所包含的信息有圖書信息、讀者信息、管理員信息和借閱信息,這些關(guān)系模式如下所示:</p><p>  圖書(書號,書名,作者,出版社,價(jià)格,出版日期,分類,條形碼,備注,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>  注:這些關(guān)系模式均為優(yōu)化后的數(shù)據(jù)模型,帶下劃線表示主鍵。</p><p>  §3.3 物理結(jié)構(gòu)設(shè)計(jì)</p><p>  數(shù)據(jù)庫在

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

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

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

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

48、t;  §4.1相關(guān)SQL語句</p><p>  數(shù)據(jù)庫實(shí)施有兩項(xiàng)重要的工作,一項(xiàng)是數(shù)據(jù)的載入,另一項(xiàng)是應(yīng)用程序的編碼和調(diào)試。本次課程設(shè)計(jì)采用SQL語句與C++編碼連接的方式實(shí)現(xiàn)數(shù)據(jù)的載入以及程序的運(yùn)行。以下是部分相關(guān)SQL語句,相關(guān)的C++編碼在4.2中有部分補(bǔ)充。</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)建了三個(gè)觸發(fā)器,它們分別實(shí)現(xiàn)增加圖書、刪除圖書、統(tǒng)計(jì)圖書可借數(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)計(jì)圖書可借數(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>  --借書后用戶的可錯(cuò)數(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ù)結(jié)構(gòu)的圖書,界面如圖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 查詢圖書出版時(shí)間界面</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>  例如,查詢清華大學(xué)出版社出版的圖書,界面如圖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的基礎(chǔ)上,現(xiàn)在圖書館里存在100008號圖書,下面將100008號圖書刪除,界面如圖4.12所示:</p><p>  圖4.12 刪除(掛失)100

96、008號圖書</p><p>  下面從書庫里查詢100008號圖書,查詢結(jié)果如圖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("輸入要?jiǎng)h除的讀者的編號");</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)進(jìn)行聯(lián)合調(diào)試,這

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

101、轉(zhuǎn)向集合的模塊;精心設(shè)計(jì)測試方案,盡可能充分覆蓋程序邏輯使之達(dá)到要求的可靠性。</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結(jié)果分析</b></p><p>  經(jīng)過測試之后,證明所設(shè)計(jì)圖書館管理系統(tǒng)在書籍管理和查詢兩個(gè)模塊試運(yùn)行正常:</p><p>  1.可以實(shí)現(xiàn)需求分析中的全部操作,且程序運(yùn)行正常。</p><p>  2.這個(gè)圖書館管理系統(tǒng)不僅可以實(shí)現(xiàn)基本的圖書借閱

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論