Java安卓開發(fā)外賣訂餐系統(tǒng)專業(yè)課程設(shè)計_第1頁
Java安卓開發(fā)外賣訂餐系統(tǒng)專業(yè)課程設(shè)計_第2頁
Java安卓開發(fā)外賣訂餐系統(tǒng)專業(yè)課程設(shè)計_第3頁
Java安卓開發(fā)外賣訂餐系統(tǒng)專業(yè)課程設(shè)計_第4頁
Java安卓開發(fā)外賣訂餐系統(tǒng)專業(yè)課程設(shè)計_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JAVA課程設(shè)計匯報

題目:外賣訂餐系統(tǒng)

班級:姓名:學(xué)號:指導(dǎo)老師:日期:年月日

目錄TOC\o"1-3"\u一、概述 11.1課程設(shè)計目標(biāo) 11.2設(shè)計任務(wù)和要求 1二、需求分析匯報 21引言 21.1編寫目標(biāo) 21.2產(chǎn)品范圍 22綜合描述 22.1產(chǎn)品情況 22.2產(chǎn)品功效 22.3用戶類和特征 32.4開發(fā)環(huán)境 32.5目標(biāo)平臺 33外部接口需求 43.1用戶界面 43.2硬件接口 43.3軟件接口 44系統(tǒng)功效需求 45其它非功效需求 55.1性能需求 55.2安全方法需求 55.3安全性需求 65.4軟件質(zhì)量屬性 65.5業(yè)務(wù)規(guī)則 66分析模型 66.1數(shù)據(jù)流圖 66.2用例圖 96.3系統(tǒng)時序圖和協(xié)作圖 126.4系統(tǒng)活動圖 16三、設(shè)計匯報 191設(shè)計概述 191.1 限制和約束 191.2設(shè)計標(biāo)準(zhǔn)和設(shè)計要求 192系統(tǒng)概要設(shè)計和分析 192.1系統(tǒng)功效設(shè)計 192.2子系統(tǒng)和模塊 202.3系統(tǒng)犯錯處理設(shè)計 232.4系統(tǒng)接口設(shè)計 232數(shù)據(jù)庫設(shè)計 242.1數(shù)據(jù)庫邏輯設(shè)計 242.2 基表設(shè)計 283系統(tǒng)具體設(shè)計和實現(xiàn) 303.1web端系統(tǒng)功效開發(fā) 303.2Android用戶端功效開發(fā) 37四、軟件測試匯報 431引言 432檢驗具體內(nèi)容 432.1軟件代碼測試 432.2軟件系統(tǒng)測試 453測試總結(jié)匯報 46五、用戶操作手冊 471引言 472軟件概述 472.2功效 472.3性能 483運行環(huán)境 483.1硬件 483.2支持軟件 484使用說明 494.1安裝和初始化 494.2犯錯和恢復(fù) 495運行說明 495.1web管理端 495.2 Android用戶端 51六、項目開發(fā)總結(jié)匯報 56一、概述1.1課程設(shè)計目標(biāo)經(jīng)過此次課程設(shè)計,熟練掌握一個開發(fā)語言Java和開發(fā)環(huán)境——Eclipse。并掌握android手機(jī)用戶端開發(fā)過程。開發(fā)語言熟練需要經(jīng)過編寫一定長度代碼(1000~行代碼)才能達(dá)成,開發(fā)環(huán)境熟練需要反復(fù)程序調(diào)試訓(xùn)練。加深對軟件工程了解,訓(xùn)練編寫程序良好習(xí)慣。包含:認(rèn)真編寫需求分析文檔、做好系統(tǒng)功效設(shè)計、學(xué)會自己進(jìn)行程序算法、數(shù)據(jù)結(jié)構(gòu)設(shè)計、培養(yǎng)良好程序設(shè)計風(fēng)格(模塊劃分、接口設(shè)計、函數(shù)和變量命名規(guī)則)和習(xí)慣(程序備份、版本更新和控制),提升軟件測試、調(diào)試能力和技巧。經(jīng)過此次課程設(shè)計,應(yīng)該達(dá)成含有獨立完成小型應(yīng)用設(shè)計能力,含有編寫較為規(guī)范軟件設(shè)計文檔能力。1.2設(shè)計任務(wù)和要求基于android外賣訂餐系統(tǒng)設(shè)計和實現(xiàn)學(xué)習(xí)android開發(fā);完成軟件android用戶端和web端開發(fā)和文檔編寫。二、需求分析匯報1引言1.1編寫目標(biāo)本需求分析匯報目標(biāo)是規(guī)范化外賣訂餐系統(tǒng)軟件編寫,意在于提升軟件開發(fā)過程中能見度,便于對軟件開發(fā)過程中控制和管理,同時提出了校園外賣訂餐系統(tǒng)軟件軟件開發(fā)過程,并作為工作結(jié)果原始數(shù)據(jù),同時也表明了軟件共性,以期待能過取得更大范圍應(yīng)用。開發(fā)校園外賣訂餐系統(tǒng)手機(jī)用戶端意在于填補(bǔ)校園外賣手機(jī)用戶端空缺,使同學(xué)用android智能手機(jī)就能夠方便預(yù)定外賣,真正做到互聯(lián)網(wǎng)全方位覆蓋。1.2產(chǎn)品范圍校園外賣訂餐系統(tǒng)適適用于含有android智能手機(jī)用戶,在使用本軟件后,外賣訂餐覆蓋面更廣,不會再因為身邊沒有電腦訂外賣而發(fā)愁,真正做到方便同學(xué),而且能夠經(jīng)過代理廣告而使服務(wù)商取得額外收益。2綜合描述2.1產(chǎn)品情況經(jīng)過本系統(tǒng),用戶能夠經(jīng)過手機(jī)上網(wǎng)方法來訂外賣,其特點以下:數(shù)據(jù)維護(hù)效率大大提升,輕易保管,假如丟失或犯錯很輕易修復(fù)。系統(tǒng)數(shù)據(jù)全部存放在服務(wù)器數(shù)據(jù)庫中,定時備份能夠使數(shù)據(jù)一直保持完好。方便查詢,節(jié)省勞動力。用戶能夠經(jīng)過手機(jī)直接把自己想要訂外賣存入數(shù)據(jù)庫中,商店服務(wù)器端只需要少數(shù)管理人員來處理訂單。用戶能夠經(jīng)過手機(jī)隨時隨地訂外賣,方便快捷,而且高效。2.2產(chǎn)品功效本預(yù)訂系統(tǒng)包含Web端和Android用戶端兩部分。Web端關(guān)鍵實現(xiàn)外賣資源和訂單管理功效,Android用戶端實現(xiàn)用戶登錄注冊、預(yù)訂和查看訂單功效。2.3用戶類和特征用戶類別用戶特征超級管理員管理此系統(tǒng)一切可用功效。一般管理員外賣添加、處理訂單等。用戶登陸、注冊、預(yù)定等。2.4開發(fā)環(huán)境開發(fā)此校園外賣訂餐系統(tǒng)需要用到以下軟件環(huán)境。Eclipse編程軟件。Eclipse是一個相當(dāng)著名開源JavaIDE,關(guān)鍵以其開放性、極為高效GUI、優(yōu)異代碼編輯器等著稱,其項目包含很多多種多樣子項目組,包含Eclipse插件、功效部件等,關(guān)鍵采取SWT界面庫,支持多個本機(jī)界面風(fēng)格。JDK1.7系統(tǒng)選此作為開發(fā)環(huán)境,因為JDK1.7版本是現(xiàn)在JDK最新版本,有很多開發(fā)者用到功效,能夠經(jīng)過不一樣操作系統(tǒng)平臺在官方網(wǎng)站上無償下載使用。MicrosoftSQLServer數(shù)據(jù)庫MicrosoftSQLServer是現(xiàn)在中小型應(yīng)用開發(fā)中比較流行數(shù)據(jù)庫,MicrosoftSQLServer在一定程度上確保了數(shù)據(jù)完整性和安全性。Tomcat7.0以上版本Tomcat是一個優(yōu)異Web應(yīng)用容器,運行穩(wěn)定、可靠、效率高,而且是開源,能夠從網(wǎng)上無償下載,節(jié)省開發(fā)成本。Android系統(tǒng)Android系統(tǒng)平臺手機(jī)功效強(qiáng)大,此系統(tǒng)開源、應(yīng)用程序無界限,伴隨Android手機(jī)普及,Android應(yīng)用需求勢必會越來越大,這是一個潛力巨大市場,會吸引無數(shù)軟件開發(fā)廠商和開發(fā)者投身其中。2.5目標(biāo)平臺開發(fā)另外賣預(yù)訂系統(tǒng)需要目標(biāo)平臺以下。服務(wù)器端瀏覽器,提議使用IE8.0及以上版本。手機(jī)平臺為Android2.3或更高版本。3外部接口需求3.1用戶界面采取圖形用戶界面(GUl)標(biāo)準(zhǔn)或產(chǎn)品系列風(fēng)格:采取簡約風(fēng)格,利用頁面布局技術(shù),以藍(lán)色作為主色調(diào)。將要使用在每一個屏幕(圖形用戶界面)上軟件組件,包含:標(biāo)準(zhǔn)按鈕;各個頁面均包含導(dǎo)航鏈接:各個頁面包含導(dǎo)航欄,方便用戶進(jìn)行頁面切換多種顯示格式要求,包含:不一樣情況下文字對齊方法:表格居中對齊,段落居左對齊不一樣情況下數(shù)字表現(xiàn)格式和對齊方法:表格居中對齊,段落居左對齊日期表現(xiàn)方法和格式:統(tǒng)一采取4位年2位月2位日,兩兩之間用“-”間隔。每一個操作全部有結(jié)果顯示。3.2硬件接口使用通訊協(xié)議:TCP/IP協(xié)議3.3軟件接口操作系統(tǒng):Windows7數(shù)據(jù)庫:SQLServer集成商業(yè)組件:eclipse3.7Tomcat7.0AndroidSDK4系統(tǒng)功效需求經(jīng)過需求采集和需求分析,確定關(guān)鍵需求,本系統(tǒng)應(yīng)該含有功效以下:Web端功效:管理員有權(quán)限限制,一般和超級管理員所操作管理層次不一樣。管理員可更改密碼,超級管理員可添加、刪除一般管理員。能夠添加外賣可預(yù)訂資源,如菜單、飲料等,并填寫外賣描述信息。能夠添加外賣分類,并填寫新分類描述信息。能夠修改外賣狀態(tài),有貨或缺貨。能夠?qū)τ唵芜M(jìn)行操作同時到用戶端,第一時間通知用戶。Android手機(jī)用戶端功效:登錄外賣android手機(jī)用戶端,用戶能夠隨時隨地經(jīng)過手機(jī)登錄校園外賣用戶端。注冊賬號,用戶若沒有賬號,能夠經(jīng)過手機(jī)用戶端進(jìn)行注冊成為系統(tǒng)會員。修改個人信息,假如用戶個人信息發(fā)生了改變,用戶能夠經(jīng)過手機(jī)登錄方法方便地更改個人信息,這也為校園外賣管理用戶信息資料提供了便利。預(yù)訂資源,這是本系統(tǒng)最關(guān)鍵部分,用戶能夠經(jīng)過本系統(tǒng)方便快捷地預(yù)訂其想要外賣,這也是為用戶提供最關(guān)鍵功效。查看訂單,當(dāng)用戶想要查詢預(yù)訂結(jié)果,或想要了解訂單具體信息時,經(jīng)過手機(jī)用戶端能夠快速查看訂單。5其它非功效需求5.1性能需求相互合作用戶數(shù)量:無上限系統(tǒng)支持并發(fā)操作數(shù)量:統(tǒng)計相關(guān)信息無上限,設(shè)置相關(guān)信息時一時間只能有一個用戶設(shè)置對應(yīng)相關(guān)信息。通常操作響應(yīng)時間應(yīng)在3~5秒內(nèi),響應(yīng)時間也應(yīng)在可接收時間內(nèi)完成,具體情況以網(wǎng)絡(luò)速度為限制和實時系統(tǒng)時間關(guān)系:時間一一對應(yīng)。容量需求(相對于服務(wù)器)存放器:2Gb數(shù)據(jù)庫中表最大行數(shù):無上限。5.2安全方法需求 系統(tǒng)用戶經(jīng)過用戶名和密碼方法來控制用戶對數(shù)據(jù)訪問和操作,不一樣用戶權(quán)限不一樣,確保正確用戶使用正確數(shù)據(jù)。5.3安全性需求每個用戶在第一次登錄后,必需更改她系統(tǒng)預(yù)置登錄密碼,系統(tǒng)預(yù)置登錄密碼不能重用。服務(wù)器要處理好和Internet鏈接借口,預(yù)防病毒傳輸和黑客攻擊。5.4軟件質(zhì)量屬性健壯性:系統(tǒng)應(yīng)能夠長時間無故障運行;易用性:web管理端界面應(yīng)采取圖形化操作方法,便于業(yè)務(wù)人員操作,確保中專以上文化程度人員能夠無障礙操作;android用戶端應(yīng)采取圖形化操作方法,確保熟悉手機(jī)操作各階層用戶使用。容錯性:用戶輸錯數(shù)據(jù)全部有提醒信息,含有很好容錯性能;可擴(kuò)展性:充足考慮到未來需求修改或增加,采取模塊化設(shè)計,避免需求變更時大規(guī)模修改程序。5.5業(yè)務(wù)規(guī)則web管理端管理員對每個訂單全部要進(jìn)行處理,并提交處理結(jié)果反饋給android用戶端。6分析模型6.1數(shù)據(jù)流圖6.1.1頂層數(shù)據(jù)流圖系統(tǒng)用戶系統(tǒng)用戶DF5超級管理員DF5超級管理員DF1DF1DF6校園外賣訂餐系統(tǒng)DF6校園外賣訂餐系統(tǒng)DF2DF7DF3DF7DF3一般管理員一般管理員DF8DF4系統(tǒng)數(shù)據(jù)庫DF8DF4系統(tǒng)數(shù)據(jù)庫圖2-1系統(tǒng)頂層數(shù)據(jù)流圖圖2-1系統(tǒng)頂層數(shù)據(jù)流圖數(shù)聽說明:DF1:管理員輸入數(shù)據(jù),包含:一般管理員用戶名,密碼,等級信息DF2:操作結(jié)果和公共信息;DF3:管理人員輸入到系統(tǒng)中數(shù)據(jù),處理用戶相關(guān)信息,處理外賣訂單相關(guān)信息,添加外賣分類,添加外賣菜單新外賣,修改外賣信息,修改菜單信息。DF4:修改和查詢菜單、外賣相關(guān)信息操作結(jié)果和公共信息;DF5:用戶輸入相關(guān)注冊信息,用戶訂單信息,用戶退訂信息。DF6:修改和查詢訂單、外賣相關(guān)信息操作結(jié)果和公共信息;DF7:全部用戶,一般管理員,超級管理員輸入持久化數(shù)據(jù),包含用戶信息,管理員信息,訂單信息,菜單信息,訂單處理信息。DF8:全部用戶,一般管理員,超級管理員輸入持久化數(shù)據(jù),包含用戶信息,管理員信息,訂單信息,菜單信息,訂單處理信息結(jié)果顯示,和修改查詢相關(guān)信息所得到結(jié)果集。6.1.2一層數(shù)據(jù)流圖系統(tǒng)用戶超級管理員系統(tǒng)用戶超級管理員DF5-1DF1DF5-1DF1DF5-2DF6-1DF2Android應(yīng)用子系統(tǒng)DF5-2DF6-1DF2Android應(yīng)用子系統(tǒng)子系統(tǒng)Web服務(wù)子系統(tǒng)DF3DF6-2DF3DF6-2DF7DF7系統(tǒng)數(shù)據(jù)庫一般管理員系統(tǒng)數(shù)據(jù)庫一般管理員DF4DF4圖2-2系統(tǒng)一層數(shù)據(jù)流圖圖2-2系統(tǒng)一層數(shù)據(jù)流圖數(shù)聽說明:其中DF1,DF2,DF3,DF4,DF7,DF8同頂層數(shù)據(jù)流相同DF5分解為DF5-1和DF5-2.DF5-1為用戶輸入到Android應(yīng)用子系統(tǒng)相關(guān)注冊信息,用戶訂單信息,用戶退訂信息。DF5-2為從Android應(yīng)用子系統(tǒng)到web服務(wù)子系統(tǒng)相關(guān)注冊信息,用戶訂單信息,用戶退訂信息。DF6分解為DF6-1和DF6-2為web服務(wù)子系統(tǒng)返回到web服務(wù)子系統(tǒng)修改和查詢訂單、外賣相關(guān)信息操作結(jié)果和公共信息;DF6-1從Android應(yīng)用子系統(tǒng)到用戶修改和查詢訂單、外賣相關(guān)信息操作結(jié)果和公共信息;6.1.3二層數(shù)據(jù)流圖本系統(tǒng)中,Android應(yīng)用子系統(tǒng)相關(guān)數(shù)據(jù)流比較簡單,不在具體分析。只對web服務(wù)子系統(tǒng)進(jìn)行分解。前提:為圖形簡化,分析方便,不再考慮外部實體數(shù)據(jù)流,只考慮子系統(tǒng)內(nèi)部數(shù)據(jù)流動,而且因為訪客只有瀏覽公共信息權(quán)限,所以,公共信息瀏覽在下分析中不再出現(xiàn),下分析模型只考慮登錄用戶功效和數(shù)據(jù)流向,而且因為數(shù)據(jù)流在上一層數(shù)據(jù)流圖中有比較具體說明,在以后數(shù)據(jù)流圖中除新出現(xiàn)數(shù)據(jù)流外,不再進(jìn)行說明。菜單表菜單表1.5外賣菜單管理用戶表,管理員表,菜單表1.5外賣菜單管理用戶表,管理員表,菜單表1.4外賣訂單處理1.4外賣訂單處理1.3外賣分類管理1.3外賣分類管理外賣分類表外賣分類表1.1登錄注冊用戶管理1.1登錄注冊用戶管理各類用戶各類用戶1.2交互接口1.2交互接口管理員,用戶表管理員,用戶表Android應(yīng)用子系統(tǒng)Android應(yīng)用子系統(tǒng)圖2-3web管理子系統(tǒng)數(shù)據(jù)流圖圖2-3web管理子系統(tǒng)數(shù)據(jù)流圖6.2用例圖圖2-4管理員用例圖用例說明:本系統(tǒng)管理員包含兩類:繼承自管理員,分別是超級管理員和一般管理員。超級管理員含有管理管理員功效,而一般管理員則負(fù)責(zé)本系統(tǒng)后臺管理。圖2-5總用例圖用例說明:本系統(tǒng)有三類參與者:用戶:使用本系統(tǒng)想外賣出售方訂餐人超級管理員:管理管理員相關(guān)信息一般管理員:管理網(wǎng)站信息注冊:注冊用戶申請網(wǎng)站會員資格下訂單:挑選需要食品,向網(wǎng)站發(fā)送訂單信息取消訂單:對于預(yù)定好訂單,不在需要時候,用戶能夠取消訂單修改密碼資料:登錄以后修改相關(guān)密碼信息,包含修改管理員和用戶信息查詢訂單信息:申請訂單以后,能夠查詢訂單相關(guān)信息。管理管理員:超級管理員能夠管理一般管理員信息,包含添加,修改,刪除。添加外賣分類:在網(wǎng)站中,添加外賣分類信息,將菜品分類。添加外賣信息:在有外賣分類前提下,將外賣信息添加已存在外賣分類下。修改外賣分類:已添加外賣分類,修改,刪除,查詢存在相關(guān)信息修改外賣信息:已添加外賣信息,修改,刪除,查詢已存在相關(guān)信息處理訂單:用戶下訂單以后,管理員處理訂單圖2-6用戶用例圖用例說明:修改密碼資料:登錄以后修改相關(guān)密碼信息,包含修改管理員和用戶信息管理管理員:超級管理員能夠管理一般管理員信息,包含添加,修改,刪除。添加外賣分類:在網(wǎng)站中,添加外賣分類信息,將菜品分類。添加外賣信息:在有外賣分類前提下,將外賣信息添加已存在外賣分類下。修改外賣分類:已添加外賣分類,修改,刪除,查詢存在相關(guān)信息修改外賣信息:已添加外賣信息,修改,刪除,查詢已存在相關(guān)信息處理訂單:用戶下訂單以后,管理員處理訂單圖2-7超級管理員用例圖用例說明:管理管理員:超級管理員能夠管理一般管理員信息,包含添加,修改,刪除。6.3系統(tǒng)時序圖和協(xié)作圖6.3.1管理員登錄時序圖和協(xié)作圖圖2-8登錄系統(tǒng)時序圖圖2-9登錄系統(tǒng)協(xié)作圖說明:1,發(fā)送輸入信息:發(fā)送給服務(wù)器2,查詢并驗證:查詢數(shù)據(jù)庫,驗證發(fā)送數(shù)據(jù)正確性6.3.2管理員管理時序圖和協(xié)作圖圖2-10管理員管理系統(tǒng)時序圖圖2-11管理員管理系統(tǒng)協(xié)作圖說明:1輸入各類信息,輸入密碼函數(shù)。2,增、刪、改、查給類信息:增添刪除修改查詢,系統(tǒng)中用戶、菜品分類、菜品等信息。3,顯示:刷新頁面函數(shù)4、通知通知管理員函數(shù)6.3.3用戶操作時序圖和協(xié)作圖圖2-12用戶操作系統(tǒng)時序圖圖2-13用戶操作系統(tǒng)協(xié)作圖說明:1輸入各類信息,輸入密碼函數(shù)。2,增、刪、改、查給類信息:增添刪除修改查詢,系統(tǒng)中菜品,訂單等信息。3,顯示:刷新頁面函數(shù)4、通知用戶,通知用戶函數(shù)6.4系統(tǒng)活動圖本系統(tǒng)中,因為關(guān)鍵活動為用戶訂餐和一般管理員處理訂單兩個活動,所以,我們關(guān)鍵分析這兩個活動。6.4.1用戶訂餐活動圖圖2-14用戶訂餐活動圖6.4.2管理員處理訂單活動圖圖2-15管理員處理訂單活動圖三、設(shè)計匯報1設(shè)計概述限制和約束本系統(tǒng)web管理端為B/S(瀏覽器/服務(wù)器)結(jié)構(gòu),采取JSP技術(shù),系統(tǒng)框架為MVC模式,WWW服務(wù)器為TOMCAT7,數(shù)據(jù)庫服務(wù)器為SQLSERVER,瀏覽器為IE8。1.2設(shè)計標(biāo)準(zhǔn)和設(shè)計要求系統(tǒng)環(huán)境:服務(wù)器端:Windows7操作系統(tǒng),有IE8瀏覽器即可。用戶端:智能手機(jī)android2.3系統(tǒng)安全性要求:只有授權(quán)用戶才能登錄系統(tǒng),對于某個操作,需要含有對應(yīng)權(quán)限才能進(jìn)行操作。平臺漢字化:采取GB2312編碼標(biāo)準(zhǔn);符合漢字使用習(xí)慣操作界面,全部和用戶相關(guān)信息全部必需用漢字顯示。數(shù)據(jù)庫采取JDBC連接方法:以JDBC方法并使用標(biāo)準(zhǔn)SQL語句對數(shù)據(jù)庫進(jìn)行操作2系統(tǒng)概要設(shè)計和分析2.1系統(tǒng)功效設(shè)計此軟件系統(tǒng)概要設(shè)計匯報是基于校園外賣訂餐系統(tǒng)需求分析匯報所編寫,意在根據(jù)用戶需求開發(fā)出用戶所需要軟件。Web端功效:管理員有權(quán)限限制,一般和超級管理員所操作管理層次不一樣。管理員可更改密碼,超級管理員可添加、刪除一般管理員。能夠添加外賣可預(yù)訂資源,如菜單、飲料等,并填寫外賣描述信息。能夠添加外賣分類,并填寫新分類描述信息。能夠修改外賣狀態(tài),有貨或缺貨。能夠?qū)τ唵芜M(jìn)行操作同時到用戶端,第一時間通知用戶。Android手機(jī)用戶端功效:登錄外賣android手機(jī)用戶端,用戶能夠隨時隨地經(jīng)過手機(jī)登錄校園外賣用戶端。注冊賬號,用戶若沒有賬號,能夠經(jīng)過手機(jī)用戶端進(jìn)行注冊成為系統(tǒng)會員。修改個人信息,假如用戶個人信息發(fā)生了改變,用戶能夠經(jīng)過手機(jī)登錄方法方便地更改個人信息,這也為校園外賣管理用戶信息資料提供了便利。預(yù)訂資源,這是本系統(tǒng)最關(guān)鍵部分,用戶能夠經(jīng)過本系統(tǒng)方便快捷地預(yù)訂其想要外賣,這也是為用戶提供最關(guān)鍵功效。查看訂單,當(dāng)用戶想要查詢預(yù)訂結(jié)果,或想要了解訂單具體信息時,經(jīng)過手機(jī)用戶端能夠快速查看訂單。2.2子系統(tǒng)和模塊校園外賣訂餐管理系統(tǒng)含有兩大子系統(tǒng),android用戶應(yīng)用子系統(tǒng)和web管理子系統(tǒng)。2.2.1android用戶應(yīng)用子系統(tǒng)android用戶應(yīng)用子系統(tǒng)包含登陸注冊模塊、修改個人信息模塊、外賣資源模塊、訂單模塊。登陸注冊模塊包含用戶注冊和用戶登錄兩大功效。NO.1用戶注冊基礎(chǔ)功效用戶填寫個人信息進(jìn)行注冊。輸入項用戶名、密碼、手機(jī)號碼、送餐地址、性別、電子郵箱輸出項注冊成功、注冊失敗、用戶名已存在等NO.2用戶登錄基礎(chǔ)功效用戶進(jìn)行登錄。輸入項用戶名、密碼輸出項登錄成功、登錄失敗修改個人信息模塊包含修改個人信息功效。NO.3修改個人信息基礎(chǔ)功效用戶登陸后對個人信息進(jìn)行修改輸入項密碼、手機(jī)號碼、送餐地址、性別、電子郵箱輸出項修改成功、修改失敗外賣資源模塊包含查看外賣信息。NO.4查看外賣信息基礎(chǔ)功效查看全部外賣信息。輸入項無輸出項名稱、規(guī)格、價格、狀態(tài)訂單模塊包含下訂單、查詢訂單功效。NO.5下訂單基礎(chǔ)功效用戶進(jìn)行外賣訂餐輸入項要求送貨時間、最晚到貨時間輸出項預(yù)訂成功并顯示訂單信息NO.6查看訂單基礎(chǔ)功效對訂單具體信息進(jìn)行查看輸入項無輸出項訂單編號、下單時間、送貨狀態(tài)2.2.2web管理子系統(tǒng)web管理子系統(tǒng)包含修改密碼模塊、管理員管理模塊、外賣分類管理模塊、外賣資源管理模塊、訂單管理模塊。修改密碼模塊包含修改密碼功效。NO.1修改密碼基礎(chǔ)功效修改自己密碼輸入項用戶名、原密碼、新密碼、密碼確定輸出項修改成功、修改失敗管理員管理模塊包含添加管理員、刪除管理員功效。NO.2添加管理員基礎(chǔ)功效超級管理員添加一般管理員輸入項登錄名、登錄密碼輸出項添加成功、添加失敗NO.3刪除管理員基礎(chǔ)功效刪除已經(jīng)有一般管理員輸入項無輸出項刪除成功、刪除失敗訂單管理模塊包含處理訂單功效。NO.4處理訂單基礎(chǔ)功效對android用戶端提交訂單進(jìn)行處理輸入項預(yù)訂成功、預(yù)定中、預(yù)定失敗輸出項字符串信息,通知用戶端處理結(jié)果外賣分類管理模塊包含添加外賣分類信息功效、修改外賣分類信息功效、刪除外賣分類功效。NO.5添加外賣分類信息基礎(chǔ)功效添加外賣類別信息輸入項類名、圖片、描述、備注輸出項添加成功、添加失敗NO.6修改外賣分類信息基礎(chǔ)功效修改外賣分類信息輸入項類名、圖片、描述、備注輸出項修改成功、修改失敗NO.7刪除外賣分類信息基礎(chǔ)功效刪除外賣分類信息輸入項無輸出項刪除成功、刪除失敗外賣信息管理模塊包含添加、修改、刪除外賣資源信息功效。NO.8添加外賣資源信息基礎(chǔ)功效添加外賣資源信息輸入項名稱、分類、規(guī)格、價格、描述、狀態(tài)輸出項添加成功、添加失敗NO.9修改外賣資源信息基礎(chǔ)功效修改外賣資源信息輸入項名稱、分類、規(guī)格、價格、描述、狀態(tài)輸出項修改成功、修改失敗NO.10刪除外賣資源信息基礎(chǔ)功效刪除外賣資源信息輸入項名稱、分類、規(guī)格、價格、描述、狀態(tài)輸出項刪除成功、刪除失敗2.3系統(tǒng)犯錯處理設(shè)計系統(tǒng)犯錯出理設(shè)計關(guān)鍵經(jīng)過兩種方法來實現(xiàn),一是JAVA程序中拋出異常;二是在程序中設(shè)置邏輯判定來實現(xiàn)。假如發(fā)生錯誤,將錯誤信息在后臺輸出,并將頁面轉(zhuǎn)到錯誤處理頁面。2.4系統(tǒng)接口設(shè)計本系統(tǒng)接口關(guān)鍵分為三大類接口,一是和數(shù)據(jù)庫服務(wù)器接口;二是各子系統(tǒng)及各頁面間接口。2.4.1數(shù)據(jù)庫服務(wù)器接口設(shè)計對于數(shù)據(jù)庫服務(wù)器接口,采取主流JDBC接口,JDBC(JavaDataBaseConnectivity,java數(shù)據(jù)庫連接)是一個用于實施SQL語句JavaAPI,能夠為多個關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標(biāo)準(zhǔn)API,據(jù)此能夠構(gòu)建更高級工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純JavaAPI編寫數(shù)據(jù)庫應(yīng)用程序。2.4.2系統(tǒng)內(nèi)部接口設(shè)計系統(tǒng)內(nèi)部接口通常采取WEB內(nèi)部對象SESSION、REQUEST和POST來實現(xiàn),當(dāng)系統(tǒng)需要登錄才能實施對應(yīng)操作時,采取SESSION來傳值,關(guān)鍵實現(xiàn)在服務(wù)器端代碼內(nèi)部中傳值,具體實現(xiàn)方法關(guān)鍵經(jīng)過兩個函數(shù)來實現(xiàn),一是session.setAttribute(),另一個是session.getAttribute();當(dāng)系統(tǒng)需要從用戶端向服務(wù)器端來傳值時,用REQUEST和POST對象來實現(xiàn)。2數(shù)據(jù)庫設(shè)計2.1數(shù)據(jù)庫邏輯設(shè)計2.1.1數(shù)據(jù)庫E-R圖用戶實體包含用戶名、性別、密碼、電子郵件、聯(lián)絡(luò)電話、送餐地址。用戶名送餐地址用戶名送餐地址性別性別密碼用戶密碼用戶電子郵件電子郵件聯(lián)絡(luò)電話聯(lián)絡(luò)電話圖3-2用戶實體E-R圖管理員實體包含管理員登錄名、性別、密碼、管理員等級。密碼密碼管理員管理員等級管理員登錄名管理員管理員登錄名管理員圖3-3管理員實體E-R圖外賣分類實體包含管編號、類名、圖片、規(guī)則描述、描述。描述編號描述編號圖片圖片類名外賣分類類名外賣分類規(guī)則描述規(guī)則描述圖3-4外賣分類實體E-R圖外賣菜單實體包含菜編號、菜等級、菜名、描述、所屬分組、價格、狀態(tài)。菜編號菜等級菜編號菜等級描述描述外賣菜單菜名外賣菜單菜名狀態(tài)狀態(tài)價格所屬分組價格所屬分組圖3-5外賣菜單實體E-R圖訂單實體包含訂單編號、提交人、處理人、訂單狀態(tài)、提交時間、備注信息。訂單編號處理人訂單編號處理人訂單狀態(tài)提交人訂單訂單狀態(tài)提交人訂單備注信息備注信息提交時間提交時間圖3-6訂單實體E-R圖訂單明細(xì)實體包含訂單編號、所屬訂單號、菜單、處理狀態(tài)、開始時間、結(jié)束時間。菜單訂單編號菜單訂單編號所屬訂單號訂單明細(xì)處理狀態(tài)所屬訂單號訂單明細(xì)處理狀態(tài)開始時間開始時間結(jié)束時間結(jié)束時間圖3-7訂單明細(xì)實體E-R圖2.1.2數(shù)據(jù)庫關(guān)系圖圖3-8數(shù)據(jù)庫各表關(guān)系圖說明:resource表中rgroup關(guān)聯(lián)rgoup表中g(shù)idoinfo表中rgid關(guān)聯(lián)resource表中rgid基表設(shè)計基表編號:1基表英文名稱:adinfo基表漢字名稱:管理員表字段編號字段名稱數(shù)據(jù)類型主鍵是否為空說明1Adnamevarchar(20)是否管理員登陸名2Adpwdvarchar(20)否否管理員密碼3Adlevelint否否管理員等級基表編號:2基表英文名稱:users基表漢字名稱:用戶表字段編號字段名稱數(shù)據(jù)類型主鍵是否為空說明1Unamevarchar(20)是否用戶登錄名2Pwdvarchar(20)否否登錄密碼3telNumvarchar(20)否否聯(lián)絡(luò)電話4realNamenvarchar(100)否否送貨地址5Genderchar(10)否否性別(默認(rèn)男)6Emailvarchar(40)否否電子郵件基表編號:3基表英文名稱:rgroup基表漢字名稱:外賣分類字段編號字段名稱數(shù)據(jù)類型主鍵是否為空說明1gIdint是否編號2gNamenvarchar(10)否否類名3gImgvarchar(40)否否圖片4gDetailnvarchar(200)否否描述5gOrderDetnvarchar(200)否否備注信息基表編號:4基表英文名稱:resource基表漢字名稱:菜單字段編號字段名稱數(shù)據(jù)類型主鍵是否為空說明1Ridint是否菜編號2Rgroupint否否所屬分組3Rgidnvarchar(20)是否菜名4Rlevelnvarchar(20)否否菜等級5Rmoneydouble否否價格6Rdetailnvarchar(100)否否描述7Rstatusnvarchar(20)否否狀態(tài)(默認(rèn)有貨)基表編號:5基表英文名稱:olist基表漢字名稱:訂單表字段編號字段名稱數(shù)據(jù)類型主鍵是否為空說明1Oidint是否訂單編號2Onamevarchar(20)否否提交人3Otimevarchar(20)否否提交時間4Odealvarchar(20)否否處理人(默認(rèn)無)5Ostatusvarchar(20)否否訂單狀態(tài)(默認(rèn)預(yù)定中)6oreasonvarchar(100)否否備注信息(默認(rèn)無)基表編號:6基表英文名稱:oinfo基表漢字名稱:訂單明細(xì)字段編號字段名稱數(shù)據(jù)類型主鍵是否為空說明1Oridint是否預(yù)定編號2Oidint否否所屬訂單號3Rgidvarchar(20)否否菜單4Ftimevarchar(20)否否開始時間5Etimevarchar(20)否否結(jié)束時間6Ostatusvarchar(20)否否處理狀態(tài)(默認(rèn)預(yù)定中)備注:resource表中rgroup關(guān)聯(lián)rgoup表中g(shù)idoinfo表中rgid關(guān)聯(lián)resource表中rgid3系統(tǒng)具體設(shè)計和實現(xiàn)3.1web端系統(tǒng)功效開發(fā)3.1.1服務(wù)器端總框架服務(wù)器端各個jsp文件和servlet文件關(guān)系,以下圖所表示:說明:ListServlet、OrderServlet和RegAndLoginServlet是控制器,負(fù)責(zé)處理服務(wù)器Web端管理員發(fā)來請求,DB是負(fù)責(zé)處理具體業(yè)務(wù)工具方法類,這些jsp文件在前臺顯示。動作編號動作內(nèi)容a管理員登陸b修改管理員密碼c刪除管理員d添加管理員e重置管理員密碼f添加分類g修改、刪除分類h修改、刪除外賣i添加外賣j修改、刪除外賣k顯示、處理訂單3.1.2管理員登陸功效開發(fā)打開Web端登錄頁面,登錄頁面經(jīng)過adindex.jsp實現(xiàn),向控制器RegAndLoginServlet發(fā)出請求并處理其返回信息來實現(xiàn)管理員登錄。開發(fā)RegAndLoginServlet,RegAndLoginServlet是校園外賣訂餐系統(tǒng)關(guān)鍵控制器之一,管理員登錄、注銷、修改信息全部要經(jīng)過RegAndLoginServlet處理并跳轉(zhuǎn)。RegAndLoginServlet在Web端項目WEB-INF/classes目錄下,實現(xiàn)關(guān)鍵代碼以下:RegAndLoginServlet.javapublicclassRegAndLoginServletextendsHttpServlet{…… publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres) throwsServletException,IOException{ req.setCharacterEncoding("gb2312"); res.setCharacterEncoding("gb2312"); //得到請求響應(yīng)action Stringaction=req.getParameter("action"); //得到session對象 HttpSessionsession=req.getSession(true); PrintWriterpw=res.getWriter(); Stringmsg=""; if(action.equals("adlogin")){ session.removeAttribute("adname"); Stringadname=req.getParameter("adname").trim();//得到登陸名 Stringpwd=req.getParameter("pwd").trim();//得到登陸密碼 //拼裝從數(shù)據(jù)庫得到登陸管理員密碼SQL語句 Stringsqla="selectadpwdfromadinfowhereadname='"+adname +"'"; StringpwdFromDB=DB.getInfo(sqla);//實施查詢得到正確密碼 if(pwdFromDB!=null&&pwd.equals(pwdFromDB)){//登陸成功 session.setAttribute("adname",adname);//將登陸管理員保留進(jìn)session msg="登陸成功。";//提醒登陸成功 }else{//登陸失敗提醒 msg="錯誤用戶名和密碼,請重新登陸<br><br>"+"<ahref=adindex.jsp>重新登陸"; } //將信息發(fā)送到信息顯示頁面 req.setAttribute("msg",msg); req.getRequestDispatcher("adinfo.jsp").forward(req,res); }elseif(action.equals("adlogout")){//注銷 session.removeAttribute("adname"); msg="退出成功。";//提醒注銷成功 req.setAttribute("msg",msg); req.getRequestDispatcher("adinfo.jsp").forward(req,res); } }}3.1.3分類管理功效開發(fā)本模塊包含功效關(guān)鍵有分類添加、修改和刪除。管理員登錄系統(tǒng)后,在分類管理頁面即可修改和刪除分組。分組管理頁面是由adminGroup.jsp顯示,管理員在adminGroup.jsp頁面中選擇"修改/刪除",將向ListServlet發(fā)出請求,ListServlet處理該請求,關(guān)鍵代碼以下:ListServlet.javapublicvoiddoPost(HttpServletRequestreq,HttpServletResponseres) throwsServletException,IOException{ req.setCharacterEncoding("gb2312");//設(shè)置req編碼為gb2312 res.setCharacterEncoding("gb2312");//設(shè)置res編碼為gb2312 Stringaction=req.getParameter("action");//得到請求響應(yīng)action HttpSessionsession=req.getSession(true);//得到session對象 //得到登陸管理員ID StringadnameSes=(String)session.getAttribute("adname"); Stringmsg="";//申明消息字符串……}elseif(action.equals("editGroup")){//編輯分組 intgId=Integer.parseInt(req.getParameter("gId")); Vector<String>ginfo=DB.getGroupInfo(gId); req.setAttribute("ginfo",ginfo); req.getRequestDispatcher("GroupInfo.jsp").forward(req,res);……管理員登錄系統(tǒng)后,在分組管理頁面即可增加分組。分組管理頁面是由adminGroup.jsp顯示,管理員在adminGroup.jsp頁面中選擇"添加分組",將由addGroup.jsp向ListServlet發(fā)出請求,ListServlet處理該請求,關(guān)鍵代碼以下:……}elseif(action.equals("addGroup")){ intgId=DB.getId("rgroup","gId");//得到添加分組ID //得到填寫信息 StringgName=req.getParameter("gName"); StringgImg=req.getParameter("gImg"); StringgDetail=req.getParameter("gDetail"); StringgOrderDet=req.getParameter("gOrderDet");Stringsql="insertintorgroup(gId,gName,gImg,gDetail,gOrderDet)values(N'"+gId+"',N'"+gName+"',N'" +gImg +"',N'"+gDetail+"',N'"+gOrderDet+"')";//拼裝SQL System.out.println(sql); if(DB.update(sql)>0){//實施更新 msg="添加分組成功<br><br><ahref=ListServlet?action=adminGroup>返回"; }else{ msg="未知錯誤,添加失敗"; } this.forward(req,res,msg,"adinfo.jsp"); }……3.1.4外賣管理功效開發(fā)本模塊包含功效關(guān)鍵有顯示外賣信息、修改外賣信息、刪除外賣信息、添加外賣和查詢外賣。管理員登錄系統(tǒng)后,外賣管理頁面進(jìn)行分頁顯示,需要開發(fā)頁面有adminResource.jsp和adminFenYe.jsp,實現(xiàn)代碼以下。adminResource.jsp……<%@includefile="adminRestop.jsp"%><%@includefile="adminFenYe.jsp"%>……上述代碼為adminResource.jsp,在其實施完成后,頁面跳轉(zhuǎn)至adminFenYe.jsp,關(guān)鍵代碼以下。adminFenYe.jsp<% Vector<String>list=(Vector<String>)session.getAttribute("list"); intgroup=Integer.parseInt(list.get(0)); StringgName=list.get(1);//得到分組名 StringcpStr=request.getParameter("cp"); intcurrPage=1;//設(shè)置默認(rèn)目前頁為第一頁 if(cpStr!=null){ currPage=Integer.parseInt(cpStr.trim());//得到目前頁 } intspan=5;//每頁顯示統(tǒng)計條數(shù)為5條 inttotalPage=DB.getTotal(span,group);//得到總頁數(shù)%><% Vector<String[]>v=DB.getPageContent(currPage,span,group); intcolor=0;//改變每行顏色%>…… <% for(String[]s:v){ %> <trbgcolor=<%=color%2==0?"f7fbb9":"ffeeee"%>> <tdalign="center"><%=s[0]%></td> <tdalign="center"><%=s[6]%></td> <tdalign="center"><%=s[1]%></td> <tdalign="center"><fontcolor="red"size="3"><%=s[2]%>¥ </font></td> <tdalign="center"><%=s[3]%></td> <tdalign="center"><%=s[4]%></td> <tdalign="center"><ahref="ListServlet?action=editRes&&rid=<%=s[5]%>">修改/刪除</a></td> </tr> <% color++; } %>…… <% if(currPage>1){ %><ahref="adminResource.jsp?cp=<%=curr1%>">>>上一頁</a><% }…… <% // inttotalPage; for(inti=1;i<=totalPage;i++){ Strings=""; if(i==currPage){ s="selected"; } %> <optionvalue="<%=i%>"<%=s%>> 第<%=i%>頁 </option> <% } %>…… <% if(currPage<totalPage){ %><ahref="adminResource.jsp?cp=<%=currPage+1%>">下一頁>></a><% }%>……3.1.5訂單管理功效開發(fā)本模塊包含功效關(guān)鍵有顯示訂單、查詢訂單、處理訂單。在訂單管理功效開發(fā)實現(xiàn)前,首先開發(fā)出訂單管理界面,addminOrder.jsp訂單管理關(guān)鍵是依據(jù)不一樣條件顯示出不一樣訂單列表,并處理具體訂單,這些功效經(jīng)過向OrderServlet發(fā)出請求,OrderServlet處理請求關(guān)鍵代碼以下:OrderServlet.java……elseif(action.equals("allOrders")){//按條件查詢訂單 if(session.getAttribute("adname")!=null){//管理員是否登陸 Stringsql="";//申明SQL引用 intconditon=Integer.parseInt(req.getParameter("condition")); switch(conditon){ case1://1表示全部訂單 sql="select*fromolist"; break; case2://2表示已經(jīng)處理訂單…… break; case3://3表示未處理訂單…… break; } Vector<String[]>list=Order_DB.getOrderList(sql); req.setAttribute("list",list);//將訂單列表返回 req.getRequestDispatcher("adminOrders.jsp").forward(req,res); }else{ msg="請先登陸";//沒有登陸提醒消息 req.setAttribute("msg",msg); req.getRequestDispatcher("adinfo.jsp").forward(req,res); } }elseif(action.equals("query")){//按編號查詢訂單 Vector<String[]>list=null; try{ intoid=Integer.parseInt(req.getParameter("oid")); Stringsql="select*fromolistwhereoid="+oid; list=Order_DB.getOrderList(sql); }catch(NumberFormatExceptionnfe)//輸入訂單號格式不正確 { list=newVector<String[]>(); }//返回一個空向量 req.setAttribute("list",list); req.getRequestDispatcher("adminOrders.jsp").forward(req,res); }elseif(action.equals("dealOrder")){//處理訂單 Stringadname=(String)session.getAttribute("adname"); Stringreason=req.getParameter("reason"); Stringostatus=req.getParameter("ostatus"); intoid=Integer.parseInt(req.getParameter("oid")); //拼裝SQL…… booleanb=DB.update(sqla,sqlb);//實施更新 if(b==true){ msg="訂單處理成功<br><br>" +"<ahref='OrderServlet?action=allOrders&&condition=1'>返回"; }else{ msg="訂單處剪發(fā)生錯誤,處理失敗"; } req.setAttribute("msg",msg);//返回處理消息 req.getRequestDispatcher("adinfo.jsp").forward(req,res); } }3.2Android用戶端功效開發(fā)3.2.1用戶登錄功效開發(fā)用戶開啟android用戶端進(jìn)入用戶登錄界面,用戶能夠直接輸入用戶名和密碼進(jìn)行登錄,經(jīng)過服務(wù)器驗證以后進(jìn)入本系統(tǒng)。下面介紹用戶端登錄功效實現(xiàn),關(guān)鍵代碼以下。MainActivity.javapublicvoidgotoLoginView(){ setContentView(R.layout.login); Buttonb=(Button)this.findViewById(R.id.loginButton01);//登錄鍵監(jiān)聽 b.setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ //準(zhǔn)備URL finalStringurl="http://"+IP_ADDRESS +":8080/DeliveryWeb/receive.jsp"; //準(zhǔn)備參數(shù)列表 EditTextet1=(EditText)findViewById(R.id.loginEditText01); EditTextet2=(EditText)findViewById(R.id.loginEditText02); finalMap<String,String>params=newHashMap<String,String>(); params.put("params1",et1.getText().toString()); params.put("params2",et2.getText().toString()); Stringusername=et1.getText().toString(); //獲取SharedPreferences SharedPreferencessp=MainActivity.this.getSharedPreferences( "actm",Context.MODE_PRIVATE); //從SharedPreferences中讀取上次訪問時間 Stringuname=sp.getString(username,//鍵值 null//默認(rèn)值 ); SharedPreferences.Editoreditor=sp.edit(); editor.putString("uname",username); mit(); //} //發(fā)送數(shù)據(jù) newThread(){ publicvoidrun(){ StringmsgStr=HttpUploadUtil.postWithoutFile(url, params);//將url和參數(shù)傳給jsp Bundleb=newBundle(); //將內(nèi)容字符串放進(jìn)數(shù)據(jù)Bundle中 b.putString("msg",msgStr); //創(chuàng)建消息對象 Messagemsg=newMessage(); //設(shè)置數(shù)據(jù)Bundle到消息中 msg.setData(b); //設(shè)置消息what值 msg.what=Constant.LOGINVIEW; //發(fā)送消息 hd.sendMessage(msg); } }.start(); } }); Buttonre=(Button)this.findViewById(R.id.loginButton02);//注冊鍵監(jiān)聽 re.setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ gotoRegister();//去注冊界面 } }); curr=WhichView.LOGIN_VIEW; }……服務(wù)器端接收Android用戶端傳過來用戶名和密碼以后,對用戶名和密碼進(jìn)行匹配判定,只有匹配成功以后方可進(jìn)入主界面,不然返回登錄失敗提醒,關(guān)鍵代碼以下:receive.jsp<%Stringparam1=request.getParameter("params1").trim();Stringparam2=request.getParameter("params2").trim();Stringuname=MyConverter.unescape(param1);Stringpwd=MyConverter.unescape(param2);Stringsqla="selectpwdfromuserswhereuname='"+uname+"'";if(DB.isExist(sqla)){ Stringsql="selectpwdfromuserswhereuname='"+uname+"'"; Stringpassword=DB.getInfo(sql).trim();//從數(shù)據(jù)庫得到密碼 if(pwd.equals(password)){ out.println(MyConverter.escape("登錄成功")); } else{ out.println(MyConverter.escape("登錄失敗")); } }else{out.println(MyConverter.escape("用戶不存在,請重新輸入"));}%>用戶端經(jīng)過Handler消息處理器,依據(jù)消息what值實施對應(yīng)代碼,接收服務(wù)器端返回字符串,若接收字符串為"登錄成功",則進(jìn)入主界面;若接收字符串為"登錄失敗",則顯示"登錄失敗"Toast,關(guān)鍵代碼以下:MainActivity.javahd=newHandler(){ @Override publicvoidhandleMessage(Messagemsg){ //調(diào)用父類處理 super.handleMessage(msg); //獲取消息中數(shù)據(jù) Bundleb; b=msg.getData(); //獲取內(nèi)容字符串 StringmsgStr=b.getString("msg"); //依據(jù)消息what編號不一樣,實施不一樣業(yè)務(wù)邏輯 switch(msg.what){ caseConstant.GOTOLOGIN: gotoLoginView(); break; //將消息中內(nèi)容提取出來顯示在EditText中 caseConstant.LOGINVIEW: if(msgStr.equals("登錄成功")){ Toast.makeText(MainActivity.this,"登錄成功!", Toast.LENGTH_SHORT).show(); gotoMainView(); }else{ Toast.makeText(MainActivity.this,"登錄失敗", Toast.LENGTH_SHORT).show(); } break;3.2.2用戶注冊功效開發(fā)若用戶沒有賬號,也能夠經(jīng)過單擊登錄界面注冊按鈕來進(jìn)行注冊,注冊成功以后再進(jìn)行登錄,進(jìn)入本系統(tǒng)主界面。單擊注冊按鈕,進(jìn)入注冊界面,用戶填寫信息完成并經(jīng)過用戶端驗證以后,將用戶信息傳給服務(wù)器端。服務(wù)器端取得用戶信息后,首先判定用戶名是否存在,若用戶名存在,則提醒用戶名已存在;若用戶名不存在,則更新數(shù)據(jù)庫中用戶表,將用戶注冊信息添加到數(shù)據(jù)庫中,關(guān)鍵代碼以下:register.jsp<%Stringparam1=request.getParameter("yonghuming").trim();Stringparam2=request.getParameter("mm").trim();Stringparam3=request.getParameter("telnum").trim();Stringparam4=request.getParameter("realname").trim();Stringparam6=request.getParameter("sex").trim();Stringparam5=request.getParameter("email").trim();Stringyonghuming=MyConverter.unescape(param1);Stringmm=MyConverter.unescape(param2);Stringtelnum=MyConverter.unescape(param3);Stringrealname=MyConverter.unescape(param4);Stringemail=MyConverter.unescape(param5);Stringsex1=MyConverter.unescape(param6);System.out.print(sex1);Stringsqla="selectpwdfromuserswhereuname='"+yonghuming+"'";if(DB.isExist(sqla)){ out.println(MyConverter.escape("用戶名已存在,請試試另一個?。?!")); } else { Stringsql="insertintousersvalues('"+yonghuming+"','"+mm+"'"+ ",'"+telnum+"',N'"+realname+"','"+sex1+"','"+email+"')"; DB.update(sql); out.println(MyConverter.escape("注冊成功,請輸入用戶名和密碼以登錄!")); }%>Android用戶端收到服務(wù)器端傳來提醒用戶注冊成功消息字符串以后,自動跳轉(zhuǎn)至登錄界面,用戶輸入注冊用戶名和密碼進(jìn)行登錄,關(guān)鍵代碼以下:MainActivity.java……caseConstant.REGISTER: //獲取消息中數(shù)據(jù) b=msg.getData(); //獲取內(nèi)容字符串 msgStr=b.getString("msg"); Toast.makeText(MainActivity.this,msgStr, Toast.LENGTH_SHORT).show(); System.out.println(msgStr); if(msgStr.equals("注冊成功,請輸入用戶名和密碼以登錄!"))//假如從jsp得到字符串為登錄成功,則轉(zhuǎn)到首頁 { gotoLoginView(); } break;……3.2.3顯示和修改用戶信息開發(fā)用戶登錄成功進(jìn)入主界面以后,單擊向右圖形按鈕,跳轉(zhuǎn)至用戶信息界面,此界面用于顯示用戶目前個人信息,用戶能夠依據(jù)需要修改包含密碼在內(nèi)個人信息。跳轉(zhuǎn)到用戶信息界面時,實施gotoUserInfo方法,系統(tǒng)將目前用戶名傳給服務(wù)器端。服務(wù)器端依據(jù)用戶端傳過來用戶名,獲取數(shù)據(jù)庫中該用戶個人信息,將其以字符串形式返回給用戶端。用戶端接收服務(wù)器端返回用戶個人信息字符串,對字符串進(jìn)行分割處理后分別顯示到對應(yīng)TextView中,供用戶查看其個人信息。用戶可能因為多種原因需要修改個人信息,更改TextView中內(nèi)容后,單擊更改信息按鈕,經(jīng)過用戶端驗證以后,將新用戶信息發(fā)送給服務(wù)器端,就能夠?qū)崿F(xiàn)用戶信息更改。發(fā)送到服務(wù)器端后,服務(wù)器端將取得數(shù)據(jù)存入數(shù)據(jù)庫,實施SQL語句更新數(shù)據(jù)庫中用戶個人信息user表,并將更新結(jié)果返回給用戶端。用戶端取得服務(wù)器端返回字符串,并判定是否更新成功,若成功則跳轉(zhuǎn)至登錄界面,并提醒"更新成功,請重新登錄!";若失敗則顯示"更新失敗"。3.2.4顯示全部外賣資源功效開發(fā)用戶經(jīng)過標(biāo)題欄按鍵跳轉(zhuǎn)到資源信息界面,顯示全部外賣資源。在用戶信息界面單擊標(biāo)題欄右側(cè)圖形按鈕,或在訂單信息界面單擊標(biāo)題欄左側(cè)圖形按鈕時,服務(wù)器端從數(shù)據(jù)庫中取得全部外賣信息返回給用戶端。當(dāng)界面跳轉(zhuǎn)到全部資源信息顯示界面時,向服務(wù)器端發(fā)送消息,服務(wù)器將用戶端需要全部外賣信息進(jìn)行處理以后以字符串形式返回給用戶端。用戶端接收服務(wù)器端傳回參數(shù)字符串,調(diào)用initListViewf方法進(jìn)行處理。依據(jù)list值判定顯示界面類型方法。3.2.5訂單列表功效開發(fā)在外賣信息界面單擊標(biāo)題欄右側(cè)圖形按鈕時,跳轉(zhuǎn)到訂單列表界面,同時傳給服務(wù)器端目前用戶用戶名,返回給Android用戶端此用戶全部訂單信息,用戶端將全部訂單展現(xiàn)給用戶。跳轉(zhuǎn)至訂單列表界面時,Android用戶端將目前用戶用戶名發(fā)送給服務(wù)器,用于取得用戶全部訂單。服務(wù)器端取得用戶端傳來用戶名后,調(diào)用DB_Order中g(shù)etOrderListThree方法,取出此用戶全部訂單,將訂單以字符串形式返回給用戶端。用戶端經(jīng)過消息處理器取得服務(wù)器端傳過來訂單信息字符串,調(diào)用initListViewt方法對字符串進(jìn)行處理后,將全部訂單展現(xiàn)給用戶。initListViewt用于將從服務(wù)器端取得內(nèi)容顯示在訂單列表界面。3.2.6訂單明細(xì)功效開發(fā)當(dāng)用戶想了解訂單列表中某一訂單具體信息時,單擊此訂單,就能夠查看目前訂單資源編號、訂購起始時間、結(jié)束時間等具體信息。用戶單擊訂單列表某一訂單時,將訂單編號傳給服務(wù)器端。服務(wù)器端取得訂單編號,從數(shù)據(jù)庫中取出此訂單具體信息返回給用戶端。用戶端經(jīng)過消息處理器接收服務(wù)器端傳過來訂單信息字符串,經(jīng)過分割處理,將各項訂單信息展現(xiàn)給用戶。3.2.7訂單刪除功效開發(fā)用戶可能因為多種原因需要取消已下訂單,本系統(tǒng)充足考慮到了用戶需求。用戶只需單擊刪除訂單按鈕,就能夠刪除選中訂單。單擊刪除按鈕,將需要刪除訂單編號和url傳給服務(wù)器端。服務(wù)器端獲取用戶端傳過來訂單編號,調(diào)用刪除訂單方法將訂單刪除,并將處理結(jié)果返回給用戶端。用戶端接收服務(wù)器端返回訂單處理結(jié)果,并將處理結(jié)果展現(xiàn)給用戶。四、軟件測試匯報1引言為了盡可能找出軟件不足,提升軟件質(zhì)量,促進(jìn)軟件成功驗收,專門制訂了本綱領(lǐng)。其關(guān)鍵目標(biāo)在于為所要進(jìn)行測試工作制訂多種必需準(zhǔn)則和規(guī)范,和在相關(guān)方面協(xié)議基礎(chǔ)上對測試工作進(jìn)行合理組織和管理。2檢驗具體內(nèi)容2.1軟件代碼測試2.2.1源代碼通常性檢驗表4-1注釋檢驗測試目標(biāo)檢驗程序中注釋是否規(guī)范,注釋量是否達(dá)成要求測試方法和技術(shù)對代碼進(jìn)行檢驗完成標(biāo)準(zhǔn)能依據(jù)注釋讀懂代碼并進(jìn)行后面其它測試需考慮特殊事項無表4-2限制性檢驗測試目標(biāo)在這個系統(tǒng)中,關(guān)鍵檢測是否出現(xiàn)漢字亂碼現(xiàn)象,時間是否能正常顯示測試方法和技術(shù)用戶端輸入時間,觀察服務(wù)器端是否正常顯示。從數(shù)據(jù)庫中讀出漢字是否正常顯示,無亂碼現(xiàn)象。完成標(biāo)準(zhǔn)時間顯示正常,無漢字亂碼現(xiàn)象需考慮特殊事項無2.2.2軟件一致性檢驗編譯檢驗要求提交源代碼在其要求編譯環(huán)境中,能夠重新編譯無錯誤,而且能夠完成對應(yīng)功效,從而確定移交確實實是正確源代碼。安裝/卸載檢驗在新系統(tǒng)上用交付軟件安裝包重新安裝各個模塊,而且經(jīng)過運行這些軟件模塊,能否完成對應(yīng)功效,從而確定移交確實實是正確軟件安裝包。在安裝后立即卸載所安裝模塊,而且檢驗是否能夠做到根本卸載。2.2.3軟件代碼測試匯報表4-3web管理子系統(tǒng)測試用例編號01測試需求項Web管理端.06.12測試目標(biāo)狀態(tài)和測試數(shù)據(jù)狀態(tài)達(dá)成預(yù)期要求序號測試項輸入說明(操作)輸出說明(預(yù)期結(jié)果)登陸系統(tǒng)輸入預(yù)定正確用戶名,密碼輸入錯誤用戶名或密碼直接輸入空格進(jìn)入用戶選擇頁面顯示“登錄失敗”顯示“輸入用戶名和密碼”注銷管理員登陸后,點擊注銷顯示“退出成功”管理員管理點擊管理員管理點擊添加管理員輸入管理員信息點擊刪除管理員點擊重置管理員密碼輸入管理員名稱和新密碼進(jìn)入管理員列表頁面進(jìn)入管理員添加頁面添加成功刪除成功進(jìn)入重置密碼頁面修改成功分類管理點擊分類管理點擊添加分類輸入分類信息點擊修改/刪除按鈕輸入要修改分類信息點擊刪除按鈕進(jìn)入分類列表頁面進(jìn)入分類添加頁面添加成功進(jìn)入分類修改頁面修改成功刪除分類成功菜品管理點擊外賣管理點擊添加外賣輸入外賣信息點擊修改/刪除按鈕輸入要修改外賣信息點擊刪除按鈕進(jìn)入外賣列表頁面進(jìn)入外賣添加頁面添加成功進(jìn)入外賣修改頁面修改成功刪除外賣信息成功訂單管理點擊訂單管理點擊添加外賣點擊預(yù)定中、預(yù)訂成功、預(yù)定失敗進(jìn)入訂單列表頁面進(jìn)入外賣添加頁面訂單處理成功表4-3android用戶端子系統(tǒng)測試用例編號02測試需求項Android用戶端.06.12測試目標(biāo)狀態(tài)和測試數(shù)據(jù)狀態(tài)達(dá)成預(yù)期要求序號測試項輸入說明(操作)輸出說明(預(yù)期結(jié)果)登陸系統(tǒng)輸入預(yù)定正確用戶名,密碼輸入錯誤用戶名或密碼直接輸入空格進(jìn)入首頁顯示“登錄失敗”顯示“輸入用戶名和密碼”注冊用戶進(jìn)行信息注冊顯示“注冊成功”修改用戶信息點擊右導(dǎo)航按鈕修改用戶信息進(jìn)入用戶信息頁面修改成功外賣信息點擊右導(dǎo)航按鈕點擊想訂購?fù)赓u修改時間,點擊預(yù)訂進(jìn)入外賣信息頁面進(jìn)入訂購頁面訂購成功訂單查看點擊右導(dǎo)航按鈕點擊訂單進(jìn)入訂單查看頁面進(jìn)入訂單具體信息頁面2.2軟件系統(tǒng)測試(1)白盒測試:白盒測試法全方面了解程序內(nèi)部邏輯結(jié)構(gòu)、對全部邏輯路徑進(jìn)行測試。白盒測試法是窮舉路徑測試。在使用這一方案時,測試者必需檢驗程序內(nèi)部結(jié)構(gòu),從檢驗程序邏輯著手,得出測試數(shù)據(jù)。貫穿程序獨立路徑數(shù)是天文數(shù)字。但即使每條路徑全部測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設(shè)計規(guī)范,即程序本身是個錯誤程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而犯錯。第三,窮舉路徑測試可能發(fā)覺不了部分和數(shù)據(jù)相關(guān)錯誤。(2)黑盒測試:黑盒測試也稱功效測試,它是經(jīng)過測試來檢測每個功效是否全部能正常使用。在測試中,把程序看作一個不能打開黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特征情況下,在程序接口進(jìn)行測試,它只檢驗程序功效是否根據(jù)需求規(guī)格說明書要求正常使用,程序是否能合適地接收輸入數(shù)據(jù)而產(chǎn)生正確輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),關(guān)鍵針對軟件界面和軟件功效進(jìn)行測試。作為系統(tǒng)完成最終一個步驟,它是系統(tǒng)能否

溫馨提示

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

評論

0/150

提交評論