基于Android的網(wǎng)上訂餐系統(tǒng)方案_第1頁
基于Android的網(wǎng)上訂餐系統(tǒng)方案_第2頁
基于Android的網(wǎng)上訂餐系統(tǒng)方案_第3頁
基于Android的網(wǎng)上訂餐系統(tǒng)方案_第4頁
基于Android的網(wǎng)上訂餐系統(tǒng)方案_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、u eurasia 歐亞學(xué)院 信息工程學(xué)院 專業(yè)綜合課程設(shè)計(jì)報(bào)告 項(xiàng)目題目 基于安卓的網(wǎng)上訂餐系統(tǒng) 專業(yè)班級(jí): 統(tǒng)本電信1301班 學(xué)號(hào): 馬麗 192 指導(dǎo)教師: 宏于 有強(qiáng) 完成時(shí)間: 2016 年12月30日 設(shè)計(jì)報(bào)告成績?cè)u(píng)定表 評(píng)分容 成績 系統(tǒng)方案思路合理性(10% 報(bào)告容的完整性(10%) 硬件原理圖及說明(20%) 程序流程圖(20%) 程序清單(10%) 調(diào)試及結(jié)果分析(10%) 系統(tǒng)改進(jìn)建議或者方案(10%) 格式規(guī)(10%) 總分 備注:以上總分為該組的平均分,根據(jù)成員分工具體分?jǐn)?shù)如下。 小組成員 分工 分?jǐn)?shù) 馬麗 軟件調(diào)試 摘要 隨著科技的發(fā)展,二十一世紀(jì)成為了以網(wǎng)絡(luò)化,

2、信息化為核心的社會(huì)。網(wǎng)絡(luò)商業(yè)化 也成為了時(shí)下最熱門的詞匯。隨著信息技術(shù)的不斷更新,特別是 07 年谷歌公司推出了 Android 開放源碼,讓 Android 操作系統(tǒng)成為了移動(dòng)平臺(tái)的寵兒,本系統(tǒng)主要分析了中 小型餐飲店管理與發(fā)展的現(xiàn)狀所面臨的問題, 發(fā)現(xiàn)傳統(tǒng)的服務(wù)模式已經(jīng)不能適應(yīng)市場(chǎng)發(fā) 展的需求,方便、快捷、個(gè)性化的網(wǎng)上訂餐服務(wù)正在進(jìn)入人們的生活。針對(duì)這類問題, 結(jié)合當(dāng)代科技發(fā)展的新成果,本文構(gòu)思規(guī)劃了一套最貼切的服務(wù)模式,為中小型餐飲店 外送服務(wù)提供了一套系統(tǒng)。 本設(shè)計(jì)是一個(gè)基于 Android 手機(jī)的網(wǎng)上訂餐系統(tǒng),采用 C/S 模式,能為客戶提供網(wǎng) 上選擇瀏覽菜品介紹,點(diǎn)菜訂餐服務(wù),并為

3、管理員提供一個(gè)服務(wù)平臺(tái)實(shí)現(xiàn)用戶信息與顧 客訂單的管理,從而提高了服務(wù)的質(zhì)量,本文從系統(tǒng)需求、系統(tǒng)實(shí)際、代碼實(shí)現(xiàn)幾個(gè)方 面介紹了整個(gè)軟件的開發(fā)過程,這個(gè)系統(tǒng)采用JAVA、 SQL Server 數(shù)據(jù)庫 ,并利用 MyEclipse、TOMCATAndroid SDK、ADT AVD DDM等開發(fā)環(huán)境或者開發(fā)工具。 關(guān)鍵詞:An droid ; Java; MyEclipse ; SQLite ; SQL Server 2005 ABSTRACT With the developme nt of scie nee and tech no logy,the21st cen tury hasbecom

4、e a society centred on informationand network.Henee commercializationof network has become one of the hottest topics in rece nt years. An droid operat ing system is gradually going to be the darling of the mobile platform, which results from the con sta ntly updat ing of in formati on tech no logy,

5、especially the appeara nee of An droid ope n source carried out by Google compa ny in 2007. The system mentioned in this article mainly focus on the problems faced by the middle and small reataurantsin theirmanagement and development, and finds that the traditi onal service mode can not adapt to the

6、 n eeds of the developme nt of the market any more.A more convenient, quicker,a nd pers on alized service en ters people s lifeonline reservations. In view of the existing problems and comb ining the latest achieveme nts of the developme nt of moder n tech no logy, I have con ceived a set of the mos

7、t appropriate patter n of dilivery service for the restaura nt in dustry. This desig n is a on li ne reservatio ns system based on the An droid mobile phones, which adopts C/S mode. It can provide services for clients to choose dishes introductionfreely ,and to order meal actively.Besides, it can al

8、so offer a service platform for man ager to regulate the user in formati ons and customer orders, so as to improve the quality of their services .In this article, I d like to introduce the whole development process of this software in details from the system requirements, system realization,codeimpl

9、ementation and someother aspects.This system uses JAVA,SQL Server database,i n additi on, MyEclipse、 TOMCAT An droid SDK、ADT AVD DDMS and other developme nt en viro nments or developme nt tools are also used in it. Keywords: Android ; Java; MyEclipse ; SQLite ; SQL Server 2005 第一章引 言 1.1項(xiàng)目背景 1 1.2 項(xiàng)

10、目目的 1 1.3 主要容 2 第二章系統(tǒng)理論與技術(shù)3 2.1 An droid 3 2.1.1 An droid簡介 3 2.1.2 An droid Features 特性 3 2.1.3 An droid基本框架(An droid Architecture ) 4 2.1.4 An droid 系統(tǒng)的四大組件 4 2.2 Java 5 2.3 SQL Server 2005和SQLite 數(shù)據(jù)庫 5 2.4 C/S 模式 6 第三章系統(tǒng)分析與設(shè)計(jì) 8 3.1 功能需求 8 3.2 模塊結(jié)構(gòu)與流程 9 3.2.1 客戶端 9 3.2.2服務(wù)端 10 3.3數(shù)據(jù)庫設(shè)計(jì) 11 3.3.1 數(shù)據(jù)

11、庫表及其結(jié)構(gòu) 11 3.3.2 數(shù)據(jù) 12 3.3.3客戶端數(shù)據(jù)庫的連接 13 3.3.4 服務(wù)器數(shù)據(jù)庫的連接 14 3.4系統(tǒng)結(jié)構(gòu) 15 3.4.1 部署圖 15 3.4.2 類圖 15 3.5 執(zhí)行概念 16 第四章系統(tǒng)實(shí)現(xiàn)18 4.1 An droid 環(huán)境搭建 18 4.2客戶端 19 4.2.1 系統(tǒng)登錄 19 4.2.2系統(tǒng)注冊(cè) 21 4.2.3瀏覽菜品 23 424搜索菜品 25 425訂餐 26 426結(jié)賬 28 4.3服務(wù)端 29 4.3.1 系統(tǒng)登錄 29 4.3.2訂單管理 30 433菜品管理 32 4.3.4會(huì)員管理 35 第五章 結(jié)束語38 參考文獻(xiàn)40 致 謝41

12、 第一章引 言 1.1項(xiàng)目背景 伴隨著我國市場(chǎng)經(jīng)濟(jì)的高度發(fā)展,企業(yè)越來越依賴于市場(chǎng)和客戶,這種依賴關(guān)系已 經(jīng)開始逐步提升到關(guān)乎企業(yè)生存的高度。如何獲得更多客流量,如何通過小的代價(jià)而使 商家獲得更大的知名度,這是使企業(yè)得以生存、發(fā)展、壯大的關(guān)鍵。年銷售過億的眾多 電子商務(wù)案例讓人們看到了更多的商機(jī)。 與應(yīng)用場(chǎng)景相當(dāng)有限的PC (個(gè)人電腦)相比, 生而具備便攜屬性的手機(jī)給了電商們更大的想象空間。移動(dòng)電子商務(wù)由此產(chǎn)生了。移動(dòng) 電子商務(wù)就是利用手機(jī)、PDA及掌上電腦等無線終端進(jìn)行的 B2BB2C或C2C的電子商務(wù)。 它將因特網(wǎng)、移動(dòng)通信技術(shù)、短距離通信技術(shù)及其它信息處理技術(shù)完美的結(jié)合,使人們 可以在任

13、何時(shí)間、任何地點(diǎn)進(jìn)行各種商貿(mào)活動(dòng),實(shí)現(xiàn)隨時(shí)隨地、線上線下的購物與交易、 在線電子支付以及各種交易活動(dòng)、商務(wù)活動(dòng)、金融活動(dòng)和相關(guān)的綜合服務(wù)活動(dòng)等。 而An droid操作系統(tǒng)憑借著自己開放的平臺(tái)允許任何移動(dòng)終端廠商加入到An droid 聯(lián)盟中,從而使得越來越多的用戶傾向于選擇操作系統(tǒng)為An droid的手機(jī)品牌。選擇設(shè) 計(jì)基于An droid平臺(tái)的軟件,毫無疑問能覆蓋更多的群眾,餐飲業(yè)在電子商務(wù)中還處 于形成的初期,傳統(tǒng)的餐飲業(yè)中,大都是以實(shí)際門面形式來進(jìn)行宣傳和交流。作為網(wǎng)絡(luò) 普及化的社會(huì),這還缺少了一些更為現(xiàn)代化的元素。餐飲業(yè)是一個(gè)個(gè)性化、多樣化的服 務(wù)業(yè),而電子商務(wù)則最能體現(xiàn)個(gè)性化、多樣

14、化服務(wù)的方式。而且現(xiàn)在大部分電子商務(wù)都 體現(xiàn)為向大企業(yè)服務(wù),結(jié)合餐飲這個(gè)行業(yè)的特點(diǎn),最終還發(fā)展為同小區(qū)小店服務(wù)的模式。 以最貼切的方式,最靈便的服務(wù)進(jìn)入個(gè)個(gè)網(wǎng)絡(luò)社區(qū),進(jìn)入人們的生活。 1.2 項(xiàng)目目的 如今宅男宅女日益增加,很多餐飲店都提供外賣服務(wù),傳統(tǒng)的外賣服務(wù)需要客戶給 商家打并報(bào)出地址,商家那邊也需要記錄下客戶的信息,才能將外賣準(zhǔn)確的送達(dá),但在 這之間都是人在操作,難免會(huì)出現(xiàn)偏差和遺漏為客戶或者商家?guī)頁p失。如今3G網(wǎng)絡(luò) 覆蓋圍越來越廣,An droid手機(jī)也占領(lǐng)了手機(jī)行業(yè)的大頭,那么我們可以考慮做一個(gè) An droid的應(yīng)用來方便商家和客戶,讓出錯(cuò)率達(dá)到最低。用戶要點(diǎn)餐的時(shí)候只需手機(jī)上

15、 網(wǎng)點(diǎn)一下菜單就能吃到自己喜歡吃的菜品,這里面蘊(yùn)含了很大的商機(jī),完全能夠有效的 提高商家的營業(yè)額,基于以上因素,所以提出了這樣一個(gè)基于 An droid的網(wǎng)上訂餐系統(tǒng)。 本項(xiàng)目的目的是開發(fā)一個(gè)可以讓用戶在手機(jī)上操作的客戶端,然后與服務(wù)器連接進(jìn) 行數(shù)據(jù)交互,來實(shí)現(xiàn)網(wǎng)上訂餐的流程??蛻舳诵枰獙?shí)現(xiàn)瀏覽菜品,點(diǎn)菜,下訂單,搜索 等功能。服務(wù)器端需實(shí)現(xiàn)添加、刪除、修改菜品、對(duì)訂單的處理,以及對(duì)會(huì)員的管理等 功能。 本項(xiàng)目是一款基于An droid手機(jī)平臺(tái)的訂餐系統(tǒng),使擁有An droid手機(jī)的用戶生活 更加方便快捷,使得手機(jī)顯得更生動(dòng)靈活化,與人們更為接近,讓手機(jī)主人隨時(shí)隨地都 能吃到自己喜歡的菜品。使

16、人們的生活更加多樣化。也使設(shè)計(jì)者更加熟練An droid的技 術(shù)和其他在市場(chǎng)上的特點(diǎn)。 1.3 主要容 通過對(duì)實(shí)際情況的調(diào)研,本系統(tǒng)大致可分為三個(gè)部分,即手機(jī)客戶端、電腦服務(wù)器 端和圖形化界面工具。系統(tǒng)采用 HTTP協(xié)議來進(jìn)行數(shù)據(jù)傳輸。采用 C/S結(jié)構(gòu),客戶端為 基于An droid操作系統(tǒng)平臺(tái)的智能手機(jī),主要的業(yè)務(wù)邏輯則服務(wù)器端來實(shí)現(xiàn),數(shù)據(jù)存儲(chǔ) 在數(shù)據(jù)庫服務(wù)器。客戶端主要實(shí)現(xiàn)位置服務(wù),商品展示,會(huì)員注冊(cè)及登錄,購物車,商 品搜索和個(gè)人信息等功能,服務(wù)器端主要是完成數(shù)據(jù)交互和數(shù)據(jù)邏輯處理,而圖形界面 化工具則是負(fù)責(zé)商品、訂單等的增刪改查。 為了一步步實(shí)現(xiàn)確定的功能,本論文主要容安排如下: 第一

17、章:引言(介紹課題研究的背景和目的) 第二章:系統(tǒng)理論與技術(shù)(在本項(xiàng)目中設(shè)計(jì)到的技術(shù)簡介) 第三章:系統(tǒng)分析與設(shè)計(jì)(需求分析,數(shù)據(jù)庫的分析與設(shè)計(jì)以及系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)) 第四章:系統(tǒng)實(shí)現(xiàn)(根據(jù)需求分析來實(shí)現(xiàn)系統(tǒng)的各個(gè)模塊功能,使客戶端與服務(wù)器, 服務(wù)器與數(shù)據(jù)庫能正常數(shù)據(jù)交互。這部分主要搭建開發(fā)環(huán)境,編寫代碼,測(cè)試,運(yùn)行) 第五章:結(jié)束語(對(duì)本項(xiàng)目做一個(gè)項(xiàng)目總結(jié)) 第二章系統(tǒng)理論與技術(shù) 2.1 An droid 2.1.1 An droid 簡介 An droid 一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基 于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、

18、中間件、用戶界面和應(yīng) 用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。 An droid是基于Lin ux核的軟件平臺(tái)和操作系統(tǒng),早期由Google開發(fā)(在華注冊(cè)商 標(biāo)名為“安致”),后由開放手機(jī)聯(lián)盟(Open Handset Allianee )開發(fā)。它采用了軟件 堆層(software stack,又名以軟件疊層)的架構(gòu),主要分為三部分。低層以 Linux核 工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編 寫程序的一部分。另外,為了推廣此技術(shù),Google和其它幾十個(gè)手機(jī)公司建立了開放手 機(jī)聯(lián)盟。An droid在未公開之前常被傳聞為 Goo

19、gle或gPho na大多傳聞?wù)J為Google開 發(fā)的是自己的手機(jī)產(chǎn)品,而不是一套軟件平臺(tái)。到了2010年1月,Google開始發(fā)表自 家品牌手機(jī)的Nexus One,目前最新SDK版本為An droid 4.0.3 。 2.1.2 An droid Features特性 An droid系統(tǒng)有如下的幾大特性: 應(yīng)用程序框架支持組件的重用與替換 Dalvik虛擬機(jī)專門為移動(dòng)設(shè)備做了優(yōu)化 部集成瀏覽器該瀏覽器基于開源的WebKit引擎 優(yōu)化的圖形庫 包括2D和3D圖形庫,3D圖形庫基于OpenGL ES SQLite用作結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ) 多媒體支持 包括常見的音頻、視頻和靜態(tài)印象文件格式(如MP

20、EG4MP3,AAC, AMR, JPG, PNG GSM(依賴于硬件) 藍(lán)牙 Bluetooth, EDGE, 3G, and WiFi(依賴于硬件) 照相機(jī),GPS指南針,和加速度計(jì)(依賴于硬件) 豐富的開發(fā)環(huán)境 包括設(shè)備模擬器,調(diào)試工具,存及性能分析圖表,和Eclipse 集成開發(fā)環(huán)境插件 2.1.3 An droid基本框架(An droid Architecture ) 及尸PL1CAT1 口則導(dǎo) HoTt Phone ApplicATroN Framework Centene View Systirfl Pjck PT na fl Hl FK2 o 11 me o s t aki:

21、 t ai a r* 1 d. Meirilbe! i- irmhi 苣 m code m mes m rum b er maaif色氐三 in soQr m 圖3.4全局E-R圖 下面列舉主要實(shí)體: 管理員實(shí)體(Admin)包括管理員編號(hào)、管理員(登錄)、登錄密碼、管理員等級(jí)等 屬性,如圖3.5所示 圖3.5管理員實(shí)體屬性圖 會(huì)員實(shí)體(Membe)包括會(huì)員編號(hào)、會(huì)員(登錄帳號(hào))、登錄密碼、管理員性別,聯(lián) 系,聯(lián)系地址,會(huì)員積分等屬性。如圖3.6所示。 圖3.6會(huì)員實(shí)體屬性圖 3.3.3客戶端數(shù)據(jù)庫的連接 Andorid 數(shù)據(jù)庫存儲(chǔ)的位置在data/data/rc 圖 4.1 eclipse

22、下載 第三步:安裝 An droid Http:/developer.a ndroid./sdk SDK:首先要下載SDK,可以在這個(gè)網(wǎng)址下載 ,如圖4.2,選擇相應(yīng)的系統(tǒng)進(jìn)行安裝 Z劃捲咚輿ii*北電汛期r_S loDer5I 上-心川庇片審Er pg-仔 LtewrrlEKsd Download tha Android SDK VI 皿izfc 斤匸疋tRFiarM uJ-JilL. FC9* Cu M nb vlr -rd P f! rf- ;wf:e! 1 -Hirim 叫福 aM i TPifcith :JJFi !盅;宙 砂卩!e nu笛聊亡 4ZT 0-t jrr-j sur:

23、l.zhLF 1 hKI L1 IlKz-V SDKTia- ana CPfWtqrHi mu R 士 PlfllWBIH Wnduu L.IU*_ hkiL 2 Ib_ 25mM :壻4 JC7W咄上花臥* : 2牌凹:竄 ,?Trcf-srl_ w;r r p H 迖 弋雖RfM ft-:E llM=fR* 1 niN- -ifIf = 1 lfr it ! Silt 11 客 L *事丁巧飛刑V P一 卜 4n=iiw: 空K 卜* :d F !: t* .t 4.r-: -.4F - d LUK t-rk - ? uji n:b : sm atirrt ll 站 H ItV Kuhj

24、at-e hfw mriiA AnnBbi 賞Kimri ih4 3 Rm-n* Pi m Uwn: ef bcwi iIm AIVinstallnewsoftware 選擇add,將會(huì)彈出一個(gè)框,如 圖4.3所示 圖4.3 ADT的安裝 點(diǎn)擊OK選擇要安裝的軟件,占next,然后選擇接受協(xié)議,直到安裝成功,重啟 Eclipse 軟件,設(shè)置 An droid SDK Home, Win dow-refre nee |tre# filter Lml 曲 *an*F41 -i M4l 曲 I -BnllLii 尬二 Jnnrl I * iln.t 出 Xi Lji H IhJttll 防 3 Ji

25、.*, t In. DwViif 帛T.4 涉 i “ i 訂 47 ”r Td_Bd4t、0 a in ? AndriAji心 * AnirDi 山 Triefereces SD La-ral i a |1:、y dr *= n I x :f-i-b w wdr s-i dJ ndk rLaJml常畫V Hcie “認(rèn) Li st hf SlOt Ju cti.- rtl-is1 is rJ_v relMdkd :cuce 啦吐 la I. J ftf j 1/ -t (iK* Ts-eti. T中I ferit.i lAdrPfojMl 匕l(fā)irml :”口 Scut-e- rraj ct

26、 M山.上 I*!Pf4j vl L Jlzudr 1 C-u ZviE-ca Fr-a j *r=t jhmlr j iSra q 0) resp onse = result.get(O); /根據(jù)服務(wù)端的相應(yīng)信息進(jìn)行相應(yīng)判斷 if (resp onse != n ull) / 將用戶名存在 sharedPreferences Editor n amedata = sharedPrefere nces.edit(); namedata.putString(name, etUsername.getText().toString().trim(); n mit(); / 將密碼存在 shared

27、Preferences Editor passworddata = sharedPrefere nces.edit(); passworddata.putStri ng(password, etPassword.getText().toStri ng().trim(); mit(); /登錄成功,進(jìn)入主界面 else / 登錄失敗,彈出錯(cuò)誤信息 當(dāng)用戶點(diǎn)擊注冊(cè)按鈕時(shí),通過 An droid的In te nt機(jī)制,就從登陸界面跳轉(zhuǎn)到注冊(cè)界 面,接下來實(shí)現(xiàn)系統(tǒng)注冊(cè)的功能。 4.2.2系統(tǒng)注冊(cè) 注冊(cè)界面如圖4.6,跟登陸界面一下,它也有一個(gè)屬于它的布局文件來擺放這些控 件,在此模塊中必須要輸入正確這

28、些注冊(cè)信息,才能正常的進(jìn)行注冊(cè)。 圖4.6注冊(cè)界面 當(dāng)用戶點(diǎn)擊取消按鈕時(shí),界面會(huì)跳轉(zhuǎn)回到登陸界面,當(dāng)用戶點(diǎn)擊注冊(cè)按鈕時(shí)會(huì)跟服 務(wù)器端的數(shù)據(jù)庫進(jìn)行連接,把用戶所填的信息拼接發(fā)給服務(wù)器,服務(wù)器處理過后將數(shù)據(jù) 插入到數(shù)據(jù)庫中對(duì)應(yīng)的表中。客戶端實(shí)現(xiàn)注冊(cè)代碼如下: bRegister.set On ClickListe ner(new On ClickListe ner() public void on Click(View v) /獲取用戶輸入數(shù)據(jù) if(n ame.equals()|password.equals()|repassword.equals() /如果用戶輸入用戶名或密碼為空,則給出提示

29、,用戶名和密碼不能為空 else /如果不為空則先放入HashMa中,再做密碼輸入是否一致的判斷 /判斷輸入的密碼是否一致 if (in foHashMap.get(password).equals( in foHashMap.get(repassword) /拼湊數(shù)據(jù) data = n ame + in foHashMap.get(username) + ; + password + in foHashMap.get(password) +; + sex + in foHashMap.get(sex) + ; + num + in foHashMap.get( number) + ; + a

30、ddress + in foHashMap.get(address); Member member=new Member( name,password,i nfoHashMap .get(sex), nu mber,address); protocolHelper.setObject(member); /準(zhǔn)備請(qǐng)求數(shù)據(jù) protocolHelper.setRequest(ProtocolHelper.REGISTER, ProtocolHelper.lNSERT, data); /向服務(wù)端發(fā)送請(qǐng)求 resp onse = protocolHelper.se ndRequest(); /判斷響應(yīng)信

31、息,根據(jù)信息觸發(fā)不同的事件 if (resp on se.equals(success) /跳轉(zhuǎn)到主界面 else /以對(duì)話框的形式給出錯(cuò)誤信息 else /以對(duì)話框的形式給出錯(cuò)誤信息:密碼必須一致 4.2.3瀏覽菜品 用戶登陸成功或者選擇游客登陸成功后,會(huì)直接進(jìn)入到主界面,如圖4.7,主界面 的布局采用的是TabHost分頁式布局,每一個(gè)Tab都對(duì)應(yīng)一個(gè)Activity ,通過addTab這個(gè) 方法來添加Tab,這個(gè)控件讓An droid手機(jī)多個(gè)Activity 共享一個(gè)界面,而且操作方便, 簡單,布局好看。 弼甌 4 T1:37| FroductList 車 個(gè) A15S 黒不魄】片 護(hù)h

32、r徉琲 畜皚榆將I A 3 BQ 鼎盤t豆粗 2 A QI 0.234 50 末炒苗苣 書北菜 S 湯 8 25 T0 圖4.7 主界面 當(dāng)用戶選擇菜單選項(xiàng)時(shí),在其下面將列出從服務(wù)器端發(fā)送過來菜品簡要信息數(shù)據(jù), 客戶端想要看到這些數(shù)據(jù)必須對(duì)它進(jìn)行一系列的處理,在此,本模塊采用了ListView來 顯示菜品信息,ListView是以列表的形式來展示具體容,并且能夠根據(jù)數(shù)據(jù)的長度自適 應(yīng)的顯示,要想ListView顯示數(shù)據(jù)必須要為其添加適配器(Adapter),適配器分為很多 種,有ArrayAdapter、SimpleAdapter、BaseAdapter等等,由于在該 ListView 中顯示

33、的 數(shù)據(jù)比較多,而且還有圖片信息等,所以在此采用 BaseAdapter來構(gòu)建適配器。 構(gòu)建BaseAdapter核心代碼: /菜單模塊的自定義適配器。 class ProductAdapter exte nds BaseAdapter public View getView(i nt positi on. View conv ertView, ViewGroup pare nt) ViewHolder viewHolder = n ull; /如果convertView為空則為其創(chuàng)建一個(gè)View if (con vertView = n ull) LayoutI nflater in fla

34、ter = LayoutI nflater.from(ctx); viewHolder = new ViewHolder(); conv ertView = in flater.i nflate(R .l ayout.listitem, n ull); /獲得listitem 布局中的控件并添加到View上 conv ertView.setTag(viewHolder); /如果convertView不為空那么直接為其灌入數(shù)據(jù) else viewHolder = (ViewHolder) conv ertView.getTag(); /獲得所有的數(shù)據(jù)并灌入convertView中 return

35、 con vertView; 向服務(wù)器獲得菜品信息的數(shù)據(jù)代碼: public void proRequest() helper.setRequest(ProtocolHelper.GOODSLIST, ProtocolHelper.QUERY, ); BaseProducts bp = new BaseProducts(); bp.setBid(1); helper.setObject(bp); List result = helper.se ndRequestVO(); if (result = n ull) 424搜索菜品 Productlist 0.234 川齋 50 券if禹爸 東北區(qū)

36、 8 鬲 豈3 3 奩品的.音家窖稱商時(shí)格 展示圉卜商至乜稱商忑名稱 兩品忙杞 圖4.8搜索界面 如果菜品數(shù)量過多,用戶將會(huì)很難找到自己心儀的菜品,在此,本項(xiàng)目為了方便用 戶選擇特定的菜品,設(shè)計(jì)了一個(gè)搜索菜品的功能,通過搜索界面,用戶可以通過商品名 稱、商家名稱、商品價(jià)格三個(gè)搜索條件來搜索對(duì)自己胃口的菜品,如圖4.8,該功能暫 時(shí)僅支持單條件搜索,在此列出按商品名稱搜索的核心代碼,另外兩種搜索代碼跟此差 不多。 /通過商品名稱模糊查詢。 public void getProductByName(Stri ng n ame) List productListB yn ame = new Arra

37、yList(); Cursor cursor = dbutil.querygoodsByName( name); int count = cursor.getCo un t(); cursor.moveToFirst(); if (count 0) /對(duì)菜品數(shù)據(jù)遍歷查找 for (i nt i = 0; i count; i+) HashMap map = new HashMap(); map.put(bid, cursor.getInt(0); map.put(bpicture, cursor.getStri ng(4); map.put(b name, cursor.getStri ng(

38、1); map.put(bstyle, cursor.getStri ng(2); map.put(bprice, cursor.getString(3); productListB yn ame.add(map); cursor.moveToNext(); cursor.close(); productList = productListB yn ame; searchAdapter. no tifyDataSetCha nged(); else /提示沒有找到要查詢的菜品 4.2.5訂餐 訂餐功能是本項(xiàng)目的核心功能,前面做的那些僅僅是為訂餐功能做鋪墊。當(dāng)用戶點(diǎn) 擊每一行菜品時(shí),不論這菜品時(shí)

39、在菜品列表中還是在搜索列表中都會(huì)跳轉(zhuǎn)到菜品詳細(xì)信 息界面,在跳轉(zhuǎn)的同時(shí),Intent里面會(huì)PutExtra菜品的數(shù)據(jù),在詳細(xì)信息界面中再將 Intent里面的數(shù)據(jù)取出并顯示。界面如圖 4.9,在該界面中顯示了菜品的圖片、價(jià)格、 評(píng)分、是否有折扣、菜品詳細(xì)介紹等菜品信息,還有兩個(gè)按鈕和輸入訂餐份數(shù)的文本輸 入框,該輸入框只允許輸入數(shù)字。如果用戶選好了菜品,并且準(zhǔn)備將菜品加入購物車時(shí), 用戶首先得輸入一個(gè)菜品份數(shù),并點(diǎn)擊加入購物車按鈕,這時(shí)系統(tǒng)將進(jìn)行一系列的邏輯 處理,如果購物車中沒有物品則直接加入,如果購物車中已經(jīng)有物品了,則將用戶剛加 入購物車的菜品數(shù)據(jù)跟購物車中原有的數(shù)據(jù)進(jìn)行匹配,如果已經(jīng)有

40、了,那么將提示用戶, 該物品購物車?yán)镆延?,反之則加入購物車。 圖4.9菜品詳情 在此列出跳轉(zhuǎn)界面時(shí)對(duì)數(shù)據(jù)處理的代碼: 菜品行點(diǎn)擊事件,把數(shù)據(jù)putExtra到Intent中 public void on ltemClick(AdapterView pare nt. View view, i nt id, long positi on) if (position != -1) ViewHolder holder = (ViewHolder) view.getTag(); TextView tvid = (TextView) view.fi ndViewByld(R.id.tvid); TextV

41、iew tvn ame = (TextView) view.fi ndViewById(R.id.tvn ame); TextView tvprice = (TextView) view.fi ndViewById(R.id.tvprice); Intentintent=new In te nt(ProductListActivity.this,DetailsActivity.class); inten t.putExtra(pic, (Bitmap) holder.ivpicture.getTag(); intent.putExtra(bid, tvid.getText().toString

42、(); intent.putExtra(bname, tvname.getText().toString(); inten t.putExtra(bprice, tvprice.getText().toStri ng(); startActivity(i nten t); 在詳細(xì)信息界面中取出Intent里面的數(shù)據(jù)代碼: Intent intent = getI nten t(); Bitmap pic=(Bitmap)i nten t.getParcelableExtra(pic); ivdish=(ImageView)fi ndViewById(R.id.ivdish); ivdish.s

43、etlmageBitmap(pic); /獲得商品id tvbid=i nte nt.getStri ngExtra(bid); /獲得菜名 bn ame= inten t.getStri ngExtra(b name); price =i nten t.getStri ngExtra(bprice); 將菜品添加到購物車中代碼: badd.set On ClickListe ner( new On ClickListe ner() public void on Click(View v) int coun t=ProductListActivity.cartdata.size(); if(c

44、ou nt0)表示購物車中有數(shù)據(jù) for(int i=0;icount;i+) Stri ng existid=(Stri ng)(HashM ap) ProductListActivity.cartdata.get(i).get(bid); if(existid.equals(tvbid)/購物車中有相同的數(shù)據(jù) else HashMap item = new HashMap(); item.put(bid, tvbid); item.put(bprice, price); item.put(bname, bname); item.put(bnum, etinput.getText().toS

45、tring(); data.add(item);/將HashMa添加到 List 中 else/購物車為空時(shí)直接添加 Intentintent=new In te nt(DetailsActivity.this,ProductListActivity.class); intent.putExtra(changenum, etinput.getText().toString(); startActivity(i nten t); 4.2.6結(jié)賬 當(dāng)然,訂餐完成之后就得去購物車模塊進(jìn)行結(jié)賬操作。 首先用戶可以選中購物車中的物品,點(diǎn)擊men按鈕對(duì)物品進(jìn)行修改數(shù)量和刪除操 作。要實(shí)現(xiàn) An droid

46、 menu 功能必須重載 on CreateOptio nsMe nu、on PrepareOptio nsMe nu 以及onOptionsItemSelected三個(gè)方法,第一個(gè)方法是用來創(chuàng)建 men按鈕顯示的菜單項(xiàng), 第二個(gè)方法是限制菜單項(xiàng)只在購物車列表中顯示,第三個(gè)方法則是實(shí)現(xiàn)菜單項(xiàng)功能的。 在本模塊中,為men添加了兩個(gè)菜單項(xiàng),一個(gè)是修改數(shù)量,一個(gè)是刪除,可以對(duì)購物車 中物品的數(shù)量進(jìn)行修改和刪除操作,沒選中物品則會(huì)提示錯(cuò)誤。 其次為每一條ListView添加了一個(gè)長點(diǎn)擊事件,及 setOnLongClickListener 接口, 在此接口中必須實(shí)現(xiàn)on Click方法,當(dāng)用戶點(diǎn)擊物

47、品不放時(shí)會(huì)直接將該選中物品刪除。 最后點(diǎn)擊結(jié)算按鈕系統(tǒng)將會(huì)把訂單中的數(shù)據(jù)進(jìn)行封裝,并使用protocolHelper中的 sen dRequest方法向服務(wù)器發(fā)送請(qǐng)求,并接受服務(wù)器端返回的消息,如果消息不為空則 說明訂單生成成功,提示用戶訂單生成,該方法代碼如下: /使用ProtocolHelper的setRequest方法對(duì)請(qǐng)求類型,操作及傳送來的數(shù)據(jù) data進(jìn)行 封裝 helper.setObject(order); helper.setRequest(helper.ORDER, helper.lNSERT, ); /使用ProtocolHelper的sendRequest方法對(duì)服務(wù)器發(fā)

48、送請(qǐng)求并返回服務(wù)器發(fā)回得消 Stri ng result = helper.se ndRequest(); /如果服務(wù)器返回消息不為null,則說明訂單以生產(chǎn)成功,彈出提示 if (result != null List list = new ArrayList(); setList(list); /創(chuàng)建適配器對(duì)象 cartadapter = new SimpleAdapter( ProductListActivity.this, cartdata, R.layout.cartlist, new Stri ng bid, bn ame, bprice, b num , new in t R.i

49、d.markid, R.id.shopname, R.id.price, R.id. nu mber ); /設(shè)置listview的適配器 cartlistView.setAdapter(cartadapter); 客戶端的基本功能介紹到此結(jié)束了,接下來介紹服務(wù)器端的功能實(shí)現(xiàn)。 4.3服務(wù)端 服務(wù)端分為管理員登陸、訂單管理、菜品管理、會(huì)員管理四個(gè)模塊,主要是為商家 對(duì)客戶端發(fā)送過來的數(shù)據(jù)進(jìn)行處理,以及對(duì)客戶端的數(shù)據(jù)進(jìn)行更新操作。服務(wù)端代碼是 用JavaSE來實(shí)現(xiàn),下面對(duì)每一個(gè)模塊進(jìn)行詳細(xì)分析。 4.3.1系統(tǒng)登錄 當(dāng)管理員運(yùn)行程序后,必須得進(jìn)行登錄認(rèn)證,在服務(wù)器端數(shù)據(jù)庫的用戶表中有一個(gè) 用戶權(quán)

50、限的字段,如果值為0則表示為管理員賬號(hào),如果值為1則表示用戶賬號(hào),在此模 塊中僅僅為管理員提供登錄功能,并不支持管理員注冊(cè)功能,所以管理員是唯一的,這 也是系統(tǒng)數(shù)據(jù)安全性的一種表現(xiàn)。登錄界面如圖4.10所示,管理員點(diǎn)擊登陸時(shí)如果用戶 名和密碼輸入錯(cuò)誤則會(huì)彈出錯(cuò)誤信息,輸入正確則進(jìn)入管理界面。 圖4.10管理員登陸界面 在該模塊中核心代碼在于獲取用戶輸入的信息并跟數(shù)據(jù)庫中管理員的信息進(jìn)行匹 配,代碼如下: public void actio nPeformed(Actio nEve nt e) if (e.getActio nComma nd().equals(logi n) if (jt_pa

51、ssword.getText().toStri ng().equals() | jt_username.getText().toStri ng().equals() JOptionPane.showMessageDialog(null,用戶名或密碼不能為空); else Admi nDAO admin = new Admi nDAO(c on fig); Stringlogo= admi n.lo gi nAdmi ns(jt_username.getText().toStri ng(), jt_password.getText().toStri ng(); if (logo.equals(s

52、uccess) logi n.dispose(); Mai nJ frame.getI nsta nce(); else JOptionPane.showMessageDialog(null,用戶名或密碼錯(cuò)誤); else if (e.getActionCommand().equals(exist) System.exit(0); 4.3.2訂單管理 當(dāng)管理員登陸成功后,那么就進(jìn)入了管理界面,在該界面中采用了JavaSE的卡片布 局方式,這個(gè)布局方式跟客戶端主界面的布局方式差不多,也是多個(gè)面板共用一個(gè)框架。 在管理界面中,將管理員操作數(shù)據(jù)的方式分為了訂單管理、菜品管理、會(huì)員管理三個(gè)模 塊,首先

53、介紹一下訂單管理模塊的設(shè)計(jì)與實(shí)現(xiàn)。 在訂單管理模塊中,從上到下分為三個(gè)部分,最上面是查看訂單按鈕,中間是訂單 的一些基本信息表結(jié)構(gòu),有訂單編號(hào)、訂單生成時(shí)間、請(qǐng)求人、請(qǐng)求人聯(lián)系方式、訂單 狀態(tài),這里主要是使用DefaultTableModle來實(shí)現(xiàn)這樣一個(gè)表結(jié)構(gòu),最下面是一個(gè)查詢 訂單詳細(xì)信息的按鈕,如圖4.11。 當(dāng)管理員點(diǎn)擊查看訂單時(shí),系統(tǒng)將會(huì)從數(shù)據(jù)庫中將訂單表的信息取出并放入到 DefaultTableModle里面一遍管理員對(duì)訂單進(jìn)行查看。當(dāng)管理員選中一行訂單信息,再 點(diǎn)擊查看訂單詳細(xì)信息按鈕時(shí),將會(huì)彈出一個(gè)訂單詳情對(duì)話框,如圖4.12所示,在該對(duì) 話框中顯示了訂單中的信息,以及一個(gè)訂

54、單完成的按鈕,如果交易完成,在這里的交易 完成的定義是商家把菜品做好,送到用戶的地址并且用戶付清所有費(fèi)用,貝U管理員點(diǎn)擊 該按鈕,將會(huì)彈出訂單完成消息框,并且將此訂單從訂單管理界面中移除。 圖4.11訂單管理界面 3E品鳥忻 1 0?*!4 我J 1 53.0 圖4.12訂單詳細(xì)對(duì)話框 在此功能中的難點(diǎn)在于,當(dāng)訂單完成之后將其從訂單列表中移除,在此該模塊是這 樣設(shè)計(jì)的,在數(shù)據(jù)庫中為每一個(gè)訂單加一個(gè)標(biāo)識(shí)位初始化為0,查詢訂單時(shí)把標(biāo)識(shí)位為0 的訂單都添加到列表中,當(dāng)點(diǎn)擊訂單完成時(shí)將標(biāo)識(shí)位改為1,然后再查詢一次訂單表那 么就能將訂單移除。核心代碼如下: public void complete na

55、l int id) btn_complete = new Butt on (”訂單已完成); btn_complete.setBou nds(300, 20, 100, 30); this.add(btn_complete); btn_complete.addActio nListe ner(new Actio nListe ner() public void actio nPerformed(Actio nEve nt e) if (OrdersDAO.updateState(id, 1) JOptionPane.showMessageDialog(null,訂單已完成); listJPa

56、nel list = listJPa nel.get In sta nce(); list.i nsertl ntoTable(vec); ); 4.3.3菜品管理 菜品管理界面需要實(shí)現(xiàn)的功能是能使管理員對(duì)菜品進(jìn)行增加、刪除、修改等操作, 在該模塊中布局方式跟訂單管理界面基本一樣,如圖4.13所示 訂單實(shí)1甲茉詁世瓚 59 週CC首那 tttss- :忌 親十_榮 丨奏 I gsitia i o d.a 25.Z :叭 4C.U +fO 岳知i訂 1LJT止止 片曲宇ST 圖4.13菜品管理界面 添加新菜功能實(shí)現(xiàn):當(dāng)管理員點(diǎn)擊添加新菜按鈕時(shí)會(huì)彈出一個(gè)輸入菜品信息的界 面,如圖4.14所示,在此

57、界面中可以輸入菜品的名稱、價(jià)格、菜系、折扣、上傳圖片、 詳細(xì)描述等。點(diǎn)擊新增按鈕時(shí)會(huì)進(jìn)行一系列的判斷,比如名稱不能為空,價(jià)格不能為空 等等限制。管理員將信息輸入完成后就會(huì)將這些信息添加到數(shù)據(jù)庫中的菜品信息表中, 然后再菜品列表中讀取出來,該功能的難點(diǎn)在于圖片的上傳功能,圖片存入數(shù)據(jù)庫中的 是圖片的絕對(duì)路徑,如果在該路徑中找不到圖片資源那么將會(huì)不能顯示圖片,該功能核 心代碼如下: 上傳圖片按鈕功能代碼: btn_uploadlma.addActio nListe ner(new Actio nListe ner() public void actio nPeformed(Actio nEve n

58、t e) /初始化jfc_upload控件,并設(shè)置其只能上傳圖片 jfc_upload = new JFileChooser(); jfc_upload.setAcceptAIIFileFilterUsed(false); /設(shè)置該控件過濾器,圖片格式為(.png) jfc_upload.setFileFilter( new FileFilter() public String getDescripti on() return 圖片格式(.png); public boolea n accept(File f) if /圖片名稱以.jpg結(jié)尾return true; else retur n

59、false; /設(shè)置該控件過濾器,圖片格式為(.jpg ) jfc_upload.setFileFilter( new FileFilter() public String getDescripti on() return 圖片格式(.jpg ) ; public boolea n accept(File f) if /圖片名稱以.jpg結(jié)尾return true; else return false; 增加按鈕功能實(shí)現(xiàn)代碼: btn _add.addAct ion Liste ner(new Acti on Liste ner() public void actio nPerformed(A

60、ctio nEve nt e) in sert On eProducts();向數(shù)據(jù)庫中插入一條菜品數(shù)據(jù)方法 VectorVector v = productsMoreOperati on Jpa nel .fin dall(); productsMoreOperati on Jpa nel.i nsertData(v); 圖4.14新增菜品界面 修改菜品信息功能:管理員選中一行菜品后,點(diǎn)擊更改選定菜品按鈕就會(huì)跳轉(zhuǎn)到更 改菜品信息界面,如圖4.15,在這個(gè)界面中將菜品的信息全都顯示在了相應(yīng)的文本輸入 框里面以便管理員對(duì)照修改,用戶點(diǎn)擊更新后會(huì)調(diào)用updataO neProducts方法將數(shù)據(jù)庫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論