軟件工程導(dǎo)論課程設(shè)計(jì)報(bào)告_2016-11-22_第1頁(yè)
軟件工程導(dǎo)論課程設(shè)計(jì)報(bào)告_2016-11-22_第2頁(yè)
軟件工程導(dǎo)論課程設(shè)計(jì)報(bào)告_2016-11-22_第3頁(yè)
軟件工程導(dǎo)論課程設(shè)計(jì)報(bào)告_2016-11-22_第4頁(yè)
軟件工程導(dǎo)論課程設(shè)計(jì)報(bào)告_2016-11-22_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、中南民族大學(xué)計(jì)算機(jī)科學(xué)學(xué)院課程設(shè)計(jì)報(bào)告課 程 軟件工程導(dǎo)論 題 目 美食信息管理系統(tǒng) 年 級(jí) 2014級(jí) 專 業(yè) 軟件工程 學(xué) 生 學(xué) 號(hào) 指導(dǎo)老師 2016 年 11 月 21 日 34軟件工程導(dǎo)論課程設(shè)計(jì)目錄1、前言31.1、項(xiàng)目概述31.2、項(xiàng)目實(shí)施環(huán)境(注:包括開發(fā)、運(yùn)行環(huán)境)31.3、項(xiàng)目分工41.4、項(xiàng)目實(shí)施計(jì)劃42、需求分析階段42.1、可行性研究42.2、功能需求52.2.1 功能劃分52.2.2 功能描述62.2.3 數(shù)據(jù)流圖82.2.4 E-R圖82.2.5 數(shù)據(jù)字典92.3、性能需求112.3.1精度112.3.2時(shí)間特性要求112.3.3靈活性112.4、可靠性和可用性

2、需求112.5、出錯(cuò)處理需求122.5.1操作跟蹤122.5.2訪問(wèn)控制122.6、接口需求122.6.1硬件接口122.6.2軟件接口122.7、約束122.8、逆向需求132.9、將來(lái)可能提出的要求133、設(shè)計(jì)階段133.1、概要設(shè)計(jì)133.1.1設(shè)計(jì)目標(biāo)133.1.2 系統(tǒng)功能結(jié)構(gòu)設(shè)置143.1.3 數(shù)據(jù)庫(kù)物理模型143.2、詳細(xì)設(shè)計(jì)153.2.1 系統(tǒng)界面設(shè)計(jì)153.2.2 系統(tǒng)功能模塊算法設(shè)計(jì)214、調(diào)試與分析214.1、功能模塊源代碼214.1.1新添美食信息功能模塊添加按鈕核心代碼214.1.2 新添美食信息功能模塊美食圖片按鈕核心代碼(獲取圖片信息)254.2、功能模塊測(cè)設(shè)用例

3、284.2.1 測(cè)試設(shè)計(jì)用例284.2.2 測(cè)試設(shè)計(jì)用例實(shí)際運(yùn)行結(jié)果截圖305、使用說(shuō)明書326、總結(jié)347、參考文獻(xiàn)341、前言1.1、項(xiàng)目概述由于計(jì)算機(jī)技術(shù)的飛速發(fā)展,利用軟件工程的基本原理進(jìn)行軟件項(xiàng)目的分析、設(shè)計(jì)、測(cè)試和實(shí)現(xiàn),在各行各業(yè)中得到越來(lái)越廣泛的應(yīng)用。圍繞“美食信息管理系統(tǒng)”程序的設(shè)計(jì)和應(yīng)用系統(tǒng)的開發(fā)課題,使用eclipse和SQL server2008工具,以JAVA為語(yǔ)言編寫美食信息管理系統(tǒng)。該程序通過(guò)JDBC來(lái)實(shí)現(xiàn)eclipse前臺(tái)與后臺(tái)SQL server2008數(shù)據(jù)庫(kù)的連接,并具有典型的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的特征,完成了系統(tǒng)結(jié)構(gòu)與現(xiàn)實(shí)生活的緊密結(jié)合。 美食

4、信息管理系統(tǒng)的開發(fā)不僅是一個(gè)應(yīng)用程序編寫的過(guò)程,更重要的是在系統(tǒng)分析和設(shè)計(jì)階段所做的工作,通過(guò)系統(tǒng)分析和設(shè)計(jì)的過(guò)程,能夠更加實(shí)際地去印證軟件工程基本原理在軟件項(xiàng)目設(shè)計(jì)與實(shí)現(xiàn)的過(guò)程中的應(yīng)用。該信息管理系統(tǒng)在設(shè)計(jì)過(guò)程中嚴(yán)格遵循軟件工程學(xué)的方法,用分階段的生命周期計(jì)劃嚴(yán)格管理,并主要講述了程序的總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)階段,對(duì)程序進(jìn)行需求迭代,不斷修正和改進(jìn),利用SQL server2008的強(qiáng)大數(shù)據(jù)庫(kù)功能,直到形成一個(gè)完善的可行性系統(tǒng)。優(yōu)美、秀麗的界面,方便實(shí)用的查詢與維護(hù)功能共同構(gòu)成了“美食信息管理系統(tǒng)”。1.2、項(xiàng)目實(shí)施環(huán)境(注:包括開發(fā)、運(yùn)行環(huán)境)該系統(tǒng)為B/S三層結(jié)構(gòu),它的運(yùn)行環(huán)境分客

5、戶端、應(yīng)用服務(wù)器端和數(shù)據(jù)庫(kù)服務(wù)器端三部分。以下是系統(tǒng)的軟件環(huán)境。(1)客戶端前端開發(fā)工具:eclipse操作系統(tǒng):Windows2007 或更新版本。(2)應(yīng)用服務(wù)器端操作系統(tǒng):Windows2007 或更新版本。應(yīng)用服務(wù)器:Windows2007 或更新版本。數(shù)據(jù)庫(kù)訪問(wèn):JDBC。(3)數(shù)據(jù)庫(kù)服務(wù)器端操作系統(tǒng):Windows2007 或更新版本。數(shù)據(jù)庫(kù)系統(tǒng):SQL Server 2008r2或更新版本。1.3、項(xiàng)目分工柳真:項(xiàng)目總經(jīng)理,負(fù)責(zé)系統(tǒng)架構(gòu)設(shè)計(jì)及整體安排張浩東:項(xiàng)目文檔經(jīng)理,負(fù)責(zé)系統(tǒng)文檔編寫吳超:項(xiàng)目數(shù)據(jù)庫(kù)架構(gòu)師,負(fù)責(zé)系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)劉陽(yáng)正:項(xiàng)目前端設(shè)計(jì)師,負(fù)責(zé)系統(tǒng)界面設(shè)計(jì)陳初相:項(xiàng)目

6、文檔經(jīng)理,負(fù)責(zé)系統(tǒng)文檔編寫1.4、項(xiàng)目實(shí)施計(jì)劃(1)日期 2016-2017學(xué)年 大三上學(xué)期 (2)2016/10/1-2016/10/09:分析綜合實(shí)驗(yàn)題目,擬定實(shí)驗(yàn)題目-美食信息管理系統(tǒng), (3)2016/10/10-2016/10/16:調(diào)查研究功能,并收集相關(guān)素材,完成需求分析(4)2016/10/17-2016/10/23:做出系統(tǒng)實(shí)施計(jì)劃,完成系統(tǒng)設(shè)計(jì) (5)2016/10/24-2016/10/30:具體編碼,各個(gè)模塊的整合與系統(tǒng)整體詳細(xì)設(shè)計(jì) (6)2016/10/31-2016/11/06:系統(tǒng)測(cè)試(6)2016/11/07-2016/11/26:系統(tǒng)演示,老師檢查并驗(yàn)收2、需

7、求分析階段2.1、可行性研究傳統(tǒng)的美食信息管理方法,都是通過(guò)人工統(tǒng)計(jì)或者手工記載的方式進(jìn)行的。這樣的管理方法不但費(fèi)時(shí)費(fèi)力,也容易產(chǎn)生統(tǒng)計(jì)和記載上的錯(cuò)誤和疏漏。計(jì)算機(jī)技術(shù)的全面普及,打破了美食信息管理的傳統(tǒng)管理方法,在提高了管理效率的同時(shí),也克服了傳統(tǒng)管理方法中易產(chǎn)生的問(wèn)題,使管理員能夠有序、全面地對(duì)每一項(xiàng)美食信息進(jìn)行管理,嚴(yán)格按照規(guī)定管理系統(tǒng)。利用美食信息管理系統(tǒng)可以完成日常搜尋美食信息的管理,如查詢、修改、增加、刪除、打印輸出以及存儲(chǔ)等操作,迅速、準(zhǔn)確地完成各種美食信息的統(tǒng)計(jì)和匯總工作,快速打印美食信息等,大大提高了餐飲相關(guān)部門的管理效率。2.2、功能需求2.2.1 功能劃分通過(guò)對(duì)美食信息管

8、理系統(tǒng)在現(xiàn)實(shí)生活中所要實(shí)現(xiàn)的功能的綜合分析,我把該系統(tǒng)登陸后分為三大功能模塊:管理員、客戶、注冊(cè)。(1)管理員具有新增美食信息、修改美食信息、刪除美食信息、個(gè)人信息(可以查詢自己注冊(cè)的個(gè)人信息并且可以修改登陸密碼、完善自己的個(gè)人信息);(2)客戶具有查詢美食信息、打印輸出美食信息、個(gè)人信息;(3)注冊(cè)具有注冊(cè)系統(tǒng)的登陸賬號(hào),可選擇注冊(cè)管理員或者客戶賬號(hào)。圖一:美食信息管理系統(tǒng)功能劃分圖2.2.2 功能描述具體系統(tǒng)功能需求描述:1. 管理員端(1)新添美食信息模塊 管理員輸入新添美食的名稱,選擇相應(yīng)的美食類型、美食所在省、所在市、所在縣,輸入美食的詳細(xì)文字介紹,上傳美食的描述圖片,最后點(diǎn)擊添加按

9、鈕即可添加成功(2)修改美食信息模塊 管理員輸入需要修改美食的名稱,點(diǎn)擊查詢即可查詢出美食的名稱、類型、所在地、詳細(xì)文字介紹和圖片介紹,查詢成功后就可以修改上述各項(xiàng)信息,最后點(diǎn)擊修改按鈕即可修改成功。(3)刪除美食信息模塊 管理員輸入需要?jiǎng)h除美食的名稱,點(diǎn)擊查詢即可查詢出美食的名稱、類型、所在地等信息,具體信息會(huì)在一張表格上顯示,然后選擇需要?jiǎng)h除美食信息的表格所在行,點(diǎn)擊刪除按鈕即可刪除成功。(4)個(gè)人信息 管理員輸入自己登陸所使用的賬號(hào),點(diǎn)擊查詢即可查詢出賬號(hào)、密碼、姓名、電話號(hào)碼、家庭住址等信息,當(dāng)修改上述信息后,點(diǎn)擊修改按鈕即可修改信息,其中賬號(hào)不能修改,其他四項(xiàng)包括用戶密碼均可以修改。

10、2客戶端(1)查詢美食信息模塊 客戶輸入需要查詢美食信息的名稱,點(diǎn)擊查詢即可獲得美食的具體名稱、類型、所在省、所在市、所在縣、詳細(xì)文字介紹、圖片等信息。(2)打印輸出美食信息模塊 客戶在查詢所得美食信息后,如果要進(jìn)行打印輸出相關(guān)信息,點(diǎn)擊查詢美食信息模塊界面上打印輸出美食信息按鈕即可成功打印美食信息。(3)個(gè)人信息客戶輸入自己登陸所使用的賬號(hào),點(diǎn)擊查詢即可查詢出賬號(hào)、密碼、姓名、電話號(hào)碼、家庭住址等信息,當(dāng)修改上述信息后,點(diǎn)擊修改按鈕即可修改信息,其中賬號(hào)不能修改,其他四項(xiàng)包括用戶密碼均可以修改。3注冊(cè)(1)管理員輸入注冊(cè)賬號(hào)、密碼,選擇注冊(cè)類型為管理員,點(diǎn)擊注冊(cè)即可成功注冊(cè)管理員賬戶。(2)

11、客戶輸入注冊(cè)賬號(hào)、密碼,選擇注冊(cè)類型為管理員,點(diǎn)擊注冊(cè)即可成功注冊(cè)客戶賬戶。2.2.3 數(shù)據(jù)流圖圖二:美食信息管理系統(tǒng)數(shù)據(jù)流圖2.2.4 E-R圖圖三:美食信息管理系統(tǒng)E-R圖2.2.5 數(shù)據(jù)字典(1)美食名稱表名字:美食名稱表別名:美食信息描述:記錄美食名稱、美食的詳細(xì)文字介紹、美食圖片等信息定義:美食名稱表 = 美食名稱編號(hào) + 美食類型編號(hào) + 美食名稱 + 詳細(xì)介紹 + 圖片位置:美食信息管理數(shù)據(jù)庫(kù)中表的中一項(xiàng)(2)美食類型表名字:美食類型表別名:美食類型描述:統(tǒng)計(jì)美食的類型定義:美食類型表 = 美食類型編號(hào) + 美食類型名稱位置:美食信息管理數(shù)據(jù)庫(kù)中表的一項(xiàng)(3)美食地點(diǎn)表名字:美食

12、地點(diǎn)表別名:美食地點(diǎn)描述:記錄美食所在具體地點(diǎn)信息定義:美食地點(diǎn)表 = 美食地點(diǎn)編號(hào) + 所在省 + 所在市 + 所在縣位置:美食信息管理數(shù)據(jù)庫(kù)中表的一項(xiàng)(4)所在地表名字:所在地表別名:個(gè)具體對(duì)應(yīng)地點(diǎn)描述:讓各種美食對(duì)應(yīng)相應(yīng)的具體地點(diǎn),建立美食名稱表余美食地點(diǎn)表之間的關(guān)系定義:地點(diǎn)表 = 美食地點(diǎn)編號(hào) + 美食名稱編號(hào)位置:美食信息管理數(shù)據(jù)庫(kù)中表的一項(xiàng)(5)管理員表名字:管理員表別名:管理員用戶描述:用于存入管理員注冊(cè)賬號(hào)和注冊(cè)密碼以及姓名、電話、家庭住址等個(gè)人信息定義:管理員表 = 管理員編號(hào) + 管理員姓名 + 管理員電話號(hào)碼 + 管理員家庭住址 + 系統(tǒng)登陸密碼位置:美食信息管理數(shù)據(jù)庫(kù)

13、中表的一項(xiàng)(6)客戶表名字:客戶表別名:客戶用戶描述:用于存入客戶注冊(cè)賬號(hào)和注冊(cè)密碼以及姓名、電話、家庭住址等個(gè)人信息定義:客戶表 = 客戶編號(hào) + 客戶姓名 + 客戶電話號(hào)碼 + 客戶家庭住址 + 系統(tǒng)登陸密碼位置:美食信息管理數(shù)據(jù)庫(kù)中表的一項(xiàng)2.3、性能需求2.3.1精度 (1)用戶在進(jìn)行美食查詢時(shí)要保證查全率,所有符合搜索條件的美食都要能找到。(2)在保證查全率的同時(shí)還要能夠保證查準(zhǔn)率,尤其是對(duì)于高級(jí)搜索這一功能。(3)保證美食的更新頻率。(4) 本軟件主要用于管理,不是科學(xué)計(jì)算,要求計(jì)算的精度不是很苛刻。所以輸入、輸出數(shù)據(jù)精度的要求不是很高,用于計(jì)算的數(shù)用浮點(diǎn)數(shù)就可以了。2.3.2時(shí)間

14、特性要求 本軟件運(yùn)行的響應(yīng)時(shí)間要求不超過(guò)12秒,基本能實(shí)現(xiàn)。(1)響應(yīng)時(shí)間:2-3秒之內(nèi)打開一個(gè)新的鏈接。(2)數(shù)據(jù)轉(zhuǎn)換與傳輸時(shí)間:數(shù)據(jù)轉(zhuǎn)換主要是涉及到數(shù)據(jù)庫(kù)的問(wèn)題。為了降低一次顯示過(guò)多的記錄會(huì)消耗太多的時(shí)間這個(gè)問(wèn)題,在設(shè)計(jì)時(shí)讓數(shù)據(jù)庫(kù)盡量分頁(yè)顯示。傳輸時(shí)間和服務(wù)器的處理能力、無(wú)線網(wǎng)絡(luò)的信號(hào)強(qiáng)度有關(guān)。(3)運(yùn)行時(shí)間:如非特殊原因應(yīng)保持24小時(shí)開通。 2.3.3靈活性 本軟件具有升級(jí)功能,以滿足用戶的需求。 2.4、可靠性和可用性需求系統(tǒng)要保證24*7*365可用。但是可以允許每月系統(tǒng)停機(jī)一小時(shí),進(jìn)行系統(tǒng)維護(hù)。系統(tǒng)維護(hù)的時(shí)間要安排在非工作時(shí)間進(jìn)行。人們對(duì)信息共享的需求越來(lái)越龐大及廣泛,美食也是人們

15、生活中不可缺少的部分。用戶數(shù)量與日俱增,美食信息管理系統(tǒng)要能支持這樣的增長(zhǎng)速度。2.5、出錯(cuò)處理需求2.5.1操作跟蹤針對(duì)系統(tǒng)運(yùn)行出現(xiàn)的異常,跟蹤調(diào)查出現(xiàn)異常的情況,了解操作意圖,有針對(duì)性的解決問(wèn)題。2.5.2訪問(wèn)控制非注冊(cè)用戶(游客)不可以搜索美食信息,只有登陸用戶才可以對(duì)美食進(jìn)行查詢、修改、打印輸出等操作。2.6、接口需求2.6.1硬件接口由于我們使用的通信協(xié)議是TCP/IP,因此這里的硬件接口問(wèn)題主要就是TCP/IP層中的網(wǎng)絡(luò)接口層,它負(fù)責(zé)數(shù)據(jù)幀的發(fā)送和接收,幀是獨(dú)立的網(wǎng)絡(luò)信息傳輸單元。2.6.2軟件接口這里的接口問(wèn)題主要是JAVA API和后臺(tái)數(shù)據(jù)庫(kù)接口。JAVA API主要包括: O

16、bject.clone()推薦覆蓋、int compareTo(Object o)java.lang對(duì)象排序 、Runnable void run() java.lang線程運(yùn)行 、 AudioClip:void loop()、void play() 、ActionListener void actionPerformed(ActionEvent)java.awt.event 事件處理、WindowConstants int DISPOSE_ON_CLOSE、int DO_NOTHING_ON_CLOSE、int EXIT_ON_CLOSE、int HIDE_ON_CLOSE javax.sw

17、ing窗口控制等。后臺(tái)數(shù)據(jù)庫(kù)接口使用JDBC驅(qū)動(dòng)。2.7、約束設(shè)計(jì)約束或?qū)崿F(xiàn)約束描述在設(shè)計(jì)或?qū)崿F(xiàn)應(yīng)用系統(tǒng)時(shí)應(yīng)遵守的限制條件。常見的約束有:精度;工具和語(yǔ)言約束;設(shè)計(jì)約束;應(yīng)該使用的標(biāo)準(zhǔn);應(yīng)該使用的硬件平臺(tái)。我們所設(shè)計(jì)的美食信息管理系統(tǒng)在數(shù)據(jù)精度上要求不是很高,只要求能夠正確描述出相應(yīng)美食具體信息即可;開發(fā)使用的硬件平臺(tái)是eclipse、windows7,用Java語(yǔ)言進(jìn)行開發(fā)具有很強(qiáng)的可移植性。2.8、逆向需求美食信息管理系統(tǒng)在日常生活用應(yīng)用還是非常廣泛,但是作為設(shè)計(jì)人員,在進(jìn)行需求分析時(shí)應(yīng)該說(shuō)清楚美食信息管理系統(tǒng)不應(yīng)該做什么,應(yīng)該選取能澄清真實(shí)需求且可消除可能發(fā)生的誤解的那些逆向需求。在選取

18、該課題后,經(jīng)過(guò)查詢資料和分析得知:美食信息管理系統(tǒng)不能關(guān)注于收集大量用戶的具體信息,從而導(dǎo)致后臺(tái)數(shù)據(jù)庫(kù)在設(shè)計(jì)時(shí) 的重?fù)?dān)。2.9、將來(lái)可能提出的要求美食信息管理系統(tǒng)旨在為用戶提供當(dāng)下我國(guó)各地具體的美食信息,包括詳細(xì)介紹和圖片說(shuō)明,讓用戶能夠快速得到相應(yīng)的信息。如果我們所設(shè)計(jì)的美食信息管理系統(tǒng)能夠在現(xiàn)實(shí)生活中得到廣泛的應(yīng)用,我們應(yīng)該考慮實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)挖掘方面的功能,例如通過(guò)記錄用戶一段時(shí)期的搜索美食信息的詞條,每當(dāng)用戶登陸時(shí)可以向用戶推送相關(guān)信息,提高用戶的體驗(yàn)。3、設(shè)計(jì)階段3.1、概要設(shè)計(jì)3.1.1設(shè)計(jì)目標(biāo)本系統(tǒng)是根據(jù)日常生活對(duì)美食信息查詢與管理的實(shí)際需求來(lái)開發(fā)的,完全能夠?qū)崿F(xiàn)用戶對(duì)美食信息的管

19、理,通過(guò)本系統(tǒng)可以達(dá)到以下目標(biāo):(1)系統(tǒng)運(yùn)行穩(wěn)定,安全可靠;(2)界面設(shè)計(jì)美觀,人機(jī)交互界面友好;(3)信息查詢靈活、方便、快捷、準(zhǔn)確、數(shù)據(jù)存儲(chǔ)安全可靠;(4)任何人可以隨時(shí)注冊(cè)自己的賬號(hào);(5)對(duì)用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗(yàn),盡可能排除人為的錯(cuò)誤;(6)滿足鍵盤和鼠標(biāo)的雙重操作,完全支持Enter鍵。3.1.2 系統(tǒng)功能結(jié)構(gòu)設(shè)置圖四:美食信息管理系統(tǒng)軟件結(jié)構(gòu)圖3.1.3 數(shù)據(jù)庫(kù)物理模型圖五:美食信息管理系統(tǒng)數(shù)據(jù)庫(kù)物理模型3.2、詳細(xì)設(shè)計(jì)3.2.1 系統(tǒng)界面設(shè)計(jì)(1) 為了防止非法用戶進(jìn)入系統(tǒng),本軟件設(shè)計(jì)了系統(tǒng)登錄窗口。在程序啟動(dòng)時(shí),首先彈出登錄窗口,要求用戶輸入登錄信息,如果用戶

20、輸入不合法,將禁止進(jìn)入系統(tǒng)。系統(tǒng)登錄窗口運(yùn)行結(jié)果如下圖所示:圖六:美食信息管理系統(tǒng)登陸界面(2) 與登陸界面相對(duì)應(yīng)的是,要提供注冊(cè)功能,通過(guò)注冊(cè)后才能夠讓設(shè)計(jì)的系統(tǒng)軟件得到更多的用戶。系統(tǒng)注冊(cè)界面如下圖所示: 圖七:美食信息管理系統(tǒng)注冊(cè)界面(3)用戶通過(guò)登陸界面成功登陸后將進(jìn)入相應(yīng)的功能界面,首先說(shuō)明管理員功能界面的設(shè)計(jì)。管理員功能運(yùn)行結(jié)果如下圖所示:圖八:管理員新增美食信息功能界面圖九:管理員新增美食信息中選擇圖片功能界面圖十:管理員修改美食信息功能界面圖十一:管理員刪除美食信息功能界面圖十二:管理員個(gè)人信息功能界面(4)用戶通過(guò)登陸界面成功登陸后將進(jìn)入相應(yīng)的功能界面,最后說(shuō)明客戶功能界面的

21、設(shè)計(jì)??蛻艄δ苓\(yùn)行結(jié)果如下圖所示:圖十三:客戶查詢美食信息功能界面圖十四:客戶打印輸出美食信息功能界面圖十五:客戶個(gè)人信息功能界面3.2.2 系統(tǒng)功能模塊算法設(shè)計(jì)我們?cè)O(shè)計(jì)的美食信息管理系統(tǒng)主要包括管理員和客戶登陸兩大功能模塊,其中管理員功能模塊中能夠進(jìn)行美食信息的添加、修改、刪除功能,客戶功能模塊中能夠進(jìn)行美食信息的查詢、打印輸出功能。在設(shè)計(jì)出各個(gè)功能模塊界面后,最為核心的是要實(shí)現(xiàn)相應(yīng)功能界面中的按鈕觸發(fā)事件。例如,管理員端中新添美食信息功能界面中的添加按鈕觸發(fā)事件、修改美食信息功能界面中的修改按鈕觸發(fā)事件、刪除美食信息功能界面中的刪除按鈕觸發(fā)事件,客戶端中查詢美食信息功能界面中查詢按鈕的觸發(fā)

22、事件和打印美食信息按鈕的觸發(fā)事件。為這些觸發(fā)事件設(shè)計(jì)一個(gè)良好的算法,能夠大大提高程序的運(yùn)行效率。4、調(diào)試與分析4.1、功能模塊源代碼 4.1.1新添美食信息功能模塊添加按鈕核心代碼源代碼如下:if(arg0.getSource() = btnNewButton_6)String B2 = ""String B3 = ""String A1 = textField.getText();String B1 = comboBox.getSelectedItem().toString();String C1 = comboBox_1.getSelectedIte

23、m().toString();String D1 = comboBox_2.getSelectedItem().toString();String E1 = comboBox_3.getSelectedItem().toString();String F1 = textArea.getText();if(B1.equals("面類")B1 = "041001"else if(B1.equals("粉類")B1 = "041002" else if(B1.equals("水果類") B1 = &q

24、uot;041003" else if(B1.equals("油炸類") B1 = "041004" else if(B1.equals("火鍋類") B1 = "041005" else if(B1.equals("冷品類") B1 = "041006" else if(B1.equals("熟食類") B1 = "041007" else if(B1.equals("糕點(diǎn)類") B1 = "0

25、41008" sql = "select finefoodSiteNo from Fine food site where provice = '"+C1+"' and city = '"+D1+"' and county = '"+E1+"'" try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("加載驅(qū)動(dòng)程序成功"); catc

26、h(Exception e) System.out.println("無(wú)法加載驅(qū)動(dòng)程序"); try Connection conn =DriverManager.getConnection("jdbc:sqlserver:/localhost:1433;DatabaseName=Fine food" + " management system","sa", "9588314"); Statement stmt = conn.createStatement(); ResultSet rs = s

27、tmt.executeQuery(sql); if(rs.next() B2 = rs.getString(1); System.out.println(B2); else foodTypeNo = foodTypeNo + 1; B2 = foodTypeNo + "" sql = "insert into Fine food site values('"+B2+"','"+C1+"','"+D1+"','"+E1+"'

28、)" int i = stmt.executeUpdate(sql); if(i>0) JOptionPane.showMessageDialog(null,"添加成功"); else JOptionPane.showMessageDialog(null,"添加失敗"); /JOptionPane.showMessageDialog(this, "不存在這樣的美食", "錯(cuò)誤!",JOptionPane.ERROR_MESSAGE); rs.close(); stmt.close(); catch(

29、SQLException e) System.out.println("SQL異常"); sql = "select * from Fine food site where provice = '"+C1+"' and city = '"+D1+"' and county = '"+E1+"'" try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.print

30、ln("加載驅(qū)動(dòng)程序成功"); catch(Exception e) System.out.println("無(wú)法加載驅(qū)動(dòng)程序"); try Connection conn =DriverManager.getConnection("jdbc:sqlserver:/localhost:1433;DatabaseName=Fine food" + " management system","sa", "9588314"); Statement stmt1 = conn.crea

31、teStatement(); ResultSet rs1 = stmt1.executeQuery(sql); if(rs1.next() foodNameNo+=1; B3 = foodNameNo + "" System.out.println(B3); System.out.println(path_file); /rs1 = stmt1.executeQuery("select MAX(finefoodNo)+1 as finefoodNo from Fine food Name"); / String B6 = rs1.getString(1)

32、; /System.out.println("執(zhí)行成功!"+B6); sql = "insert into Fine food Name values ('"+B3+"','"+B1+"','"+A1+"','"+F1+"','"+path_file+"')" /System.out.println(""); int i = stmt1.executeUpd

33、ate(sql); if(i>0) JOptionPane.showMessageDialog(null,"插入成功"); else JOptionPane.showMessageDialog(null,"插入失敗"); else JOptionPane.showMessageDialog(this, "添加異常", "錯(cuò)誤!",JOptionPane.ERROR_MESSAGE); rs1.close(); stmt1.close(); catch(SQLException e) System.out.pr

34、intln("SQL異常"); sql = "select * from Fine food site where provice = '"+C1+"' and city = '"+D1+"' and county = '"+E1+"'" try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("加載驅(qū)動(dòng)程序成功"); cat

35、ch(Exception e) System.out.println("無(wú)法加載驅(qū)動(dòng)程序"); try Connection conn =DriverManager.getConnection("jdbc:sqlserver:/localhost:1433;DatabaseName=Fine food" + " management system","sa", "9588314"); Statement stmt2 = conn.createStatement(); ResultSet rs2

36、= stmt2.executeQuery(sql); if(rs2.next() B2 = rs2.getString(1); B3 = foodNameNo + "" sql = "insert into Site values ('"+B2+"','"+B3+"')" /System.out.println(""); int i = stmt2.executeUpdate(sql); if(i>0) JOptionPane.showMessageDial

37、og(null,"插入成功1111"); else JOptionPane.showMessageDialog(null,"插入失敗1111"); else JOptionPane.showMessageDialog(this, "添加異常", "錯(cuò)誤!",JOptionPane.ERROR_MESSAGE); rs2.close(); stmt2.close(); catch(SQLException e) System.out.println("SQL異常"); 4.1.2 新添美食信息功能

38、模塊美食圖片按鈕核心代碼(獲取圖片信息)源代碼如下:/按鈕觸發(fā)事件中代碼if(arg0.getSource() = btnNewButton_5)Insert_picture chooser = new Insert_picture();path_file = chooser.file_path;System.out.println(path_file);/Insert_picture類代碼public class Insert_picture extends JFrame /* * */private static final long serialVersionUID = 1L;priva

39、te JPanel contentPane;public String file_path = ""PaintPanel paint;Toolkit toolkit=Toolkit.getDefaultToolkit();/* * Launch the application. */public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try Insert_picture frame = new Insert_picture();frame.s

40、etVisible(true); catch (Exception e) e.printStackTrace(););/* * Create the frame. */public Insert_picture() setTitle("選擇添加美食圖片");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(200, 100, 550, 450);Image img=toolkit.getImage("image1.jpg"); setIconImage(img); contentPane =

41、 new JPanel();contentPane.addAncestorListener(new AncestorListener() public void ancestorAdded(AncestorEvent arg0) if(!file_path.equals("")setVisible(false);public void ancestorMoved(AncestorEvent arg0) public void ancestorRemoved(AncestorEvent arg0) );contentPane.setBorder(new EmptyBorder

42、(5, 5, 5, 5);contentPane.setLayout(new BorderLayout(0, 0);setContentPane(contentPane);JFileChooser fileChooser = new JFileChooser();contentPane.add(fileChooser,BorderLayout.CENTER);paint = new PaintPanel();paint.setBorder(new BevelBorder(BevelBorder.LOWERED,null,null,null,null);paint.setPreferredSiz

43、e(new Dimension(150,300);fileChooser.setAccessory(paint);fileChooser.addPropertyChangeListener(new PropertyChangeListener()public void propertyChange(PropertyChangeEvent arg0)do_this_prorertyChange(arg0););javax.swing.filechooser.FileFilter filter = new FileNameExtensionFilter("圖像文件(*" + &

44、quot;.jpg;*.png;*.gif;*.bmp)","jpg","png","gif","bmp"); fileChooser.setFileFilter(filter);/chooser.setFileSelectionMode(JFileChooser.WIDTH);fileChooser.setMultiSelectionEnabled(false);int result = fileChooser.showOpenDialog(this);if(result = JFileChooser.

45、APPROVE_OPTION)File file = fileChooser.getSelectedFile();file_path = file.getAbsolutePath();System.out.println(file_path);protected void do_this_prorertyChange(PropertyChangeEvent e)if(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY = e.getPropertyName()File picfile = (File) e.getNewValue();if(picfile !

46、= null && picfile.isFile()tryImage image = getToolkit().getImage(picfile.toURI().toURL();paint.setImage(image);paint.repaint();catch (MalformedURLException e1)e1.printStackTrace();4.2、功能模塊測(cè)設(shè)用例4.2.1 測(cè)試設(shè)計(jì)用例(1)測(cè)試用例一美食名稱:熱干面美食類型:面類所在?。汉笔∷谑校何錆h所在縣:武昌詳細(xì)介紹:源于三十年代初期漢口長(zhǎng)堤街賣湯面的蔡明偉。蔡明偉是黃陂蔡榨人,他的湯面做得非常受歡

47、迎,客人經(jīng)常排隊(duì)要等很長(zhǎng)時(shí)間才能買到,很多客人等不及走掉了,蔡明偉做生意很會(huì)動(dòng)腦筋。為了加快出貨量,通過(guò)反復(fù)試驗(yàn),他終于摸索出一套“撣面”的工藝就是先把面煮七八成熟,然后快速降溫并均勻抹上油,這樣賣面時(shí),出貨量就快了。有一次蔡明偉在長(zhǎng)堤街看到一家麻油作坊,看見他們從芝麻中提取麻油后,芝麻醬閑棄在一邊,香氣撲鼻,他靈機(jī)一動(dòng);何不將芝麻醬加進(jìn)面里試一下呢?于是蔡明偉向麻油作坊老板購(gòu)買了些許芝麻醬回家。同樣經(jīng)過(guò)多次反復(fù)試驗(yàn),他覺得滿意了,身邊的人都說(shuō)好吃,這時(shí)候他才信心滿滿推出他的新產(chǎn)品上街叫賣。圖片:熱干面.jpg(2)測(cè)試用例二美食名稱:周黑鴨美食類型:熟食類所在?。汉笔∷谑校何錆h市所在縣:

48、漢口詳細(xì)介紹:1995年周富裕開始從事鹵制品行業(yè),1997年周富裕自行研發(fā)出“周黑鴨”的配方,很快“周黑鴨”以“入口微甜爽辣,吃后回味悠長(zhǎng)”的獨(dú)特口味贏得了廣大消費(fèi)者的認(rèn)同,同年第一家“周記怪味鴨”專賣店在航空路電業(yè)集貿(mào)市場(chǎng)開業(yè)。歷經(jīng)13年的發(fā)展,“周黑鴨”成功開發(fā)了適合年輕消費(fèi)群體的鴨類鹵制休閑食品系列,為“周黑鴨”這樣一個(gè)原創(chuàng)商標(biāo)品牌塑造了鮮明的品牌個(gè)性和獨(dú)特的產(chǎn)品特色!圖片:周黑鴨.jpg(3)測(cè)試用例三美食名稱:臭豆腐美食類型:熟食類所在省:湖南省所在市:長(zhǎng)沙市所在縣:寧鄉(xiāng)縣詳細(xì)介紹:相傳清朝康熙八年,由安徽黃山來(lái)京趕考的王致和金榜落第,閑居在會(huì)館中,欲返歸故里,交通不便,盤纏皆無(wú),欲在京攻讀,準(zhǔn)備再次應(yīng)試,又距下科試期甚遠(yuǎn)。無(wú)奈,只得在京暫謀生計(jì)。王致和的家庭原非富有,其父在家鄉(xiāng)開設(shè)豆腐坊,王致和幼年曾學(xué)過(guò)做豆腐,于是便在安徽會(huì)館附近租賃了幾間房,購(gòu)置了一些簡(jiǎn)單的用具,每天磨上幾升豆子的豆腐,沿街叫賣。時(shí)值夏季,有時(shí)賣剩下的豆腐很快發(fā)霉,無(wú)法食用,但又不甘心廢棄。他苦思對(duì)策,就將這些豆腐切成小塊,稍加晾曬

溫馨提示

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

評(píng)論

0/150

提交評(píng)論