版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件工程課程設(shè)計(jì)--圖書(shū)借閱管理系統(tǒng)
- 軟件工程課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
- 軟件工程課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 軟件工程課程設(shè)計(jì)--圖書(shū)館管理系統(tǒng)
- 軟件工程課程設(shè)計(jì)-- 圖書(shū)分銷(xiāo)系統(tǒng)
- 軟件工程課程設(shè)計(jì)-——圖書(shū)館管理系統(tǒng)
- 軟件工程課程設(shè)計(jì)---圖書(shū)館管理系統(tǒng)
- 圖書(shū)管理系統(tǒng)軟件工程課程設(shè)計(jì)
- (軟件工程)圖書(shū)借閱管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 圖書(shū)管理系統(tǒng)軟件工程課程設(shè)計(jì)
- 圖書(shū)借閱管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)---圖書(shū)借閱管理系統(tǒng)
- 課程設(shè)計(jì)----圖書(shū)借閱管理系統(tǒng)
- 軟件工程課程設(shè)計(jì)之圖書(shū)館管理系統(tǒng)
- 軟件工程綜合課程設(shè)計(jì)報(bào)告-圖書(shū)管理系統(tǒng)
- 軟件工程課程設(shè)計(jì)--在線(xiàn)圖書(shū)管理系統(tǒng)
- 軟件工程綜合課程設(shè)計(jì)報(bào)告-圖書(shū)管理系統(tǒng)
- 圖書(shū)管理系統(tǒng)軟件工程課程設(shè)計(jì)作業(yè)
- 軟件工程圖書(shū)管理系統(tǒng)課程設(shè)計(jì)[1]
- 軟件工程課程設(shè)計(jì)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論