軟件工程課程設(shè)計(jì)--圖書(shū)借閱管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩32頁(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、<p>  軟件工程概論實(shí)驗(yàn)手冊(cè)</p><p>  實(shí)驗(yàn)題目:圖書(shū)借閱管理系統(tǒng)</p><p><b>  學(xué)院 :計(jì)算機(jī)</b></p><p>  專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù)</p><p><b>  姓名: </b></p><p><b> 

2、 班級(jí): </b></p><p><b>  學(xué)號(hào):</b></p><p><b>  圖書(shū)借閱管理系統(tǒng)</b></p><p><b>  實(shí)驗(yàn)?zāi)康模?lt;/b></p><p>  通過(guò)獨(dú)立完成項(xiàng)目分析,加深對(duì)軟件開(kāi)發(fā)分析過(guò)程的流程和方法的理解,建<

3、;/p><p>  立軟件工程的思想,同時(shí),明確軟件開(kāi)發(fā)的成本和時(shí)間管理的相關(guān)概念。</p><p><b>  實(shí)驗(yàn)要求:</b></p><p>  該系統(tǒng)要求能夠具有圖書(shū)管理和會(huì)員管理的功能,并且能夠具有增加圖書(shū)、查詢(xún)圖書(shū)、刪除圖書(shū)、圖書(shū)借閱——借書(shū)、還書(shū)的功能,還具有增加會(huì)員、查詢(xún)會(huì)員、刪除會(huì)員、借書(shū)信息等功能。</p>&l

4、t;p><b>  實(shí)驗(yàn)內(nèi)容:</b></p><p>  1. 建立系統(tǒng)的分析模型。</p><p>  2. 對(duì)系統(tǒng)進(jìn)行需求分析,掌握ER圖、DFD、DD的設(shè)計(jì)與編寫(xiě)</p><p>  3. 熟悉Visio環(huán)境和基本操作,制作一個(gè)簡(jiǎn)單的系統(tǒng)流程圖和數(shù)據(jù)流圖、主要數(shù)據(jù)項(xiàng)的數(shù)據(jù)字典描述及主要加工的邏輯說(shuō)明(自己選擇結(jié)構(gòu)語(yǔ)言、判定樹(shù)、判定

5、表等)。</p><p>  4.撰寫(xiě)需求分析規(guī)格說(shuō)明書(shū)</p><p><b>  主要模塊:</b></p><p><b>  1.系統(tǒng)分析</b></p><p>  2.需求分析 (數(shù)據(jù)流圖 數(shù)據(jù)字典等內(nèi)容)</p><p>  3.概要設(shè)計(jì):(設(shè)計(jì)目標(biāo) 軟件結(jié)構(gòu)圖

6、和層次圖等內(nèi)容)</p><p>  4.詳細(xì)設(shè)計(jì):(程序流程圖 判定樹(shù)以及詳細(xì)設(shè)計(jì)說(shuō)明等內(nèi)容)</p><p>  5.編碼:(各模塊核心代碼)</p><p>  6.測(cè)試:(測(cè)試方法和測(cè)試用例等)</p><p>  7.UML建模:(類(lèi)圖 用例圖)</p><p><b>  8.總結(jié)</b&g

7、t;</p><p>  第一部分--系統(tǒng)分析</p><p><b>  1.1系統(tǒng)目標(biāo)</b></p><p>  方便圖書(shū)館管理人員對(duì)圖書(shū)和用戶(hù)信息的管理,能夠輕松快捷的管理借閱事務(wù),同時(shí)也方便讀者隨時(shí)隨地的對(duì)圖書(shū)進(jìn)行查詢(xún)等。</p><p><b>  1.2功能實(shí)現(xiàn)</b></p&g

8、t;<p>  1)性能:會(huì)員信息、圖書(shū)信息的數(shù)據(jù)庫(kù)錄入;會(huì)員信息、圖書(shū)信息的增加、刪除、修改及查詢(xún);圖書(shū)借閱;圖書(shū)借閱信息的記錄及查詢(xún)。</p><p>  2)輸入:會(huì)員信息,圖書(shū)信息。</p><p>  3)輸出:會(huì)員信息,圖書(shū)信息,借閱信息、借閱證。</p><p>  4)基本的數(shù)據(jù)流程和處理流程:</p><p>

9、  圖1-2-4 基本數(shù)據(jù)和處理流程</p><p>  5)安全與保密要求:登錄系統(tǒng)時(shí),需驗(yàn)證身份和密碼;不同身份的登錄者,具有不同的使用權(quán)限。</p><p>  1.3系統(tǒng)可行性分析</p><p>  可行性分析是為了清除的了解系統(tǒng)開(kāi)發(fā)是否能夠?qū)嶋H進(jìn)行,是否能夠帶來(lái)一定效益,是否值得實(shí)現(xiàn)。因而進(jìn)行可行性分析是非常必要的,從下面幾個(gè)方面來(lái)進(jìn)行分析。</p

10、><p>  技術(shù)可行性:設(shè)置不同權(quán)限,提高了數(shù)據(jù)的安全性;能夠提高處理速度,方便管理查詢(xún)和借閱等事務(wù)。 </p><p>  運(yùn)行可行性:本系統(tǒng)作為一個(gè)小型的圖書(shū)館信息管理系統(tǒng),所耗費(fèi)的資源非常的小。 已有軟件和硬件配置均能滿(mǎn)足需要。</p><p>  經(jīng)濟(jì)可行性:服務(wù)端及客戶(hù)端的支出使用原有設(shè)備即可。但是對(duì)軟件有一次性軟件費(fèi)用支出和定期性軟件維護(hù)支出。軟件使用

11、后,能夠減少人力的支出和維護(hù)。預(yù)計(jì)兩年之內(nèi)能夠回收投資。</p><p>  法律可行性:本軟件屬項(xiàng)目組開(kāi)發(fā),符合法律的各項(xiàng)規(guī)定。</p><p>  使用可行性:軟件針對(duì)普通的的小型圖書(shū)館,對(duì)使用人員沒(méi)有特殊限制,管理人員、各種讀者等均可使用。界面友好,操作簡(jiǎn)單,能夠保證大多數(shù)用戶(hù)使用該系統(tǒng)的要求。</p><p>  1.4 可行性研究結(jié)論</p>

12、<p>  該圖書(shū)管理系統(tǒng)不管是從技術(shù)、經(jīng)濟(jì)、社會(huì)、法律方面考慮都具有一定的可行性。因此系統(tǒng)的開(kāi)發(fā)可以立即開(kāi)始進(jìn)行。</p><p>  第二部分---需求分析 </p><p>  該系統(tǒng)要求能夠具有圖書(shū)管理和會(huì)員管理的功能,并且能夠具有增加圖書(shū)、查詢(xún)圖書(shū)、刪除圖書(shū)、圖書(shū)借閱——借書(shū)、還書(shū)的功能,還具有增加會(huì)員、查詢(xún)會(huì)員、刪除會(huì)員、借書(shū)信息等功能。</p>&l

13、t;p>  2.1需求分析: 1) 能夠輸入圖書(shū)的綜合情況和進(jìn)行新書(shū)入庫(kù)、現(xiàn)有圖書(shū)信息修改,查詢(xún)以及刪除; 2) 能夠?qū)崿F(xiàn)對(duì)會(huì)員的增加,查詢(xún),刪除,借書(shū)信息等的查詢(xún); 3) 能夠?qū)崿F(xiàn)借書(shū),還書(shū)等功能;2.2系統(tǒng)性能需求: 1) 系統(tǒng)安全、可靠; 2) 功能齊全; 3) 操作方便、界面友好; 4) 易于維護(hù)和擴(kuò)充。2.3功能需求</p><p><b>

14、  2.3.1圖書(shū)管理</b></p><p><b>  1)書(shū)籍管理</b></p><p>  ①圖書(shū)類(lèi)別管理:增、刪除、改等管理。</p><p> ?、趫D書(shū)信息管理:新書(shū)入庫(kù),圖書(shū)購(gòu)入后由圖書(shū)管理人員將書(shū)籍編碼并將其具體信息錄入書(shū)籍信息表。書(shū)籍信息修改,書(shū)籍信息由于工作人員的疏忽而出現(xiàn)錯(cuò)誤時(shí),可修改其信息。管理員按不同方式

15、查詢(xún)、統(tǒng)計(jì),讀者按不同方式查詢(xún)。</p><p>  ③出版社信息管理:增、刪除、改等管理。</p><p> ?、軋D書(shū)注銷(xiāo):某一部分圖書(shū)會(huì)隨著時(shí)間的增長(zhǎng)及知識(shí)的更新而變得不再有使用的價(jià)值,或者圖書(shū)被損壞,這些圖書(shū)就要在圖書(shū)籍信息表中的除去。即從書(shū)籍信息表中刪去此書(shū)籍記錄。</p><p><b>  2)借閱管理</b></p>

16、<p>  ①續(xù)借管理:提供讀者在符合規(guī)定的情況下網(wǎng)上續(xù)借。</p><p>  ②還書(shū)管理:根據(jù)借閱卡編號(hào)、圖書(shū)ID等,在借閱信息表中找到相應(yīng)的記錄,將借書(shū)記錄刪除,更新該記錄的相應(yīng)數(shù)據(jù)(圖書(shū)信息表)。</p><p> ?、劢钑?shū)管理:根據(jù)借閱卡編號(hào)和圖書(shū)編號(hào),進(jìn)行借書(shū)登記。在借閱信息表中插入一條借書(shū)記錄,該記錄包括讀者ID、圖書(shū)ID、借出日期、借閱編號(hào)、操作員等信息,更新該

17、記錄的相應(yīng)數(shù)據(jù)(圖書(shū)信息表)。</p><p>  2.3.2.會(huì)員管理</p><p> ?、贂?huì)員類(lèi)別信息管理:增、刪除、改等管理。</p><p> ?、跁?huì)員信息管理:辦理、掛失、暫停借、注銷(xiāo)閱卡,錄入、修改、刪除讀者信息。</p><p><b>  2.3.3功能要求</b></p><p&g

18、t;  1)系統(tǒng)管理員:驗(yàn)證用戶(hù)姓名與密碼、退出系統(tǒng)。</p><p>  2)圖書(shū)管理即實(shí)現(xiàn)圖書(shū)管理功能:添加圖書(shū)、瀏覽圖書(shū)、刪除圖書(shū)、借閱圖書(shū)。歸還圖書(shū)等。</p><p>  3)圖書(shū)類(lèi)別管理即實(shí)現(xiàn)圖書(shū)類(lèi)別管理功能:添加圖書(shū)類(lèi)別、查看圖書(shū)類(lèi)別、修改圖書(shū)類(lèi)別、刪除圖書(shū)類(lèi)別等。</p><p>  4)用戶(hù)維護(hù)即維護(hù)用戶(hù)管理:添加用戶(hù)、刪除用戶(hù)、修改用戶(hù)密碼、查看

19、用戶(hù)等</p><p>  5)查看借閱人:查看某一本書(shū)的所有借閱人的信息情況。</p><p><b>  功能模塊圖</b></p><p><b>  2.4 數(shù)據(jù)流圖</b></p><p>  數(shù)據(jù)流圖是結(jié)構(gòu)化分析的重要方法,我們對(duì)應(yīng)用的DFD經(jīng)過(guò)了一定的簡(jiǎn)化,成為一種標(biāo)準(zhǔn)化的一級(jí)流程圖(

20、1-DFD)和二級(jí)流程圖(2-DFD)。其主要作用是:便于用戶(hù)表達(dá)功能需求和數(shù)據(jù)需求及其聯(lián)系。</p><p>  2.4.1頂層數(shù)據(jù)流圖</p><p>  圖書(shū)管理系統(tǒng)的頂層數(shù)據(jù)流圖如下圖所示。</p><p>  2.4.2 一層數(shù)據(jù)流圖</p><p>  根據(jù)頂層數(shù)據(jù)流圖,繼續(xù)向下分解,得到一層數(shù)據(jù)流圖,如下圖:</p>

21、<p>  2.4.3 二層數(shù)據(jù)流圖</p><p>  由一級(jí)數(shù)據(jù)流圖繼續(xù)向下分解,可得二級(jí)數(shù)據(jù)流圖</p><p><b>  2.5.E-R圖</b></p><p>  2.5.1管理員信息實(shí)體 E-R 圖</p><p>  2.5.2會(huì)員信息E-R圖</p><p> 

22、 2.5.3書(shū)籍信息實(shí)體 E-R 圖</p><p>  2.5.4借閱信息實(shí)體E-R圖</p><p>  2.5.5總的E-R圖</p><p><b>  2.6數(shù)據(jù)字典</b></p><p>  2.6.1管理員表(tb_admin)</p><p>  描述:該表主要是存儲(chǔ)管理員的各種

23、信息,包括編號(hào)、姓名、密碼各字段。結(jié)構(gòu)如表2.6.1所示。</p><p>  表2.6.1管理員表</p><p>  2.6.2會(huì)員表(tb_reader)</p><p>  描述: 該表包含所有會(huì)員的資料,包括會(huì)員編號(hào)、姓名、性別、密碼及借書(shū)的數(shù)目和最大可借數(shù)目,系別、專(zhuān)業(yè)、年紀(jì)字段。結(jié)構(gòu)如表2.6.2所示。</p><p>  表2

24、.6.2 會(huì)員表</p><p>  2.6.3圖書(shū)信息表(tb_bookinfo)</p><p>  描述:該表是圖書(shū)借閱管理系統(tǒng)中所存儲(chǔ)的所有圖書(shū)的資料,包括圖書(shū)編號(hào)圖書(shū)名稱(chēng)、作者、出版社、價(jià)格、庫(kù)存量、可用量、借書(shū)天數(shù)、出版日期字段,結(jié)構(gòu)如表2.6.3所示。</p><p>  表2.6.3 圖書(shū)信息表</p><p>  2.6.4

25、已借圖書(shū)表(tb_outbook)</p><p>  描述:該表主要是對(duì)外借圖書(shū)的信息進(jìn)行歸總處理與顯示,方便對(duì)圖書(shū)的管理。包括借書(shū)用戶(hù)的編號(hào)、姓名、外借圖書(shū)的編號(hào)、圖書(shū)名稱(chēng)、作者、出版社、借書(shū)時(shí)間、還書(shū)時(shí)間、是否超期、超期金額、續(xù)借次數(shù)字段。結(jié)構(gòu)如表2.6.4所示。</p><p>  表2.6.4 已借圖書(shū)表</p><p>  2.6.5 歷史記錄表(tb_

26、history)</p><p>  描述:主要存儲(chǔ)每個(gè)用戶(hù)的借還書(shū)操作信息,通過(guò)不同用戶(hù)的登錄,顯示不同用戶(hù)的借還書(shū)信息,包括用戶(hù)編號(hào)、姓名、圖書(shū)編號(hào)、圖書(shū)名稱(chēng)、借(還)書(shū)時(shí)間、續(xù)借次數(shù)、操作信息字段。如表2.6.5所示:</p><p>  表2.6.5歷史記錄表</p><p>  第三部分--概要設(shè)計(jì)</p><p><b>

27、;  3.1 設(shè)計(jì)目標(biāo)</b></p><p>  概要設(shè)計(jì)是軟件開(kāi)發(fā)過(guò)程中的一個(gè)階段,在這個(gè)階段需要完成一些明確的事情。概要設(shè)計(jì)階段的基本目的是回答“概括的說(shuō),系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”。通過(guò)這個(gè)階段,確定系統(tǒng)的組成模塊。本圖書(shū)管理系統(tǒng)由讀者管理、圖書(shū)管理、流通管理、統(tǒng)計(jì)管理、查詢(xún)管理5個(gè)大模塊組成。每個(gè)模塊又由自己的子模塊組成。</p><p><b>  3.2軟件結(jié)

28、構(gòu)圖</b></p><p>  3.2.1統(tǒng)計(jì)管理模塊軟件結(jié)構(gòu)圖</p><p>  統(tǒng)計(jì)管理模塊主要完成統(tǒng)計(jì)歷史借閱信息和統(tǒng)計(jì)借閱信息功能。軟件結(jié)構(gòu)圖如圖3-2所示。</p><p><b>  3.3 系統(tǒng)層次圖</b></p><p>  3.4 數(shù)據(jù)庫(kù)物理設(shè)計(jì)</p><p&g

29、t; ?。?)user表記錄管理員的信息(包括管理員ID、用戶(hù)名、密碼),如表3-4-1。</p><p><b>  表3-4-1</b></p><p> ?。?)bookinfo表記錄圖書(shū)信息(包括圖書(shū)編號(hào)、圖書(shū)ISBN、書(shū)名、出版社、作者、摘要),如表3-4-2。</p><p><b>  表3-4-2</b>&

30、lt;/p><p>  (3)certificateinfo表記錄借書(shū)證信息(包括借書(shū)證ID、證件名稱(chēng)、姓名、證件類(lèi)型、標(biāo)記),如表3-4-3。</p><p><b>  表3-4-3</b></p><p>  (4)loan表記錄借還書(shū)信息(包括圖書(shū)編號(hào)、借書(shū)證ID、借書(shū)日期、還書(shū)日期、標(biāo)記),如表3-4-4。</p><

31、p><b>  表3-4-4</b></p><p>  第四部分--詳細(xì)設(shè)計(jì)</p><p><b>  4.1根本任務(wù)</b></p><p>  依據(jù)軟件工程的基本原理,詳細(xì)設(shè)計(jì)階段的根本任務(wù)是確定應(yīng)該怎樣具體實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,具體來(lái)說(shuō)就是把經(jīng)過(guò)總

32、體設(shè)計(jì)得到的各個(gè)模塊詳細(xì)的加以描述。</p><p><b>  4.2 程序流程圖</b></p><p>  4.2.1統(tǒng)計(jì)管理流程圖</p><p>  4.2.2圖書(shū)借閱流程圖 4.2.3圖書(shū)歸還流程圖</p><p>  4.3 詳細(xì)設(shè)計(jì)說(shuō)明</p>

33、<p>  圖書(shū)借閱:讀入借書(shū)證號(hào),自動(dòng)判斷是否合法,然后通過(guò)掃描槍讀入所需借閱的圖書(shū)編號(hào)。</p><p>  圖書(shū)歸還:通過(guò)掃描槍讀入圖書(shū)編號(hào),自動(dòng)識(shí)別圖書(shū)證號(hào)。同時(shí)提示讀者已 借書(shū)數(shù)、超期圖書(shū)應(yīng)繳罰款等參考信息。</p><p>  添加圖書(shū):圖書(shū)采購(gòu)人員按照每年的采購(gòu)計(jì)進(jìn)行購(gòu)書(shū),(不在本系統(tǒng)考慮范圍)圖書(shū)購(gòu)入后由圖書(shū)管理人員將圖書(shū)按類(lèi)別分類(lèi)后錄入數(shù)據(jù)庫(kù)。</p&g

34、t;<p>  刪除圖書(shū):某一部分圖書(shū)會(huì)隨著時(shí)間的增長(zhǎng)及知識(shí)的更新而變得不再有收藏的價(jià)值,或者圖書(shū)被損壞,這些圖書(shū)就要在圖書(shū)庫(kù)的除去。即從圖書(shū)庫(kù)中刪除此圖書(shū)記錄。</p><p>  圖書(shū)信息修改:圖書(shū)信息由于工作人員的疏忽,而出現(xiàn)錯(cuò)誤,提供其圖書(shū)ID就可以修改其信息。</p><p><b>  第五部分--編碼</b></p><

35、p>  5.1 圖書(shū)借閱 核心代碼:</p><p>  if (yan.ToString() == Session["yan"].ToString())</p><p><b>  {</b></p><p>  if (sf == "管理員")</p><p><

36、b>  {</b></p><p>  if (baseclass.CheckAdmin(num, pwd))</p><p><b>  {</b></p><p>  Session["id"] = UserName.Text.Trim();</p><p>  Response

37、.Redirect("Gjieshu.aspx");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Response.Write("<scri

38、pt>alert('用戶(hù)名或密碼錯(cuò)誤!');location='denglv.aspx'</script>");</p><p><b>  }}</b></p><p>  if (sf == "普通用戶(hù)")</p><p><b>  {</b&

39、gt;</p><p>  if (baseclass.CheckPerson(num, pwd))</p><p><b>  {</b></p><p>  Session["id"] = UserName.Text.Trim();</p><p>  Response.Redirect(&quo

40、t;Yliulian.aspx");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Response.Write("<script>alert(&

41、#39;用戶(hù)名或密碼錯(cuò)誤!');location='denglv.aspx'</script>");</p><p><b>  }}}</b></p><p><b>  else{</b></p><p>  Response.Write("<script&

42、gt;alert('驗(yàn)證碼輸入錯(cuò)誤,請(qǐng)重新登錄!');location='denglv.aspx'</script>");}</p><p>  5.2 圖書(shū)歸還 核心代碼</p><p>  if (Convert.ToDateTime(row.Cells[8].Text.ToString()) < DateTime.Now)

43、</p><p><b>  {</b></p><p>  TimeSpan num = newdate.Subtract(Convert.ToDateTime(row.Cells[8].Text.ToString()));</p><p>  int ts = Convert.ToInt32(num.Days);</p>&l

44、t;p>  double outm = 0;</p><p>  if (date == 30)//長(zhǎng)期超期處理</p><p><b>  {</b></p><p>  for (int i = 1; i <= ts; i++)</p><p><b>  {</b></p&g

45、t;<p>  outm = outm + 0.1;</p><p><b>  }</b></p><p>  string outmone = Convert.ToString(outm.ToString());</p><p>  string s3 = "update tb_outbook set iskeepo

46、ut='" + true + "',outmoney='" + outmone + "' where bookcode='" + bookcode + "'";</p><p>  SqlCommand sd = new SqlCommand(s3, conn);</p><p

47、>  sd.ExecuteNonQuery();</p><p><b>  }</b></p><p>  if (date == 3)//短期超期處理</p><p><b>  {</b></p><p>  for (int i = 1; i <= ts; i++)</p&

48、gt;<p><b>  {</b></p><p>  outm = outm + 0.5;</p><p><b>  }</b></p><p>  string outmone = Convert.ToString(outm.ToString());</p><p>  str

49、ing s4 = "update tb_outbook set iskeepout='" + true + "',outmoney='" + outmone + "' where bookcode='" + bookcode + "'";</p><p>  SqlCommand sdt

50、 = new SqlCommand(s4, conn);</p><p>  sdt.ExecuteNonQuery();</p><p><b>  }</b></p><p>  Response.Write("<script>alert('圖書(shū)已超期,不能還書(shū),請(qǐng)聯(lián)系管理員進(jìn)行超期處理!');loca

51、tion='Ghuanshu.aspx'</script>");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  string st1=&qu

52、ot;delete from tb_outbook where id='"+id+"'and bookcode='"+bookcode+"'";//刪除圖書(shū)</p><p>  SqlCommand stw = new SqlCommand(st1, conn);</p><p>  stw.ExecuteN

53、onQuery();</p><p>  string str2 = "update tb_reader set borrownum=borrownum-1 where id='" + id + "'";//用戶(hù)表里的借書(shū)數(shù)目少1</p><p>  SqlCommand stw2 = new SqlCommand(str2, con

54、n);</p><p>  stw2.ExecuteNonQuery();</p><p>  string str3 = "update tb_bookinfo set usenunber=usenunber+1 where bookcode='" + bookcode + "'";//圖書(shū)信息表的可用量增1</p>

55、<p>  SqlCommand cmd3 = new SqlCommand(str3, conn);</p><p>  cmd3.ExecuteNonQuery();</p><p>  Response.Write("<script>alert('歸還圖書(shū)成功!');location='Ghuanshu.aspx'<

56、;/script>");</p><p><b>  }</b></p><p>  conn.Close();</p><p>  5.3圖書(shū)查詢(xún) 核心代碼:</p><p>  protected void Button1_Click(object sender, EventArgs e)//查詢(xún)

57、按鈕事件</p><p><b>  {</b></p><p>  string str2 = "";</p><p>  SqlConnection conn = baseclass.DBCon();</p><p>  conn.Open();</p><p><b

58、>  //查詢(xún)語(yǔ)句</b></p><p>  string str1 = "select bookcode as 圖書(shū)編碼,bookname as 圖書(shū)名稱(chēng),autor as 作者,pubname as 出版社,price as 價(jià)格,keep as 庫(kù)存量,usenunber as 可用量,usedate as 可借天數(shù),pubdate as 出版日期 from tb_bookin

59、fo where";</p><p>  string t1 = this.DropDownList1.SelectedValue.Trim();</p><p>  string t = this.TextBox1.Text.Trim();</p><p>  if (t1 == "圖書(shū)編號(hào)")//條件判斷,圖書(shū)編號(hào)、圖書(shū)名稱(chēng)、作者、

60、出版社相似</p><p><b>  { </b></p><p>  str2=" bookcode='"+t+"'";</p><p><b>  } </b></p><p>  if (t == "")</p

61、><p><b>  {</b></p><p>  Response.Write("<Script>alert('請(qǐng)輸入查詢(xún)條件!');location='Gchaxun.aspx'</script>");</p><p><b>  }</b>&l

62、t;/p><p>  string str = str1 + str2;</p><p>  SqlDataAdapter ads = new SqlDataAdapter(str, conn);//執(zhí)行查詢(xún)</p><p>  DataSet ds = new DataSet();</p><p>  ads.Fill(ds);</p&g

63、t;<p>  this.GridView1.DataSource = ds;//綁定數(shù)據(jù)</p><p>  GridView1.DataBind();</p><p>  conn.Close();</p><p><b>  }</b></p><p>  5.4 添加圖書(shū) 核心代碼</p>

64、;<p>  if (a1 == "")</p><p><b>  {</b></p><p>  Response.Write("<script>alert('圖書(shū)編號(hào)不能為空,請(qǐng)重新輸入!');location='Gtianjia.aspx'</script>&q

65、uot;);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  string s = "select bookcode from tb_bookinfo";<

66、;/p><p>  SqlCommand c = new SqlCommand(s, conn);</p><p>  SqlDataReader re = c.ExecuteReader();</p><p>  while (re.Read())</p><p><b>  {</b></p><p&

67、gt;  if (a1 == re["bookcode"].ToString())</p><p><b>  {</b></p><p>  Session["bookcode"] = this.TextBox1.Text.ToString();</p><p>  Response.Write(&qu

68、ot;<script>alert('已存在所添加圖書(shū),如需修改該書(shū)信息,請(qǐng)通過(guò)“修改”按鈕進(jìn)行!');</script>");</p><p><b>  }</b></p><p><b>  }</b></p><p>  re.Close();</p>

69、<p>  if (a1 != Session["bookcode"].ToString())</p><p><b>  {</b></p><p>  string str = "insert into tb_bookinfo (bookcode,bookname,autor,pubname,price,keep,usenu

70、nber,usedate,pubdate ) values ('" + a1 + "','" + a2 + "','" + a3 + "','" + a4 + "','" + a5 + "','" + a6 + "',

71、9;" + a7 + "','" + a8 + "','" + a9 + "')";</p><p>  SqlCommand cmd = new SqlCommand(str, conn);</p><p>  cmd.ExecuteNonQuery();</p>

72、<p>  Response.Write("<script>alert('添加圖書(shū)成功!');location='Gtianjia.aspx'</script>");</p><p><b>  }</b></p><p><b>  else</b></

73、p><p><b>  {</b></p><p>  this.Button3.Visible = true;</p><p>  this.TextBox1.Enabled = false;</p><p>  string str1 = "select * from tb_bookinfo where boo

74、kcode='" + a1 + "'";</p><p>  SqlCommand c1 = new SqlCommand(str1, conn);</p><p>  SqlDataReader red = c1.ExecuteReader();</p><p>  red.Read();</p><

75、;p>  this.TextBox1.Text = red["bookcode"].ToString();</p><p>  this.TextBox2.Text = red["bookname"].ToString();</p><p>  this.TextBox3.Text = red["autor"].ToStri

76、ng();</p><p>  this.TextBox4.Text = red["pubname"].ToString();</p><p>  this.TextBox5.Text = red["price"].ToString();</p><p>  this.TextBox6.Text = red["kee

77、p"].ToString();</p><p>  this.TextBox7.Text = red["usenunber"].ToString();</p><p>  this.TextBox8.Text = red["usedate"].ToString();</p><p>  this.TextBox9.T

78、ext = red["pubdate"].ToString();</p><p>  red.Close();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  修改按鈕部分代碼:</b></p

79、><p>  if (bookcode == "")</p><p><b>  {</b></p><p>  Response.Write("<script>alert('圖書(shū)編號(hào)不能為空!');location='Gtianjia.aspx'</script>

80、;");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  string bookname = this.TextBox2.Text.Trim();</p>

81、<p>  string autor = this.TextBox3.Text.Trim();</p><p>  string pubname = this.TextBox4.Text.Trim();</p><p>  string price = this.TextBox5.Text.Trim();</p><p>  string keep = t

82、his.TextBox6.Text.Trim();</p><p>  string usenunber = this.TextBox7.Text.Trim();</p><p>  string usedate = this.TextBox8.Text.Trim();</p><p>  string pubdate = this.TextBox9.Text.Tr

83、im();</p><p>  string str2 = "update tb_bookinfo set bookname='" + bookname + "', autor='" + autor + "',pubname='" + pubname + "',price='"

84、+ price + "',keep='" + keep + "',usenunber='" + usenunber + "',usedate='" + usedate + "',pubdate='" + pubdate + "' where bookcode='&quo

85、t; + bookcode + "'";</p><p>  SqlCommand c2 = new SqlCommand(str2, conn);</p><p>  c2.ExecuteNonQuery();</p><p>  Response.Write("<script>alert('修改圖書(shū)資料成

86、功!');location='Gtianjia.aspx'</script>");</p><p>  conn.Close();}</p><p>  5.5 刪除圖書(shū) 核心代碼</p><p>  GridViewRow row = GridView1.Rows[e.NewSelectedIndex];//當(dāng)前的行

87、數(shù)</p><p>  string bookcode = row.Cells[1].Text.ToString();</p><p>  SqlConnection conn = baseclass.DBCon();</p><p>  conn.Open();</p><p>  string str1="delete from

88、 tb_bookinfo where bookcode='"+bookcode+"'";</p><p>  SqlCommand cmd1 = new SqlCommand(str1, conn);</p><p>  cmd1.ExecuteNonQuery();</p><p>  Response.Write(&

89、quot;<script>alert('刪除圖書(shū)成功!');location='Gshanchu.aspx'</script>");</p><p>  5.7 用戶(hù)管理 核心代碼</p><p>  if (t1 == "")</p><p><b>  {</b

90、></p><p>  Response.Write("<script>alert('請(qǐng)選擇用戶(hù)類(lèi)型!');location='Gguanli.aspx'</script>");</p><p><b>  }</b></p><p>  if (t1 == &q

91、uot;普通用戶(hù)")</p><p><b>  {</b></p><p>  str1 = "select id as 用戶(hù)編號(hào),name as 姓名,sex as 性別,pwd as 密碼,borrownum as 已借數(shù)目,maxborrow as 最大可借數(shù),xi as 系別,zhangye as 專(zhuān)業(yè),nianji as 年級(jí) from

92、 tb_reader";</p><p>  string str = str1;</p><p>  SqlDataAdapter ads = new SqlDataAdapter(str, conn);</p><p>  DataSet ds = new DataSet();</p><p>  ads.Fill(ds);&l

93、t;/p><p>  this.GridView1.DataSource = ds;</p><p>  GridView1.DataBind();</p><p><b>  }</b></p><p>  if (t1 == "管理員")</p><p><b>  

94、{</b></p><p>  str1 = "select id as 管理員編號(hào),name as 姓名,pwd as 密碼 from tb_admin";</p><p>  string str = str1;</p><p>  SqlDataAdapter ads = new SqlDataAdapter(str, conn

95、);</p><p>  DataSet ds = new DataSet();</p><p>  ads.Fill(ds);</p><p>  this.GridView1.DataSource = ds;</p><p>  GridView1.DataBind();</p><p><b>  }&

96、lt;/b></p><p><b>  刪除按鈕部分代碼:</b></p><p>  if (t1 == "普通用戶(hù)")</p><p><b>  {</b></p><p>  GridViewRow row = GridView1.Rows[e.NewSelect

97、edIndex];//當(dāng)前的行數(shù)</p><p>  string id = row.Cells[1].Text.ToString();</p><p>  string a1="delete from tb_reader where id='"+id+"'";</p><p>  SqlCommand sc1

98、 = new SqlCommand(a1, conn);</p><p>  sc1.ExecuteNonQuery();</p><p>  Response.Write("<script>alert('刪除用戶(hù)成功!');location='Gguanli.aspx'</script>");</p>

99、<p><b>  }</b></p><p>  if (t1 == "管理員")</p><p><b>  {</b></p><p>  GridViewRow row = GridView1.Rows[e.NewSelectedIndex];//當(dāng)前的行數(shù)</p>

100、<p>  string id = row.Cells[1].Text.ToString();</p><p>  string a1 = "delete from tb_admin where id='" + id + "'";</p><p>  SqlCommand sc1 = new SqlCommand(a1, c

101、onn);</p><p>  Response.Write("<script>alert('刪除管理員成功!');location='Gguanli.aspx'</script>");</p><p>  sc1.ExecuteNonQuery();</p><p><b>  

102、}</b></p><p><b>  第六部分--測(cè)試</b></p><p>  6.1系統(tǒng)測(cè)試的定義</p><p>  系統(tǒng)測(cè)試是將經(jīng)過(guò)測(cè)試的子系統(tǒng)裝配成一個(gè)完整系統(tǒng)來(lái)測(cè)試。它是檢驗(yàn)系統(tǒng)是否能夠提供方案說(shuō)明中指定功能的有效方法。為了發(fā)現(xiàn)缺陷并度量產(chǎn)品質(zhì)量,按照系統(tǒng)的功能和性能需求進(jìn)行調(diào)試。</p><p&

103、gt;<b>  6.2、測(cè)試的內(nèi)容</b></p><p><b>  (1)、功能測(cè)試</b></p><p>  對(duì)圖書(shū)管理系統(tǒng)的所有頁(yè)面進(jìn)行鏈接測(cè)試。所有的頁(yè)面都能鏈接到指定要鏈接到得頁(yè)面,所鏈接的頁(yè)面均存在,而且頁(yè)面中不存在孤立的頁(yè)面。對(duì)表單進(jìn)行測(cè)試,如果輸入信息不正確或者不輸入信息就直接提交,會(huì)出現(xiàn)作物提示。通過(guò)填寫(xiě)正確的表單信息,數(shù)

104、據(jù)庫(kù)運(yùn)行正常。</p><p><b>  (2)、性能測(cè)試</b></p><p>  通過(guò)寬帶上網(wǎng)的方式對(duì)圖書(shū)管理系統(tǒng)的鏈接速度進(jìn)行測(cè)試,在可接受的范圍之內(nèi)。用圖書(shū)管理系統(tǒng)壓力測(cè)試Web-CT軟件,對(duì)測(cè)試頻率,持續(xù)時(shí)間等進(jìn)行的、測(cè)試得出結(jié)論:圖書(shū)管理系統(tǒng)壓力測(cè)試結(jié)果較好。</p><p><b>  (3)、可用性測(cè)試</b

105、></p><p>  圖書(shū)管理系統(tǒng)導(dǎo)航結(jié)構(gòu)清晰、目的明確、頁(yè)面風(fēng)格一致、頁(yè)面使用顏色較少。有較好的視覺(jué)效果。圖書(shū)管理系統(tǒng)整體界面布局合理,頁(yè)面風(fēng)格簡(jiǎn)潔,顏色搭配協(xié)調(diào),可用性良好。</p><p>  6.3 測(cè)試方案及用例</p><p>  6.3.1 白盒測(cè)試</p><p>  白盒測(cè)試是指通過(guò)測(cè)試來(lái)檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格

106、說(shuō)明書(shū)的規(guī)定正常進(jìn)行。白盒測(cè)試又分為:邏輯覆蓋和控制結(jié)構(gòu)測(cè)試</p><p><b>  控制結(jié)構(gòu)測(cè)試</b></p><p>  控制結(jié)構(gòu)測(cè)試中采用常用的基本路徑測(cè)試技術(shù)。針對(duì)流通管理模塊進(jìn)行測(cè)試,詳細(xì)步驟如下:</p><p>  圖5-1 流通管理控制流圖</p><p>  注:1.功能選擇2.圖書(shū)預(yù)定3.圖書(shū)借

107、閱4.圖書(shū)歸還5.圖書(shū)丟失、損壞處理6.選擇7.退出</p><p>  環(huán)形復(fù)雜度V(G)=E-N+2 =10-7+2=5</p><p><b>  導(dǎo)出獨(dú)立路徑:</b></p><p>  路徑1:1-2-6-1</p><p>  路徑2:1-3-6-1</p><p>  路徑3:1-

108、4-6-1</p><p>  路徑4:1-5-6-1</p><p><b>  路徑5:1-7</b></p><p><b>  測(cè)試用例</b></p><p>  測(cè)試用例如表5-1所示。</p><p>  表5-1 路徑測(cè)試用例</p><p

109、><b>  邏輯覆蓋</b></p><p>  有選擇的執(zhí)行程序中某些最具代表性的通路是對(duì)窮盡測(cè)試的唯一可行的代替辦法。通過(guò)邏輯覆蓋中的兩種覆蓋來(lái)測(cè)試流通管理模塊下各子模塊的通路。依據(jù)是詳細(xì)設(shè)計(jì)階段的流通管理各子模塊程序流程圖。即圖4-4 圖書(shū)預(yù)定流程圖,圖4-5 圖書(shū)借閱流程圖,圖4-6 圖書(shū)歸還流程圖和圖4-7 圖書(shū)丟失、損壞處理流程圖。</p><p>

110、;  圖書(shū)預(yù)定模塊/圖書(shū)借閱模塊</p><p><b>  條件組合覆蓋</b></p><p>  表5-2 圖書(shū)預(yù)定/借閱模塊條件組合覆蓋用例</p><p>  路徑覆蓋:因?yàn)橐竺總€(gè)環(huán)至少經(jīng)過(guò)一次,經(jīng)分析,路徑覆蓋需要的測(cè)試組合和條件組合覆蓋相同。</p><p><b>  圖書(shū)歸還模塊</b

111、></p><p><b>  條件組合覆蓋</b></p><p>  表5-3 圖書(shū)歸還模塊條件組合覆蓋用例</p><p><b>  路徑覆蓋:</b></p><p>  組合1:圖書(shū)超期(Y)、繼續(xù)操作(N)和圖書(shū)超期(N)、繼續(xù)操作(Y)</p><p>

112、  覆蓋路徑:abcdefg和abcefb</p><p>  組合2:圖書(shū)超期(N)、繼續(xù)操作(N)和圖書(shū)超期(Y)、繼續(xù)操作(Y)</p><p>  覆蓋路徑:abcefg和abcdefb </p><p>  圖書(shū)丟失、損壞處理模塊</p><p><b>  條件組合覆蓋</b></

113、p><p>  表5-4 圖書(shū)丟失、損壞處理模塊條件組合覆蓋用例</p><p><b>  路徑覆蓋:</b></p><p>  組合1:圖書(shū)超期(Y)、繼續(xù)操作(N)和圖書(shū)超期(N)、繼續(xù)操作(Y)</p><p>  覆蓋路徑:abcdefgh和abcefgb</p><p>  組合2:圖書(shū)

114、超期(Y)、繼續(xù)操作(Y)和圖書(shū)超期(N)、繼續(xù)操作(N)</p><p>  覆蓋路徑: abcdefgb和abcefgh</p><p>  6.3.2 黑盒測(cè)試</p><p>  黑盒測(cè)試是指通過(guò)測(cè)試來(lái)檢驗(yàn)是否每個(gè)功能都能正常進(jìn)行。使用黑盒測(cè)試實(shí)現(xiàn)對(duì)流通管理模塊的功能測(cè)試。</p><p>  圖書(shū)編號(hào)、ISBN、借書(shū)證號(hào)等價(jià)類(lèi)劃分,

115、如表6-5所示。</p><p>  表5-5 等價(jià)類(lèi)和非等價(jià)類(lèi)劃分</p><p><b>  測(cè)試用例</b></p><p>  根據(jù)表5-5所劃分的等價(jià)類(lèi)和非等價(jià)類(lèi),給出測(cè)試用例來(lái)覆蓋等價(jià)類(lèi)和給等價(jià)類(lèi)。具體內(nèi)容如表5-6。</p><p>  表6-6 黑盒測(cè)試用例</p><p><

116、;b>  6.3.3測(cè)試用例</b></p><p>  主要參與者及用例如下圖所示。</p><p><b>  用例</b></p><p><b>  用例描述</b></p><p><b>  用例描述</b></p><p>

117、;  第七部分--UML建模</p><p><b>  7.1.UML簡(jiǎn)介</b></p><p>  UML是一種功能強(qiáng)大的、面向?qū)ο蟮目梢暬到y(tǒng)分析的建模語(yǔ)言,它采用一整套成熟的建模技術(shù),廣泛地適用于各個(gè)應(yīng)用領(lǐng)域。它的各個(gè)模型可以幫助開(kāi)發(fā)人員更好地理解業(yè)務(wù)流程,建立更可靠、更完善的系統(tǒng)模型。從而使用戶(hù)和開(kāi)發(fā)人員對(duì)問(wèn)題的描述達(dá)到相同的理解,以減少語(yǔ)義差異,保障分析

118、的正確性.</p><p>  7.2圖書(shū)館管理系統(tǒng)的用例分析 </p><p>  在上面,已經(jīng)識(shí)別出了系統(tǒng)的兩位參與者,經(jīng)過(guò)對(duì)需求的進(jìn)一步分析,可以確定系統(tǒng)中有如下用例存在。</p><p><b>  1.借閱書(shū)籍</b></p><p>  本用例提供了借閱書(shū)籍的功能。</p><p>&

119、lt;b>  2.返還書(shū)籍</b></p><p>  本用例提供了返還書(shū)籍的功能。</p><p><b>  3.用戶(hù)管理</b></p><p>  本用例提供了增加、修改以及刪除用戶(hù)信息的功能。</p><p><b>  4.書(shū)籍管理</b></p><

120、;p><b>  6.3 靜態(tài)建模</b></p><p>  進(jìn)一步分析系統(tǒng)需求,發(fā)現(xiàn)類(lèi)以及類(lèi)之間的聯(lián)系,確定它們的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為,是面向?qū)ο蠓治龅幕救蝿?wù)。系統(tǒng)的靜態(tài)結(jié)構(gòu)模型主要用類(lèi)圖來(lái)描述的。</p><p>  通過(guò)對(duì)系統(tǒng)進(jìn)行需求分析后,就可以識(shí)別出在該系統(tǒng)中存在的對(duì)象。從前述的系統(tǒng)需求描述中可以找到以下對(duì)象類(lèi):借閱者、書(shū)籍、管理員。</p&g

121、t;<p><b>  6.3.1類(lèi)圖分析</b></p><p>  抽象出系統(tǒng)中的類(lèi)后,確定并細(xì)化這些類(lèi)的屬性及操作,建立每個(gè)類(lèi)的圖形,通過(guò)這些圖形對(duì)每一個(gè)類(lèi)的屬性和操作進(jìn)行說(shuō)明,如下圖所示: </p><p><b>  6.4動(dòng)態(tài)行為建模</b></p><p>  系統(tǒng)的動(dòng)態(tài)行為模型可以有交互作用

122、圖(時(shí)序圖和通訊圖)、狀態(tài)圖、活動(dòng)圖來(lái)描述。本設(shè)計(jì)選用時(shí)序圖描述用例的主要場(chǎng)景,用狀態(tài)圖描述對(duì)象的動(dòng)態(tài)行為。描述系統(tǒng)用例的主要場(chǎng)景的時(shí)序圖如下所示:</p><p>  管理員每天工作時(shí)先登錄系統(tǒng),再進(jìn)行掛機(jī)等待借閱者操作。借閱者借書(shū)時(shí),先出示借閱卡。管理員掃描借閱卡,驗(yàn)證借閱者身份,系統(tǒng)讀取相應(yīng)信息并顯示借閱者信息。此后,管理員掃描借閱者要借閱的書(shū)籍,增加書(shū)目信息。系統(tǒng)對(duì)應(yīng)顯示書(shū)目信息后,借閱書(shū)籍成功,書(shū)籍借出

123、。借閱者續(xù)借時(shí),步驟一直,故省略續(xù)借時(shí)的情況。</p><p><b>  第八部分--總結(jié)</b></p><p>  兩周以來(lái)忙碌而又緊張的實(shí)驗(yàn),我對(duì)軟件工程的基本理論知識(shí)、專(zhuān)業(yè)知識(shí)和基本技術(shù)有了更深入的了解和體會(huì),把學(xué)到的知識(shí)得到了系統(tǒng)的復(fù)習(xí),真正達(dá)到了學(xué)以致用。圖書(shū)管理系統(tǒng)的開(kāi)發(fā)時(shí)一項(xiàng)復(fù)雜的工程,在設(shè)計(jì)過(guò)程中我嚴(yán)格按照需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試的

124、流程來(lái)開(kāi)發(fā)系統(tǒng)。在系統(tǒng)開(kāi)發(fā)前,我首先了解了系統(tǒng)的特點(diǎn),使用范圍以及要做成一個(gè)什么樣的系統(tǒng),以此作為基礎(chǔ)開(kāi)發(fā)系統(tǒng)并準(zhǔn)確定位。系統(tǒng)的設(shè)計(jì)不僅要實(shí)現(xiàn)對(duì)數(shù)據(jù)處理的及時(shí)性與正確性,而且要考慮系統(tǒng)是否具有控制功能,及時(shí)將數(shù)據(jù)反饋給操作者,以進(jìn)行檢測(cè)和協(xié)調(diào),保證系統(tǒng)能夠正常運(yùn)行。</p><p>  在設(shè)計(jì)的過(guò)程中,遇到很多問(wèn)題,我盡量想辦法想自己解決,實(shí)在解決不了再請(qǐng)教別的同學(xué)或是查閱資料,來(lái)解決問(wèn)題。</p>

溫馨提示

  • 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ù)僅提供信息存儲(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)論