軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)實(shí)例[共45頁(yè)]

上傳人:gfy****yf 文檔編號(hào):40978676 上傳時(shí)間:2021-11-18 格式:DOC 頁(yè)數(shù):45 大?。?.10MB
收藏 版權(quán)申訴 舉報(bào) 下載
軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)實(shí)例[共45頁(yè)]_第1頁(yè)
第1頁(yè) / 共45頁(yè)
軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)實(shí)例[共45頁(yè)]_第2頁(yè)
第2頁(yè) / 共45頁(yè)
軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)實(shí)例[共45頁(yè)]_第3頁(yè)
第3頁(yè) / 共45頁(yè)

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

12 積分

下載資源

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

資源描述:

《軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)實(shí)例[共45頁(yè)]》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)實(shí)例[共45頁(yè)](45頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)實(shí)例軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)實(shí)例20212021 年年 1111 月月 2021/11/3目錄目錄1引言引言.21.1編寫(xiě)目的 .21.2項(xiàng)目背景 .21.3定義 .21.4參考資料 .22總體設(shè)計(jì)總體設(shè)計(jì).22.1需求概述 .22.2軟件結(jié)構(gòu) .23程序描述程序描述.23.101 登陸模塊 .23.202 管理模塊 .23.3031 圖書(shū)信息查詢(xún)模塊 .23.4032 學(xué)生信息查詢(xún)模塊 .23.5021 入庫(kù)管理模塊 .23.6022 學(xué)生借書(shū)模塊 .23.7023 學(xué)生還書(shū)模塊 .23.8024 圖書(shū)注銷(xiāo)模塊 .23.9接口設(shè)計(jì) .23.10測(cè)試要點(diǎn).2kk 第1頁(yè)2021/1

2、1/3文檔名稱(chēng): 詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明書(shū)項(xiàng)目名稱(chēng): 圖書(shū)館管理系統(tǒng)項(xiàng)目負(fù)責(zé)人:陳新光 編寫(xiě) TEST _年_月_日 校對(duì) 所有小組成員 _年_月_日 審核 所有小組成員 _年_月_日 批準(zhǔn) XXX _年_月_日 開(kāi)發(fā)單位_組員: TEST1 TEST2 TEST3kk 第2頁(yè)2021/11/31引言1.1 編寫(xiě)目的圖書(shū)管理系統(tǒng)詳細(xì)設(shè)計(jì)是設(shè)計(jì)的第二個(gè)階段,這個(gè)階段的主要任務(wù)是在圖書(shū)管理系統(tǒng)概要設(shè)計(jì)書(shū)基礎(chǔ)上,對(duì)概要設(shè)計(jì)中產(chǎn)生的功能模塊進(jìn)行過(guò)程描述,設(shè)計(jì)功能模塊的內(nèi)部細(xì)節(jié),包括算法和詳細(xì)數(shù)據(jù)結(jié)構(gòu),為編寫(xiě)源代碼提供必要的說(shuō)明。概要設(shè)計(jì)解決了軟件系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)的問(wèn)題,包括整個(gè)軟件系統(tǒng)的結(jié)構(gòu)、模塊劃分、模塊

3、功能和模塊間的聯(lián)系等。詳細(xì)設(shè)計(jì)則要解決如何實(shí)現(xiàn)各個(gè)模塊的內(nèi)部功能,即模塊設(shè)計(jì)。具體的說(shuō),模塊設(shè)計(jì)就是要為已經(jīng)產(chǎn)生的圖書(shū)管理各子系統(tǒng)設(shè)計(jì)詳細(xì)的算法。但這并不等同于系統(tǒng)實(shí)現(xiàn)階段用具體的語(yǔ)言編碼,它只是對(duì)實(shí)現(xiàn)細(xì)節(jié)作精確的描述,這樣編碼階段就可以將詳細(xì)設(shè)計(jì)中對(duì)功能實(shí)現(xiàn)的描述,直接翻譯、轉(zhuǎn)化為用某種程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的程序。1.2 項(xiàng)目背景根據(jù) XX 學(xué)校希望能夠充分利用現(xiàn)代科技來(lái)提高圖書(shū)管理的效率,在原有的辦公系統(tǒng)基礎(chǔ)上進(jìn)行擴(kuò)展,將一些可以用計(jì)算機(jī)來(lái)管理的都進(jìn)行計(jì)算機(jī)化,使得圖書(shū)館管理人員工作更加方便,工作效率也更加的高。1.3 定義Mysql:數(shù)據(jù)庫(kù)管理軟件DBMS:數(shù)據(jù)庫(kù)管理系統(tǒng)Windows 20

4、00/2003/XP:運(yùn)行環(huán)境JSP :軟件開(kāi)發(fā)語(yǔ)言Myeclipse :開(kāi)發(fā)工具kk 第3頁(yè)2021/11/31.4 參考資料軟件工程導(dǎo)論第 5 版 張海藩編著 清華大學(xué)出版社 實(shí)用軟件工程Leszek A.Maciaszek Bruc Lee Liong 著機(jī)械工業(yè)出版社2總體設(shè)計(jì)2.1 需求概述按照需求分析文檔中的規(guī)格要求,使用條形碼掃描器進(jìn)書(shū)、借書(shū)、還書(shū),使得信息傳遞準(zhǔn)確、流暢。同時(shí),系統(tǒng)最大限度地實(shí)現(xiàn)易安裝,易維護(hù)性,易操作性,運(yùn)行穩(wěn)定,安全可靠。kk 第4頁(yè)2021/11/32.2 軟件結(jié)構(gòu)圖書(shū)館管理系統(tǒng)基礎(chǔ)信息設(shè)置查詢(xún)子系統(tǒng)管理子系統(tǒng)圖書(shū)館信息系統(tǒng)參數(shù)設(shè)置管理員設(shè)置書(shū)架設(shè)置圖書(shū)詞

5、庫(kù)設(shè)置新書(shū)購(gòu)入學(xué)生借書(shū)學(xué)生還書(shū)圖書(shū)注銷(xiāo)學(xué)生信息查詢(xún)圖書(shū)信息查詢(xún)系統(tǒng)登陸系統(tǒng)由系統(tǒng)由 3 大模塊,大模塊,6 小模塊組成:小模塊組成:kk 第5頁(yè)2021/11/3序號(hào)序號(hào)編號(hào)編號(hào)名稱(chēng)名稱(chēng)1,01 登陸模塊2,02 管理模塊3,031圖書(shū)信息查詢(xún)模塊4,032學(xué)生信息查詢(xún)模塊5,021入庫(kù)管理模塊6,022學(xué)生借書(shū)模塊7,023學(xué)生還書(shū)模塊8,024圖書(shū)注銷(xiāo)模塊9,040基礎(chǔ)信息設(shè)置kk 第6頁(yè)2021/11/33程序描述3.1 01 登陸模塊具體格式見(jiàn)下表:功能編號(hào)功能編號(hào)01功能名稱(chēng)功能名稱(chēng)登陸模塊登陸模塊內(nèi)容內(nèi)容功能流程圖功能流程圖所屬業(yè)務(wù)所屬業(yè)務(wù)圖書(shū)館管理所屬項(xiàng)目圖書(shū)館管理系統(tǒng)編寫(xiě)人編寫(xiě)

6、人陳新光完成時(shí)間2007-11-26頁(yè)碼第 5 頁(yè)3.1.1 功能流程圖功能流程圖如下圖所示。登陸.jsp錄入項(xiàng)檢驗(yàn)(非空)提交所填內(nèi)容失敗登陸數(shù)據(jù)處理.jsp成功是否成功執(zhí)行數(shù)據(jù)庫(kù)操作管理.jsp成功失敗需要說(shuō)明的問(wèn)題:(1) 錄入項(xiàng)檢測(cè)使用 javascript 實(shí)現(xiàn)(各項(xiàng)必須非空)(2) 登陸.jsp 頁(yè)面也包含查詢(xún)按鈕,在此的登陸.jsp 提交的數(shù)據(jù)只是用戶(hù)名和密碼。3.1.2 功能描述(1) 功能類(lèi)型:查詢(xún)數(shù)據(jù)(2) 功能描述:提高系統(tǒng)的安全性(3) 前提業(yè)務(wù):無(wú)(4) 后繼業(yè)務(wù):02 (管理模塊)(5) 功能約束:權(quán)限約束kk 第7頁(yè)2021/11/3(6) 約束描述:(7) 操作

7、權(quán)限:圖書(shū)館管理員3.1.3 界面設(shè)計(jì)(1) 基礎(chǔ)信息處理 動(dòng)作說(shuō)明:動(dòng)作編號(hào)動(dòng)作編號(hào)動(dòng)作名稱(chēng)動(dòng)作名稱(chēng)動(dòng)作描述動(dòng)作描述A01登陸點(diǎn)擊登陸按鈕 提交數(shù)據(jù)到登陸數(shù)據(jù)處理.jsp 頁(yè)面A02重至點(diǎn)擊退重至按鈕 將當(dāng)前信息恢復(fù)原先狀態(tài)A03圖書(shū)信息查詢(xún)點(diǎn)擊 將頁(yè)面轉(zhuǎn)至到圖書(shū)信息查詢(xún).jsp 頁(yè)面A04學(xué)生信息查詢(xún)點(diǎn)擊 將頁(yè)面轉(zhuǎn)至學(xué)生信息查詢(xún).jsp 頁(yè)面A05基礎(chǔ)信息點(diǎn)擊 將顯示基礎(chǔ)信息(2) 數(shù)據(jù)要求(1) 功能類(lèi)型:數(shù)據(jù)查詢(xún)(2) 數(shù)據(jù)描述:頁(yè)面顯示錄入字段如下:字段名稱(chēng)字段名稱(chēng)長(zhǎng)度長(zhǎng)度錄入方式錄入方式是否非空項(xiàng)是否非空項(xiàng)數(shù)據(jù)檢驗(yàn)數(shù)據(jù)檢驗(yàn)?zāi)J(rèn)顯示默認(rèn)顯示管理員管理員 ID10文本框YN管理員密碼管

8、理員密碼15passwordYN3.1.4 登陸數(shù)據(jù)處理.jsp 的內(nèi)部邏輯登陸數(shù)據(jù)處理:關(guān)鍵點(diǎn)兩點(diǎn):1,數(shù)據(jù)庫(kù)連接;2,記錄登陸信息及信息處理;1, 數(shù)據(jù)庫(kù)連接: kk 第8頁(yè)2021/11/3 如下:public class lib_system_Conn extends Objectpublic lib_system_Conn() private Connection conn = null; private ResultSet rs; String re = ; /設(shè)置你的數(shù)據(jù)庫(kù)ip String dbip = 127.0.0.1; /設(shè)置你的數(shù)據(jù)庫(kù)用戶(hù)名和密碼: String use

9、 = root; String pass = 860409; /設(shè)置您的數(shù)據(jù)庫(kù)名 String dbName = lib_system; public java.sql.Connection getConn() try Class.forName(org.gjt.mm.mysql.Driver).newInstance(); String url =jdbc:mysql:/+dbip+:3306/+dbName+?user=+use+&password=+pass+&useUnicode=true&characterEncoding=GBK ; conn= DriverManager.getC

10、onnection(url); catch(Exception e) e.printStackTrace(); return this.conn ; /在Mysql建立lib_system數(shù)據(jù)庫(kù),之后將與數(shù)據(jù)操作相關(guān)數(shù)據(jù)與該數(shù)據(jù)庫(kù)相連;2, 記錄登陸信息及信息處理:當(dāng)用戶(hù)點(diǎn)擊“登陸”按鈕之后,數(shù)據(jù)將提交到登陸數(shù)據(jù)處理.jsp 頁(yè)面。 取得帳號(hào)密碼這兩個(gè)從頁(yè)面?zhèn)魅氲闹?,然后跟?shù)據(jù)庫(kù)當(dāng)中管理員表中的賬號(hào)和密碼比較。如果正確的話,在 JSP 的 SESSION 中存入一個(gè)標(biāo)記屬性,表示當(dāng)前已經(jīng)有管理員登陸了。處理完畢后,跳轉(zhuǎn)到管理頁(yè)面,如果失敗,則提示登陸失敗,并重新進(jìn)入到登陸頁(yè)面。具體的邏輯如下:

11、3.1.5 存儲(chǔ)分配管理員表:(admin)序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)小數(shù)默認(rèn)默認(rèn)允許允許主鍵主鍵說(shuō)明說(shuō)明kk 第10頁(yè)2021/11/3位數(shù)位數(shù)值值空空1 1(admin_ID)管理員IDInt102 2(admin_password)管理員密碼Char153 3(admin_quanxian)權(quán)限Nvarchar153.2 02 管理模塊具體格式見(jiàn)下表功能編號(hào)功能編號(hào)02功能名稱(chēng)功能名稱(chēng)管理模塊管理模塊內(nèi)容內(nèi)容功能流程圖功能流程圖所屬業(yè)務(wù)所屬業(yè)務(wù)圖書(shū)館管理所屬項(xiàng)目圖書(shū)館管理系統(tǒng)編寫(xiě)人編寫(xiě)人陳新光完成時(shí)間2007-11-26頁(yè)碼第 8 頁(yè)3.2.1 功能流程圖功能流程圖

12、如下所示:管理.jsp查詢(xún).jsp入庫(kù)管理.jsp圖書(shū)注銷(xiāo).jsp學(xué)生還書(shū).jsp學(xué)生借書(shū).jsp需要說(shuō)明的問(wèn)題:在選擇相應(yīng)的業(yè)務(wù)時(shí),需要在當(dāng)前的頁(yè)面顯示;并且在管理頁(yè)面內(nèi),默認(rèn)顯示圖書(shū)查詢(xún)頁(yè)面。kk 第11頁(yè)2021/11/33.2.2 功能描述(1) 功能類(lèi)型:其他(2) 功能概述:總體歸納圖書(shū)館管理功能(3) 前提業(yè)務(wù):登陸模塊(01)(4) 后續(xù)業(yè)務(wù):021,022,023,024,03(5) 功能約束:權(quán)限約束(6) 約束描述:(7) 操作權(quán)限:圖書(shū)館管理人員3.2.3 界面設(shè)計(jì)(1) 基本信息處理動(dòng)作說(shuō)明如下:動(dòng)作編號(hào)動(dòng)作編號(hào)動(dòng)作名稱(chēng)動(dòng)作名稱(chēng)動(dòng)作描述動(dòng)作描述A01入庫(kù)管理點(diǎn)擊按鈕

13、將頁(yè)面轉(zhuǎn)至入庫(kù)管理.jsp 頁(yè)面A02學(xué)生借書(shū)點(diǎn)擊按鈕 將頁(yè)面轉(zhuǎn)至學(xué)生借書(shū).jsp 頁(yè)面A03學(xué)生還書(shū)點(diǎn)擊按鈕 將頁(yè)面轉(zhuǎn)至學(xué)生還書(shū).jsp 頁(yè)面A04圖書(shū)注銷(xiāo)點(diǎn)擊按鈕 將頁(yè)面轉(zhuǎn)至圖書(shū)注銷(xiāo).jsp 頁(yè)面A05圖書(shū)查詢(xún)點(diǎn)擊按鈕 將頁(yè)面轉(zhuǎn)至圖書(shū)查詢(xún).jsp 頁(yè)面(2) 數(shù)據(jù)要求功能類(lèi)型:其他kk 第12頁(yè)2021/11/33.3 031 圖書(shū)信息查詢(xún)模塊具體格式如下:功能編號(hào)功能編號(hào)031功能名稱(chēng)功能名稱(chēng)圖書(shū)信息查圖書(shū)信息查詢(xún)模塊詢(xún)模塊內(nèi)容內(nèi)容功能流程圖功能流程圖所屬業(yè)務(wù)所屬業(yè)務(wù)圖書(shū)館管理所屬項(xiàng)目圖書(shū)館管理系統(tǒng)編寫(xiě)人編寫(xiě)人陳新光完成時(shí)間2007-11-26頁(yè)碼第 10 頁(yè)3.3.1 功能流程圖功能流

14、程圖如下圖:圖書(shū)查詢(xún).jsp錄入項(xiàng)檢驗(yàn)(非空)提交所填內(nèi)容失敗圖書(shū)查詢(xún)數(shù)據(jù)處理.jsp成功是否成功執(zhí)行數(shù)據(jù)庫(kù)操作查詢(xún)結(jié)果.jsp成功失敗需要說(shuō)明的問(wèn)題:錄入項(xiàng)檢測(cè)使用 javascript 來(lái)實(shí)現(xiàn)(各項(xiàng)非空) ;操作權(quán)限:面向所有用戶(hù)3.3.2 功能描述(1) 功能類(lèi)型:查詢(xún)數(shù)據(jù)(2) 功能概述:顯示查詢(xún)結(jié)果(3) 前提業(yè)務(wù):無(wú)kk 第13頁(yè)2021/11/3(4) 后繼業(yè)務(wù):(5) 功能約束:沒(méi)有約束;(6) 約束描述:(7) 操作權(quán)限:面向所有用戶(hù)3.3.3 界面設(shè)計(jì)(1) 基礎(chǔ)信息處理下表是動(dòng)作說(shuō)明:動(dòng)作編號(hào)動(dòng)作編號(hào)動(dòng)作名稱(chēng)動(dòng)作名稱(chēng)動(dòng)作描述動(dòng)作描述A01確定點(diǎn)擊按鈕 提交數(shù)據(jù)到圖書(shū)查詢(xún)數(shù)

15、據(jù)處理.jsp 頁(yè)面A02學(xué)生信息查詢(xún)點(diǎn)擊按鈕 將頁(yè)面轉(zhuǎn)至學(xué)生信息查詢(xún).jsp 頁(yè)面(2) 數(shù)據(jù)要求(1) 功能類(lèi)型:數(shù)據(jù)查詢(xún)(2) 數(shù)據(jù)描述:頁(yè)面顯示字段見(jiàn)下表:字段名稱(chēng)字段名稱(chēng)長(zhǎng)度長(zhǎng)度錄入方式錄入方式是否非空項(xiàng)是否非空項(xiàng)數(shù)據(jù)檢驗(yàn)數(shù)據(jù)檢驗(yàn)?zāi)J(rèn)顯示默認(rèn)顯示請(qǐng)選擇查詢(xún)請(qǐng)選擇查詢(xún)類(lèi)型類(lèi)型20下拉列表YN請(qǐng)輸入查詢(xún)請(qǐng)輸入查詢(xún)內(nèi)容內(nèi)容200文本框YN(3) 圖書(shū)信息查詢(xún)的輸出項(xiàng)書(shū)名圖書(shū)類(lèi)型作者譯者ISBN出版社kk 第14頁(yè)2021/11/3價(jià)格書(shū)架名稱(chēng)現(xiàn)存量簡(jiǎn)介書(shū)名圖書(shū)類(lèi)型3.3.4 模塊內(nèi)部邏輯Search.jspLib_query.jspChuli.jspView.jsp1, Search.js

16、p 用于顯示界面的內(nèi)容,給用戶(hù)顯示一個(gè)查詢(xún)接口2, Lib_query.jsp 用來(lái)調(diào)度所有的頁(yè)面,它根據(jù)傳入的參數(shù)來(lái)決定包含哪一個(gè) jsp 頁(yè)面來(lái)顯示內(nèi)容;在 lib_query.jsp 頁(yè)面中,它根據(jù)傳入的參數(shù)來(lái)決定包含哪一個(gè) jsp 頁(yè)面來(lái)顯示內(nèi)容;則可以通過(guò)jsp:include page=”/,利用 jsp:include 標(biāo)簽來(lái)kk 第15頁(yè)2021/11/3被動(dòng)態(tài)加載發(fā)送到相應(yīng)頁(yè)面;3, chuli.jsp 用來(lái)處理數(shù)據(jù)查詢(xún)和顯示查詢(xún)到的結(jié)果列表。在這個(gè)頁(yè)面中,數(shù)據(jù)要求是以列表的形式顯示到輸出頁(yè)面。由于查詢(xún)到的結(jié)果可能過(guò)多,所以采用分頁(yè)形式顯示;對(duì)于分頁(yè)功能的內(nèi)部邏輯: 4, V

17、iew.jsp 用來(lái)顯示查詢(xún)到的圖書(shū)的各項(xiàng)屬性。3.3.5 存儲(chǔ)分配圖書(shū)目錄文件(Book):序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)位數(shù)小數(shù)位數(shù)默認(rèn)值默認(rèn)值允許空允許空主鍵主鍵說(shuō)明說(shuō)明1(BookID)圖書(shū)編號(hào)Int101自動(dòng)編號(hào)2(TXM)條形碼nvarchar203(Title)書(shū)名nvarchar2004(TSLX)圖書(shū)類(lèi)型Nvarchar505(Author)作者Nvarchar206(Translator)譯者Nvarchar207(ISBN)ISBNNvarchar208(CBS)出版社Nvarchar3010(SJMC)書(shū)架名稱(chēng)Nvarchar2011(XCL)現(xiàn)存量S

18、mallint212(KCZL)庫(kù)存總量Smallint213(RKSJ)入庫(kù)時(shí)間Datatime14(CZY)操作員Nvarchar1015(JJ)簡(jiǎn)介Nvarchar20016(JCCS)借出次數(shù)Smallint217(SFzhuxiao)是否注銷(xiāo)Nvarchar218(BookZT)圖書(shū)狀態(tài)nvarchar50借書(shū)文件表(JSWJB):序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)小數(shù)位數(shù)位數(shù)默認(rèn)默認(rèn)值值允許允許空空主鍵主鍵外鍵外鍵說(shuō)明說(shuō)明1(JYID)Int101自動(dòng)kk 第16頁(yè)2021/11/3借閱編號(hào)編號(hào)2(BookID)圖書(shū)編號(hào)Int103(StuID)學(xué)生編號(hào)Int104(

19、JYSJ)借閱時(shí)間Datatime85(DQSJ)到期時(shí)間Datatime86(XJCS)續(xù)借次數(shù)Smallint27(CZY)操作員Nvarchar108(ZT)狀態(tài)navarchar503.4 032 學(xué)生信息查詢(xún)模塊具體格式如下:功能編號(hào)功能編號(hào)032功能名稱(chēng)功能名稱(chēng)學(xué)生信息查學(xué)生信息查詢(xún)模塊詢(xún)模塊內(nèi)容內(nèi)容功能流程圖功能流程圖所屬業(yè)務(wù)所屬業(yè)務(wù)圖書(shū)館管理所屬項(xiàng)目圖書(shū)館管理系統(tǒng)編寫(xiě)人編寫(xiě)人陳新光完成時(shí)間2007-11-26頁(yè)碼第 12 頁(yè)3.4.1 功能流程圖功能流程圖如下圖:學(xué)生信息查詢(xún).jsp錄入項(xiàng)檢驗(yàn)(非空)提交所填內(nèi)容失敗學(xué)生信息查詢(xún)數(shù)據(jù)處理.jsp成功是否成功執(zhí)行數(shù)據(jù)庫(kù)操作學(xué)生信息

20、查詢(xún)結(jié)果.jsp成功失敗需要說(shuō)明的問(wèn)題:錄入項(xiàng)檢測(cè)使用 javascript 來(lái)實(shí)現(xiàn)(各項(xiàng)非空) ;kk 第17頁(yè)2021/11/3操作權(quán)限:面向所有用戶(hù)3.4.2 功能描述(8) 功能類(lèi)型:查詢(xún)數(shù)據(jù)(9) 功能概述:顯示查詢(xún)結(jié)果(10) 前提業(yè)務(wù):無(wú)(11) 后繼業(yè)務(wù):(12) 功能約束:沒(méi)有約束;(13) 約束描述:(14) 操作權(quán)限:面向所有用戶(hù)3.4.3 界面設(shè)計(jì)(4) 基礎(chǔ)信息處理下表是動(dòng)作說(shuō)明:動(dòng)作編號(hào)動(dòng)作編號(hào)動(dòng)作名稱(chēng)動(dòng)作名稱(chēng)動(dòng)作描述動(dòng)作描述A01確定點(diǎn)擊按鈕 提交數(shù)據(jù)到圖書(shū)查詢(xún)數(shù)據(jù)處理.jsp 頁(yè)面A02圖書(shū)信息查詢(xún)點(diǎn)擊按鈕 將頁(yè)面轉(zhuǎn)至圖書(shū)信息查詢(xún).jsp 頁(yè)面(5) 數(shù)據(jù)要求(

21、3) 功能類(lèi)型:數(shù)據(jù)查詢(xún)(4) 數(shù)據(jù)描述:頁(yè)面顯示字段見(jiàn)下表:字段名稱(chēng)字段名稱(chēng)長(zhǎng)度長(zhǎng)度錄入方式錄入方式是否非空項(xiàng)是否非空項(xiàng)數(shù)據(jù)檢驗(yàn)數(shù)據(jù)檢驗(yàn)?zāi)J(rèn)顯示默認(rèn)顯示請(qǐng)輸入學(xué)號(hào)請(qǐng)輸入學(xué)號(hào)10文本框YN(6) 學(xué)生信息查詢(xún)的輸出項(xiàng)kk 第18頁(yè)2021/11/3學(xué)生學(xué)號(hào)姓名性別生日證件號(hào)碼聯(lián)系電話登記日期有效期至已借書(shū)數(shù)3.4.4 模塊內(nèi)部邏輯Search.jspIndex.jspList.jspView.jsp5, Search.jsp 用于顯示界面的內(nèi)容,給用戶(hù)顯示一個(gè)查詢(xún)接口6, Index.jsp 用來(lái)調(diào)度所有的頁(yè)面,它根據(jù)傳入的參數(shù)來(lái)決定包含哪一個(gè) jsp 頁(yè)面來(lái)顯示內(nèi)容;在 index.jsp

22、頁(yè)面中,它根據(jù)傳入的參數(shù)來(lái)決定包含哪一個(gè) jsp 頁(yè)面來(lái)顯示內(nèi)容;則可以通過(guò)jsp:include page=”/,利用 jsp:include 標(biāo)簽來(lái)被動(dòng)態(tài)加載發(fā)送到相應(yīng)頁(yè)面;7, List.jsp 用來(lái)顯示查詢(xún)到的結(jié)果列表。kk 第19頁(yè)2021/11/38, View.jsp 用來(lái)顯示查詢(xún)到的學(xué)生的各項(xiàng)屬性。注釋?zhuān)簩W(xué)生信息查詢(xún)模塊與圖書(shū)查詢(xún)模塊屬于同一類(lèi)功能。實(shí)現(xiàn)可以完全類(lèi)似。3.4.5 存儲(chǔ)分配學(xué)生文件:序號(hào)序號(hào)字段字段字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)小數(shù)位數(shù)位數(shù)默認(rèn)默認(rèn)值值允許允許空空主鍵主鍵說(shuō)明說(shuō)明1 1XSID學(xué)生編號(hào)Int101自動(dòng)編號(hào)2 2Name姓名nvarchar

23、103 3Sex性別nvarchar24 4ZJH證件號(hào)碼nvarchar255 5LXDH聯(lián)系電話nvarchar406 6DJRQ登記日期datetime87 7YXQZ有效期至datetime88 8YJSS已借書(shū)數(shù)smallint29 9RuleID學(xué)生規(guī)則IDint101010ZT是否掛失nvarchar2借書(shū)文件:序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)位小數(shù)位數(shù)數(shù)默認(rèn)值默認(rèn)值允許空允許空主鍵主鍵外鍵外鍵說(shuō)明說(shuō)明1借閱編號(hào)Int101自動(dòng)編號(hào)2圖書(shū)編號(hào)Int103學(xué)生編號(hào)Int104借閱時(shí)間Datatime85到期時(shí)間Datatime86續(xù)借次Smallint2kk 第20

24、頁(yè)2021/11/3數(shù)7操作員Nvarchar108狀態(tài)navarchar503.5 021 入庫(kù)管理具體格式如下:功能編號(hào)功能編號(hào)021功能名稱(chēng)功能名稱(chēng)入庫(kù)管理模入庫(kù)管理模塊塊內(nèi)容內(nèi)容功能流程圖功能流程圖所屬業(yè)務(wù)所屬業(yè)務(wù)圖書(shū)館管理所屬項(xiàng)目圖書(shū)館管理系統(tǒng)編寫(xiě)人編寫(xiě)人陳新光完成時(shí)間2007-11-27頁(yè)碼第 16 頁(yè)3.5.1 功能流程圖入庫(kù)管理.jsp錄入項(xiàng)檢驗(yàn)(非空)提交所填內(nèi)容失敗入庫(kù)數(shù)據(jù)處理.jsp成功是否成功執(zhí)行數(shù)據(jù)庫(kù)操作顯示結(jié)果.jsp成功失敗(1) 執(zhí)行數(shù)據(jù)庫(kù)操作的時(shí)候要驗(yàn)證權(quán)限(2) 錄入項(xiàng)檢驗(yàn)用 javascript 來(lái)實(shí)現(xiàn)(選項(xiàng)非空)3.5.2 功能描述(1) 功能類(lèi)型:添加

25、數(shù)據(jù)(2) 功能描述:增加圖書(shū)目錄文件中的圖書(shū)信息。(3) 前提業(yè)務(wù):管理模塊(4) 后繼業(yè)務(wù):無(wú)(5) 功能約束:權(quán)限約束kk 第21頁(yè)2021/11/3(6) 約束描述:無(wú)(7) 操作權(quán)限:圖書(shū)館管理人員3.5.3 界面設(shè)計(jì)1, 基礎(chǔ)信息處理動(dòng)作說(shuō)明如下表:動(dòng)作編號(hào)動(dòng)作編號(hào)動(dòng)作名稱(chēng)動(dòng)作名稱(chēng)動(dòng)作描述動(dòng)作描述A01保存點(diǎn)擊按鈕 提交數(shù)據(jù)到入庫(kù)數(shù)據(jù)處理.jsp 頁(yè)面A02退出點(diǎn)擊按鈕 將當(dāng)前頁(yè)面關(guān)閉2, 數(shù)據(jù)描述(1) 功能類(lèi)型:數(shù)據(jù)增加。(2) 數(shù)據(jù)描述:頁(yè)面錄入字段見(jiàn)下表:字段名稱(chēng)字段名稱(chēng)長(zhǎng)度長(zhǎng)度錄入方式錄入方式是否非空項(xiàng)是否非空項(xiàng)數(shù)據(jù)檢驗(yàn)數(shù)據(jù)檢驗(yàn)?zāi)J(rèn)顯示默認(rèn)顯示書(shū)號(hào)書(shū)號(hào)30文本框YN條形碼

26、條形碼20文本框YN書(shū)名書(shū)名200文本框YN作者作者20文本框YN出版社出版社30文本框YN版次版次50文本框YN圖書(shū)類(lèi)別圖書(shū)類(lèi)別20文本框YN單價(jià)單價(jià)8文本框YN錄入時(shí)間錄入時(shí)間默認(rèn)系統(tǒng)時(shí)間,格式: 年 月 日只需程序記錄顯示在入庫(kù)界面kk 第22頁(yè)2021/11/3錄入人錄入人默認(rèn)系統(tǒng)登陸人員只需程序記錄顯示在入庫(kù)界面3, 入庫(kù)數(shù)據(jù)處理內(nèi)部邏輯:圖書(shū)入庫(kù)采用表格進(jìn)行多行添加:利用 javaBean 來(lái)編寫(xiě)一個(gè) BookBean 來(lái)管理圖書(shū)。在 BookBean 類(lèi)中增加記錄的公共接口來(lái)實(shí)現(xiàn)入庫(kù)數(shù)據(jù)的添加。具體的類(lèi)設(shè)計(jì)如下:Public int insert (Hashtable hash)

27、 int intID = makeID(Book,BookID,true);Vector vect = new Vector();vect.add(Book);vect.add(addVector(BookID,String.valueOf(intID),NUM);vect.add(addVector(Title,ds.toString(String)hash.get(TITLE),CHAR); vect.add(addVector(Author,ds.toString(String)hash.get(AUTHOR),CHAR);vect.add(addVector(ISBN,ds.toStr

28、ing(String)hash.get(ISBN),CHAR);。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。/還有其他選項(xiàng),同上格式。 return insertRecord(vect);該方法有一個(gè)參數(shù),是 java.util.Hashtable 類(lèi),在調(diào)用該方法前,先用和 hashtable 的 put 方法將字段名和該條記錄的值存入 hashtable 中,然后將這個(gè) hashtable 作為參數(shù)傳入 insert 方法中。在 insert 方法的最后,調(diào)用 ParentBean 中的 insertRecord 方法,insertRecord 可以根據(jù)傳

29、入的參數(shù)自動(dòng)的生成增加記錄的kk 第23頁(yè)2021/11/3SQL 語(yǔ)句并通過(guò) JDBC 發(fā)送到數(shù)據(jù)庫(kù)。 正對(duì) ParentBean 類(lèi):主要是實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的各種操作:如與數(shù)據(jù)庫(kù)的連接,對(duì)數(shù)據(jù)庫(kù)的操作。 3.5.4 存儲(chǔ)分配圖書(shū)目錄文件:序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)位數(shù)小數(shù)位數(shù)默認(rèn)值默認(rèn)值允許空允許空主鍵主鍵說(shuō)明說(shuō)明1圖書(shū)編號(hào)Int101自動(dòng)編號(hào)2條形碼nvarchar203書(shū)名nvarchar2004圖書(shū)類(lèi)型Nvarchar505作者Nvarchar206譯者Nvarchar207ISBNNvarchar208出版社Nvarchar309價(jià)格Money810書(shū)架名稱(chēng)Nva

30、rchar2011現(xiàn)存量Smallint212庫(kù)存總量Smallint213入庫(kù)時(shí)間Datatime814操作員Nvarchar1015簡(jiǎn)介Nvarchar20016借出次數(shù)Smallint217是否注銷(xiāo)Nvarchar218圖書(shū)狀態(tài)nvarchar50入庫(kù)表:序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)位小數(shù)位數(shù)數(shù)默認(rèn)值默認(rèn)值允許空允許空主鍵主鍵外鍵外鍵說(shuō)明說(shuō)明1書(shū)號(hào)Nvarchar301自動(dòng)編號(hào)2條形碼Nvarchar203書(shū)名Nvarchar2004作者Nvarchar205出版社Nvarchar30kk 第24頁(yè)2021/11/36版次Nvarchar507圖書(shū)類(lèi)別Nvarchar

31、208存放位置Nvarchar209單價(jià)Money810入庫(kù)數(shù)量Smallint211金額Money812經(jīng)手人Nvarchar1013票號(hào)Nvarchar3014操作員Nvarchar1015日期Datatime8注:3.6 022 學(xué)生借書(shū)模塊具體格式如下:功能編號(hào)功能編號(hào)022功能名稱(chēng)功能名稱(chēng)學(xué)生借書(shū)模學(xué)生借書(shū)模塊塊內(nèi)容內(nèi)容功能流程圖功能流程圖所屬業(yè)務(wù)所屬業(yè)務(wù)圖書(shū)館管理所屬項(xiàng)目圖書(shū)館管理系統(tǒng)編寫(xiě)人編寫(xiě)人陳新光完成時(shí)間2007-11-27頁(yè)碼第 21 頁(yè)3.6.1 功能流程圖借書(shū).jsp錄入項(xiàng)檢驗(yàn)(非空)提交所填內(nèi)容失敗檢查學(xué)生欠款信息成功欠款是否超額執(zhí)行數(shù)據(jù)庫(kù)操作處理借書(shū)數(shù)據(jù).jsp未超

32、額超額是否成功失敗顯示學(xué)生借書(shū)信息.jspkk 第25頁(yè)2021/11/3需要說(shuō)明的問(wèn)題:(1) 在進(jìn)行借書(shū),修改數(shù)據(jù)信息時(shí),應(yīng)先查詢(xún)學(xué)生的欠款信息,如欠款超額,則利用 javascript 實(shí)現(xiàn)信息提示,拒絕借書(shū),如無(wú)超額,則接受借書(shū)。(2) 為便于以后的恢復(fù)操作,此修改操作只在表中做一個(gè)標(biāo)志,并不是真正的對(duì)其修改;3.6.2 功能描述(1) 功能類(lèi)型:修改數(shù)據(jù)和查詢(xún)數(shù)據(jù)(2) 功能描述:更新學(xué)生借書(shū)文件,圖書(shū)目錄文件等中的信息;(3) 前提業(yè)務(wù):管理模塊(4) 后繼業(yè)務(wù):無(wú)(5) 功能約束:權(quán)限約束(6) 約束描述:(7) 操作權(quán)限:圖書(shū)館管理人員3.6.3 界面設(shè)計(jì)1,基礎(chǔ)信息處理動(dòng)作說(shuō)

33、明如下:動(dòng)作編號(hào)動(dòng)作編號(hào)動(dòng)作名稱(chēng)動(dòng)作名稱(chēng)動(dòng)作描述動(dòng)作描述A01重置點(diǎn)擊按鈕 將文本框內(nèi)的所有數(shù)據(jù)清空A02提交點(diǎn)擊按鈕 將數(shù)據(jù)提交到處理學(xué)生超額信息頁(yè)面A03取消將當(dāng)前頁(yè)面關(guān)閉,并取消借閱kk 第26頁(yè)2021/11/32,數(shù)據(jù)描述(1) 功能類(lèi)型:修改數(shù)據(jù)和查詢(xún)數(shù)據(jù)(2) 界面設(shè)計(jì):(3) 數(shù)據(jù)字段描述:字段名稱(chēng)字段名稱(chēng)長(zhǎng)度長(zhǎng)度錄入方式錄入方式是否非空項(xiàng)是否非空項(xiàng)數(shù)據(jù)檢驗(yàn)數(shù)據(jù)檢驗(yàn)?zāi)J(rèn)顯示默認(rèn)顯示學(xué)生證件號(hào)學(xué)生證件號(hào)碼碼10文本框YN書(shū)籍條形碼書(shū)籍條形碼號(hào)號(hào)10文本框YN3,圖書(shū)借閱數(shù)據(jù)處理內(nèi)部邏輯If(strEdit.equals(“1”)If(學(xué)生超額|學(xué)生不存在)ifSuccess=fa

34、lse;elseIf(!bb.IsValid(hash)/新增操作Int intdel=bb.addBorrow(hash);If(intdel=null)ifSuccess=false;elsekk 第27頁(yè)2021/11/3For(int i=0;ialert(“”);alert(“借閱失??!”);alert(“借閱成功!”);%執(zhí)行的過(guò)程如下:首先要驗(yàn)證學(xué)生信息是否存在和學(xué)生的欠款是否超額,也就是說(shuō)學(xué)生是否可以借書(shū),圖書(shū)是否在館等,在 確定合法之后調(diào)用 bb.addBorrow(hash)來(lái)完成借閱流程。流程其實(shí)就是對(duì)幾個(gè)表進(jìn)行增改的操作。關(guān)于 addBorrow(hash)的算法:pu

35、blic int addBorrow(Hashtable hash)System.out.println(批量處理新增借閱。 。 。 。 。 。);String sql=;int intID = makeID(JYWJB,JYID,true);String strID=String.valueOf(intID);kk 第28頁(yè)2021/11/3String strZJH = ds.toString(String)hash.get(ZJH);/證件號(hào)String strTXM = ds.toString(String)hash.get(TXM);/條形碼String strJYSJ = ds.t

36、oString(String)hash.get(JYSJ);/借閱時(shí)間String strXSID = ;/學(xué)生 IDString strBOOKID = ;/圖書(shū) IDString strDQSJ = ;/到期時(shí)間String strXJCS = ;/續(xù)借次數(shù)/根據(jù)學(xué)生證件號(hào)取的學(xué)生 ID/根據(jù)學(xué)生 ID 取得規(guī)則 ID,然后取得可以借閱天數(shù),sql=select Student.RuleID,Student.XSID,Rule.KJYSJ + from Studengt,RULE + where Student.ZJH=+strZJH+ and Student.RuleID=Rule.Ru

37、leID ;Hashtable hashReId=(Hashtable)searchOneData(sql);strXSID=ds.toString(String)hashReId.get(XSID);String strKJYSJ=ds.toString(String)hashReId.get(KJYSJ);/根據(jù)條形碼取得圖書(shū) ID sql=select BOOKID from Book where TXM=+strTXM+;Hashtable hashBKID=(Hashtable)searchOneData(sql);strBOOKID = ds.toString(String)has

38、hBKID.get(BOOKID);/新增操作createStatement();clearBatch();sql= insert into JSWJB(JYID,XSID,BOOKID,JYSJ,DQSJ,ZT,XJCS) kk 第29頁(yè)2021/11/3+ values(+strID+,+strXSID+,+strBOOKID+,+strJYSJ+,to_char(to_date(+strJYSJ+,yyyy-MM-dd)+strKJYSJ+),yyyy-MM-dd)+,+strZero+,+strZero+);addBatch(sql);sql=update Book set ZT=借出

39、 where BOOKID=+strBOOKID;addBatch(sql);sql=update Student set YJSS=YJSS+1 where XSID=+strXSID;addBatch(sql);int result=executeBatch();closeStm();return result;而對(duì)于取消按鈕事件,由于要實(shí)現(xiàn)取消借閱,所以需要調(diào)用delBorrow(String id)來(lái)取消借閱操作;算法如下:public int delBorrow(String id)System.out.println(批量處理取消借閱。 。 。 。 。);String sql=;s

40、ql=select BOOKID from JSWJB where JYID=+id;Hashtable hash=(Hashtable)searchOneData(sql);String strBOOKID=(String)hash.get(BOOKID);createStatement();clearBatch();sql=update JSWJB set ZT=+strOne+ where JYID=+id;addBatch(sql);kk 第30頁(yè)2021/11/3sql=update BOOK set ZT=可借 where BOOKID=+strBOOKID;addBatch(sq

41、l);int result=executeBatch();closeStm();return result;3.6.4 存儲(chǔ)分配借書(shū)文件:序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)位小數(shù)位數(shù)數(shù)默認(rèn)值默認(rèn)值允許空允許空主鍵主鍵外鍵外鍵說(shuō)明說(shuō)明1借閱編號(hào)Int101自動(dòng)編號(hào)2圖書(shū)編號(hào)Int103學(xué)生編號(hào)Int104借閱時(shí)間Datatime85到期時(shí)間Datatime86續(xù)借次數(shù)Smallint27操作員Nvarchar108狀態(tài)navarchar50罰款單:序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)位小數(shù)位數(shù)數(shù)默認(rèn)值默認(rèn)值允許空允許空主鍵主鍵外鍵外鍵說(shuō)明說(shuō)明1借閱編號(hào)Int101自動(dòng)編

42、號(hào)2圖書(shū)編Int10kk 第31頁(yè)2021/11/3號(hào)3學(xué)生編號(hào)Int104應(yīng)罰金額Smallint35實(shí)收金額Smallint36狀態(tài)Nvarchar17備注Nvarchar200學(xué)生文件:序號(hào)序號(hào)字段字段字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)小數(shù)位數(shù)位數(shù)默認(rèn)默認(rèn)值值允許允許空空主鍵主鍵說(shuō)明說(shuō)明1 1XSID學(xué)生編號(hào)Int101自動(dòng)編號(hào)2 2Name姓名nvarchar103 3Sex性別nvarchar24 4ZJH證件號(hào)碼nvarchar255 5LXDH聯(lián)系電話nvarchar406 6DJRQ登記日期datetime87 7YXQZ有效期至datetime88 8YJSS已借書(shū)數(shù)s

43、mallint29 9RuleID學(xué)生規(guī)則IDint101010ZT是否掛失nvarchar2 3.7 023 學(xué)生還書(shū)具體格式如下:功能編號(hào)功能編號(hào)023功能名稱(chēng)功能名稱(chēng)學(xué)生還模塊學(xué)生還模塊內(nèi)容內(nèi)容功能流程圖功能流程圖所屬業(yè)務(wù)所屬業(yè)務(wù)圖書(shū)館管理所屬項(xiàng)目圖書(shū)館管理系統(tǒng)編寫(xiě)人編寫(xiě)人陳新光完成時(shí)間2007-11-27頁(yè)碼第 27 頁(yè)kk 第32頁(yè)2021/11/33.7.1 功能流程圖還書(shū).jsp錄入項(xiàng)檢測(cè)(非空)提交數(shù)據(jù)處理.jsp成功失敗是否 成功執(zhí)行數(shù)據(jù)庫(kù)操作顯示結(jié)果成功失敗需要說(shuō)明的問(wèn)題:(1) 顯示結(jié)果可直接在處理結(jié)果.jsp 中利用 javascript 來(lái)實(shí)現(xiàn)顯示功能?。?) 處理要

44、包含:對(duì)圖書(shū)狀態(tài)和借書(shū)文件表中信息的修改以及學(xué)生的欠款金額的計(jì)算,并更新 Publish 表。3.7.2 功能描述(1) 功能類(lèi)型:修改數(shù)據(jù)(2) 功能概述:完成學(xué)生的還書(shū)業(yè)務(wù)并計(jì)算學(xué)生的欠款信息(3) 前提業(yè)務(wù):管理模塊(4) 后繼業(yè)務(wù):無(wú)(5) 功能約束:權(quán)限約束(6) 約束描述:(7) 操作權(quán)限:圖書(shū)館管理人員3.7.3 界面設(shè)計(jì)(1) 基礎(chǔ)信息處理動(dòng)作編號(hào)動(dòng)作編號(hào)動(dòng)作名稱(chēng)動(dòng)作名稱(chēng)動(dòng)作描述動(dòng)作描述A01重置點(diǎn)擊按鈕 將文本框內(nèi)的所有數(shù)據(jù)清空A02提交點(diǎn)擊按鈕 將數(shù)據(jù)提交到處理還書(shū)信息頁(yè)面kk 第33頁(yè)2021/11/3(2) 界面描述:(3) 數(shù)據(jù)描述字段名稱(chēng)字段名稱(chēng)長(zhǎng)度長(zhǎng)度錄入方式錄入

45、方式是否非空項(xiàng)是否非空項(xiàng)數(shù)據(jù)檢驗(yàn)數(shù)據(jù)檢驗(yàn)?zāi)J(rèn)顯示默認(rèn)顯示書(shū)籍條形碼書(shū)籍條形碼號(hào)號(hào)10文本框YN對(duì)于還書(shū)業(yè)務(wù)的處理,實(shí)質(zhì)上與借書(shū)業(yè)務(wù)的實(shí)現(xiàn)基本上相同,只是調(diào)用了 backBorrow(hash)來(lái)實(shí)現(xiàn)還書(shū)功能;If(strEdit.equals(“1”)Int intdel=bb.BackBorrow(hash);If(intdel=null)ifSuccess=false;elseFor(int i=0;ialert(“歸還操作失?。 ?;alert(“歸還操作成功!”);%kk 第34頁(yè)2021/11/3針對(duì) backBorrow(hash)算法如下:public int backBorro

46、w(String TXM)System.out.println(批量處理還書(shū)。 。 。 。 。);String sql=;String strBOOKID=ds.toString(String)toName(BOOK,TXM,BOOKID,TXM);String strNow = ds.getDateTime();strNow = strNow.substring(0,10);createStatement();clearBatch();sql=update JSWJB set ZT=+strOne+,DQSJ=+strNow+ where BOOKID=+strBOOKID+ and ZT=

47、+strZero+;System.out.println(sql1:+sql);addBatch(sql);sql=update BOOK set ZT=可借 where BOOKID=+strBOOKID;System.out.println(sql2:+sql);addBatch(sql);int result=executeBatch();closeStm();return result;kk 第35頁(yè)2021/11/33.7.4 存儲(chǔ)分配借書(shū)文件:序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)位小數(shù)位數(shù)數(shù)默認(rèn)值默認(rèn)值允許空允許空主鍵主鍵外鍵外鍵說(shuō)明說(shuō)明1借閱編號(hào)Int101自動(dòng)編號(hào)2

48、圖書(shū)編號(hào)Int103學(xué)生編號(hào)Int104借閱時(shí)間Datatime85到期時(shí)間Datatime86續(xù)借次數(shù)Smallint27操作員Nvarchar108狀態(tài)navarchar50學(xué)生文件:序號(hào)序號(hào)字段字段字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)小數(shù)位數(shù)位數(shù)默認(rèn)默認(rèn)值值允許允許空空主鍵主鍵說(shuō)明說(shuō)明1 1XSID學(xué)生編號(hào)Int101自動(dòng)編號(hào)2 2Name姓名nvarchar103 3Sex性別nvarchar24 4ZJH證件號(hào)碼nvarchar255 5LXDH聯(lián)系電話nvarchar406 6DJRQ登記日期datetime87 7YXQZ有效期至datetime88 8YJSS已借書(shū)數(shù)sma

49、llint29 9RuleID學(xué)生規(guī)則IDint101010ZT是否掛失nvarchar2圖書(shū)目錄文件:kk 第36頁(yè)2021/11/3序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)位數(shù)小數(shù)位數(shù)默認(rèn)值默認(rèn)值允許空允許空主鍵主鍵說(shuō)明說(shuō)明1圖書(shū)編號(hào)Int101自動(dòng)編號(hào)2條形碼nvarchar203書(shū)名nvarchar2004圖書(shū)類(lèi)型Nvarchar505作者Nvarchar206譯者Nvarchar207ISBNNvarchar208出版社Nvarchar309價(jià)格Money810書(shū)架名稱(chēng)Nvarchar2011現(xiàn)存量Smallint212庫(kù)存總量Smallint213入庫(kù)時(shí)間Datatime8

50、14操作員Nvarchar1015簡(jiǎn)介Nvarchar20016借出次數(shù)Smallint217是否注銷(xiāo)Nvarchar218圖書(shū)狀態(tài)nvarchar50罰款單;序號(hào)序號(hào)字段名字段名類(lèi)型類(lèi)型長(zhǎng)度長(zhǎng)度精度精度小數(shù)位小數(shù)位數(shù)數(shù)默認(rèn)值默認(rèn)值允許空允許空主鍵主鍵外鍵外鍵說(shuō)明說(shuō)明1借閱編號(hào)Int101自動(dòng)編號(hào)2圖書(shū)編號(hào)Int103學(xué)生編號(hào)Int104應(yīng)罰金額Smallint35實(shí)收金額Smallint36狀態(tài)Nvarchar17備注Nvarchar200kk 第37頁(yè)2021/11/33.8 024 圖書(shū)注銷(xiāo)具體格式如下:功能編號(hào)功能編號(hào)024功能名稱(chēng)功能名稱(chēng)圖書(shū)注銷(xiāo)模圖書(shū)注銷(xiāo)模塊塊內(nèi)容內(nèi)容功能流程圖功能

51、流程圖所屬業(yè)務(wù)所屬業(yè)務(wù)圖書(shū)館管理所屬項(xiàng)目圖書(shū)館管理系統(tǒng)編寫(xiě)人編寫(xiě)人陳新光完成時(shí)間2007-11-27頁(yè)碼第 31 頁(yè)3.8.1 功能流程圖注銷(xiāo).jsp錄入項(xiàng)檢測(cè)(非空)提交數(shù)據(jù)處理.jsp成功失敗是否 成功執(zhí)行數(shù)據(jù)庫(kù)操作顯示結(jié)果成功失敗需要說(shuō)明的問(wèn)題:(1) 顯示結(jié)果可直接在處理結(jié)果.jsp 中利用 javascript 來(lái)實(shí)現(xiàn)顯示功能!(2) 在處理圖書(shū)注銷(xiāo)的時(shí)候,為了便于以后的恢復(fù)操作,此刪除操作只在表中做一標(biāo)志,并不是真正的刪除。3.8.2 功能描述(1) 功能描述:刪除數(shù)據(jù)(2) 功能概述:注銷(xiāo)圖書(shū)(3) 前提業(yè)務(wù):管理模塊(4) 后繼業(yè)務(wù):無(wú)(5) 約束描述:(6) 操作權(quán)限:圖書(shū)館

52、管理人員3.8.3 界面設(shè)計(jì)(1) 基礎(chǔ)信息處理kk 第38頁(yè)2021/11/3動(dòng)作說(shuō)明如下:動(dòng)作編號(hào)動(dòng)作編號(hào)動(dòng)作名稱(chēng)動(dòng)作名稱(chēng)動(dòng)作描述動(dòng)作描述A01重置點(diǎn)擊按鈕 將文本框內(nèi)的所有數(shù)據(jù)清空A02提交點(diǎn)擊按鈕 將數(shù)據(jù)提交到處理還書(shū)信息頁(yè)面(2) 界面描述:(3) 數(shù)據(jù)描述:字段名稱(chēng)字段名稱(chēng)長(zhǎng)度長(zhǎng)度錄入方式錄入方式是否非空項(xiàng)是否非空項(xiàng)數(shù)據(jù)檢驗(yàn)數(shù)據(jù)檢驗(yàn)?zāi)J(rèn)顯示默認(rèn)顯示書(shū)籍條形碼書(shū)籍條形碼號(hào)號(hào)10文本框YN(4) 對(duì)于圖書(shū)注銷(xiāo)業(yè)務(wù)的處理3.8.4 存儲(chǔ)分配圖書(shū)目錄文件:kk 第39頁(yè)2021/11/38出版社Nvarchar309價(jià)格Money810書(shū)架名稱(chēng)Nvarchar2011現(xiàn)存量Smallint

53、212庫(kù)存總量Smallint213入庫(kù)時(shí)間Datatime814操作員Nvarchar1015簡(jiǎn)介Nvarchar20016借出次數(shù)Smallint217是否注銷(xiāo)Nvarchar218圖書(shū)狀態(tài)nvarchar503.9 025 基礎(chǔ)信息設(shè)置3.10接口設(shè)計(jì)(1) 用來(lái)查詢(xún)一條數(shù)據(jù)的私有接口該方法有一個(gè)參數(shù),參數(shù)是一個(gè)字符串,表示要向數(shù)據(jù)庫(kù)發(fā)送一條SQL 語(yǔ)句,這個(gè) SQL 只是一個(gè)查詢(xún)語(yǔ)句,方法的返回植是一個(gè)Hashtable,在 Hashtable 中以鍵值對(duì)的方式表示了從數(shù)據(jù)庫(kù)中選出了第一行記錄。用 Hashtable 中的 get(“FieldName”)方法可以得到改行記錄的某一個(gè)記

54、錄的值。private Hashtable searchOneData(String sql) Hashtable hash = new Hashtable();ResultSet rs = selectRecord(sql);Statement stmt = null;trykk 第40頁(yè)2021/11/3/取得列數(shù)和列名ResultSetMetaData rsmd = rs.getMetaData();int cols = rsmd.getColumnCount();if(rs.next()for(int i=1;i=cols;i+)String field= ds.toString(rs

55、md.getColumnName(i);String value = ds.toString(rs.getString(i);hash.put(field,value);catch(Exception e)System.out.println(運(yùn)行時(shí)出錯(cuò):+e);finallyif(rs!=null)try stmt=rs.getStatement(); rs.close();catch(Exception e)System.out.println(關(guān)閉記錄集 rs 時(shí)出錯(cuò)+e);if(stmt!=null) trystmt.close();catch(Exception e)System.o

56、ut.println(關(guān)閉聲明時(shí) statement 出錯(cuò)+e);kk 第41頁(yè)2021/11/3return hash;(2) 增加記錄的公共接口該方法有一個(gè)參數(shù),是 java.util.Hashtable 類(lèi),在調(diào)用該方法前,先用和hashtable 的 put 方法將字段名和該條記錄的值存入 hashtable 中,然后將這個(gè)hashtable 作為參數(shù)傳入 insert 方法中。 在 insert 方法的最后,調(diào)用 ParentBean中的 insertRecord 方法,insertRecord 可以根據(jù)傳入的參數(shù)自動(dòng)的生成增加記錄的 SQL 語(yǔ)句并通過(guò) JDBC 發(fā)送到數(shù)據(jù)庫(kù)Pub

57、lic int insert(Hashtable hash)Int intID=makeID(“Book”,”BookID”,”,true);Vector vect=new Vector();Vect.add(“.”);Return insertRecord(vect);(3) 刪除記錄的公共接口該方法有一個(gè)參數(shù) id,該參數(shù)表示的是 book 表中的 ID 字段,ID 字段是這個(gè)表的主鍵,用這個(gè)主鍵可以檢索到表中的一條唯一的記錄,通過(guò)這個(gè)主鍵,delete 方法可以生成一條 SQL 語(yǔ)句,刪除這一條記錄。public int delete(String id)kk 第42頁(yè)2021/11/3

58、String sql=;sql=delete from Book where BookID=+id;return deleteRecord(sql);(4) 查詢(xún)記錄的公共接口Public Vector getData(String sqlwhere, int page)String sql=”;Sql=”select * from Book”;If (!sqlwhere.equals(“”)Sql+=sqlwhere;Return getOnePage(sql,page,20);(5) 修改記錄的接口public int update(Hashtable hash)Vector vect =

59、 new Vector();vect.add(Book);vect.add(addVector(Title,ds.toString(String)hash.get(TITLE),CHAR);vect.add(addVector(Author,ds.toString(String)hash.get(AUTHOR),CHAR);vect.add(addVector(ISBN,ds.toString(String)hash.get(ISBN),CHAR);kk 第43頁(yè)2021/11/3return updateRecord(vect);3.11測(cè)試要點(diǎn)3.11.1測(cè)試范圍測(cè)試范圍測(cè)試范圍主要內(nèi)容主要內(nèi)容簡(jiǎn)要說(shuō)明簡(jiǎn)要說(shuō)明系統(tǒng)登陸驗(yàn)證系統(tǒng)登陸驗(yàn)證驗(yàn)證用戶(hù)身份,進(jìn)行權(quán)限控制功能性測(cè)試信息檢索功能測(cè)試信息檢索功能測(cè)試測(cè)試數(shù)據(jù)庫(kù)檢索代碼的健壯性功能性測(cè)試3.11.2測(cè)試方法功能性測(cè)試:黑盒測(cè)試

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

相關(guān)資源

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

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

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


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