畢業(yè)設(shè)計(jì)(論文)基于安卓技術(shù)的點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
畢業(yè)設(shè)計(jì)(論文)基于安卓技術(shù)的點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
畢業(yè)設(shè)計(jì)(論文)基于安卓技術(shù)的點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
畢業(yè)設(shè)計(jì)(論文)基于安卓技術(shù)的點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
畢業(yè)設(shè)計(jì)(論文)基于安卓技術(shù)的點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于安卓技術(shù)的點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于安卓技術(shù)的點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘摘 要要隨著科學(xué)技術(shù)和社會(huì)經(jīng)濟(jì)的不斷提高,人們對服務(wù)的快捷、便利性要求也越來越高,從而對智能手機(jī)上的應(yīng)用軟件提出了更高的要求。一個(gè)基于安卓技術(shù)的點(diǎn)餐系統(tǒng)能夠?yàn)橛脩籼峁┮粋€(gè)方便日常操作的便捷點(diǎn)餐功能,它能夠滿足廣大手機(jī)用戶的訂餐需要,為需求雙方提供了一個(gè)共贏的平臺(tái)。本系統(tǒng)正是為了實(shí)現(xiàn)手機(jī)網(wǎng)上訂餐而設(shè)計(jì),所包含到的有關(guān)技術(shù)有:android 平臺(tái)、mysql 技術(shù)、java 語言等技術(shù)。能夠?qū)崿F(xiàn)訂餐、選擇座位、我的訂餐、人工服務(wù)、菜單管理、用戶管理等作用。用戶注冊后,登陸客戶端即可完成訂餐、瀏覽菜譜等功能。運(yùn)行測試表明:該系統(tǒng)功

2、能完善、運(yùn)行順暢穩(wěn)定,具有一定的商業(yè)實(shí)用價(jià)值。設(shè)計(jì)開發(fā)過程中,分析并解決了若干技術(shù)問題,鞏固并深化了本科階段所學(xué)的知識(shí)。關(guān)鍵詞關(guān)鍵詞: android;mysql;java;測試the design and implementation of meal ordering system based on android technologyabstractwith the constant improvement of science and technology and social economy, people also have increasingly high requirement

3、s for the efficiency and convenience of service, thus proposing a higher requirement for the application software on smartphone. a meal ordering system based on android technology, which can provide a fast and easy ordering function convenient for daily operation, can meet numerous cellphone users d

4、emand for food ordering and provide a win-win platform for both demand sides.this system is exactly designed for achieving online meal ordering on cellphone, and involves the following relevant technologies: android platform, mysql technology, java language. it mainly achieves functions of food orde

5、ring, seat selection, my order, manual service, menu management, and user management. after registration, the users can fulfill the functions of food ordering and menu browsing by logging in the client. the operational test indicates that: this system is complete in function and smooth and steady in

6、 operation, and has certain value of commercial utility. in the process of design and development, several technological problems are analyzed and solved, which consolidates and deepens the knowledge learned during undergraduate study. key words: android; mysql; java; test目目 錄錄論文總頁數(shù):34 頁1 緒論.11.1 課題

7、研究背景和意義.11.2 課題可行性分析 .12 系統(tǒng)分析.22.1 概述 .22.1.1 系統(tǒng)分析的原則.22.1.2 系統(tǒng)分析的方法.22.2 系統(tǒng)需求分析 .22.3 系統(tǒng)流程分析.42.4 系統(tǒng)用例圖 .52.5 開發(fā)環(huán)境平臺(tái)的選擇.63 總體設(shè)計(jì).73.1 系統(tǒng)設(shè)計(jì)原則.73.2 系統(tǒng)設(shè)計(jì)目標(biāo).73.3 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì).84 數(shù)據(jù)庫設(shè)計(jì) .84.1 服務(wù)端數(shù)據(jù)庫設(shè)計(jì).84.2 數(shù)據(jù)庫 er 圖.105 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn).115.1 登錄模塊的實(shí)現(xiàn) .115.2 菜譜模塊的實(shí)現(xiàn) .155.3 在線下單模塊的實(shí)現(xiàn) .185.4 用戶訂單模塊的實(shí)現(xiàn) .215.5 服務(wù)端模塊的實(shí)現(xiàn) .2

8、45.5.1 人工服務(wù)模塊的實(shí)現(xiàn).255.5.2 菜譜管理模塊的實(shí)現(xiàn).265.5.3 用戶管理模塊的實(shí)現(xiàn).265.5.4 訂單管理模塊的實(shí)現(xiàn).285 系統(tǒng)測試.295.1 測試方法.295.2 測試內(nèi)容.295.3 測試結(jié)果 .30總 結(jié).31參考文獻(xiàn).32致 謝.33聲 明.341 1 緒論緒論1.11.1 課題研究背景和意義課題研究背景和意義由于智能手機(jī)和手機(jī)軟件愈加廣泛的發(fā)展和運(yùn)用,目前“手機(jī) app”已經(jīng)成為廣受社會(huì)關(guān)注的焦點(diǎn),手機(jī)應(yīng)用逐漸變成人們進(jìn)行信息交流的主要工具。在目前各種品牌手機(jī)爭相斗艷的時(shí)期,谷歌與 2008 年開始開發(fā)出一款廣受大家關(guān)注的移動(dòng)操作系統(tǒng)-android。這一

9、移動(dòng)操作系統(tǒng)借助其極高的開放性與較好的優(yōu)化程度,獲得了手機(jī)生產(chǎn)廠家與適用人群越來越多的重視。如今科技突飛猛進(jìn)、人們的生活節(jié)奏也逐漸加快,由于移動(dòng)終端技術(shù)的日趨成熟,社會(huì)對于手機(jī)設(shè)備的功能需求變得愈來愈大,已逐漸從以往的技術(shù)需求轉(zhuǎn)變?yōu)楣δ苄枨?,所以,移?dòng)軟件系統(tǒng)的需求也提高了很多。本設(shè)計(jì)是以android 操作系統(tǒng)為基礎(chǔ)的“基于 android 技術(shù)的點(diǎn)餐系統(tǒng)”軟件的設(shè)計(jì)與實(shí)現(xiàn)。 為了方便用戶可以隨時(shí)隨地查看點(diǎn)餐信息,一種高效的辦法就是將點(diǎn)餐做成應(yīng)用程序拓展到用戶的終端設(shè)備上,并且提供一些輔助功能。所以這次畢設(shè)的目標(biāo)就致力于開發(fā)出一款基于 android 手機(jī)平臺(tái)的點(diǎn)餐系統(tǒng),來滿足用戶的需求。現(xiàn)

10、在社會(huì)上的的工作壓力很大并有增加的趨勢,人們已經(jīng)離不開有網(wǎng)絡(luò)的生活,網(wǎng)絡(luò)逐漸變成大家人生的重要組成。網(wǎng)上訂餐是專門為工作較忙以及經(jīng)常不出門的“宅人”設(shè)計(jì)的,不需要離家、不需要誑街就可以便捷購買到想要的食物的專業(yè)手機(jī)程序。此款系統(tǒng)可以不妨礙使用者的生活軌跡,又可以增添使用者生活樂趣、簡化購物程序,同時(shí)為許多商家提供了更多契機(jī)。1.21.2 課題可行性分析課題可行性分析智能手機(jī)的出現(xiàn)減少了很多方面的限制,具有很多優(yōu)勢,人們可以隨時(shí)隨地的傳遞信息,訂購商品,不論時(shí)間不論地點(diǎn),正是這個(gè)優(yōu)點(diǎn)使得智能手機(jī)能夠受到越來越多人是喜愛,比如,用戶智能手機(jī)點(diǎn)餐速度迅速比傳統(tǒng)的點(diǎn)餐要快的多,大大提高了效率。1.經(jīng)濟(jì)

11、可行性由于世界經(jīng)濟(jì)水平的突飛猛進(jìn),科技水平得到了前所未有的巨大發(fā)展,社會(huì)正步入一個(gè)嶄新的網(wǎng)路信息時(shí)期。因?yàn)樯鐣?huì)持續(xù)發(fā)展的生活與工作水平,人們的非物質(zhì)需求正在逐漸增加,伴隨出現(xiàn)的就是網(wǎng)絡(luò)技術(shù)的持續(xù)進(jìn)步,當(dāng)代社會(huì)網(wǎng)絡(luò)應(yīng)用變得愈加廣泛,人們之間的相互溝通日趨廣泛、交流也愈加簡便,所有這些,使得人們的生產(chǎn)生活方式發(fā)生了巨大轉(zhuǎn)變。是故,由于網(wǎng)絡(luò)技術(shù)的進(jìn)步,電商領(lǐng)域逐漸發(fā)展,極大程度上改變了人們的購物方式。在如今這個(gè)年代,幾乎所有計(jì)算機(jī)使用者都能夠進(jìn)行網(wǎng)上購物的操作,而且往往樂此不疲。從長久的角度來想,安卓點(diǎn)餐系統(tǒng)的開發(fā)與應(yīng)用還是存在很大的經(jīng)濟(jì)前景。2.技術(shù)可行性技術(shù)可行性一般是因?yàn)楝F(xiàn)在已經(jīng)存在的的技術(shù)因

12、素而控制的,比如,是否可以進(jìn)行平穩(wěn)的功能開發(fā),軟、硬件功能會(huì)不會(huì)達(dá)到系統(tǒng)所規(guī)定的條件。如今這個(gè)時(shí)代,是網(wǎng)絡(luò)資源化的時(shí)代,網(wǎng)絡(luò)資源爆發(fā)式增長,這引起了所有其他相關(guān)技術(shù)的進(jìn)步,所以對于技術(shù)條件來說是能夠?qū)崿F(xiàn)的。本系統(tǒng)單個(gè)用 java 語言,使用 ssh 技術(shù)與 mysql 數(shù)據(jù)庫進(jìn)行開發(fā),上述技術(shù)在現(xiàn)在已經(jīng)很廣泛且很成熟,已經(jīng)無數(shù)次被應(yīng)用于軟件與系統(tǒng)研究中,所有,這個(gè)系統(tǒng)對科學(xué)水平來說是能夠?qū)崿F(xiàn)的。2 2 系統(tǒng)分析系統(tǒng)分析重點(diǎn)介紹了基于 android 技術(shù)的點(diǎn)餐系統(tǒng)的可行性分析,這屬于本系統(tǒng)開發(fā)工作中的關(guān)鍵構(gòu)成。簡單的介紹系統(tǒng)分析的重要性和方法,針對本系統(tǒng),詳細(xì)介紹系統(tǒng)的需求和系統(tǒng)流程。2.12

13、.1 概述概述系統(tǒng)分析簡單的就是分析系統(tǒng)的需求和功能,確認(rèn)系統(tǒng)的功能的業(yè)務(wù)邏輯,將系統(tǒng)分成不同的模塊仔細(xì)的研究。包括系統(tǒng)流程,于總體設(shè)計(jì)的引導(dǎo)下,確定新系統(tǒng)邏輯功能。本著為用戶負(fù)責(zé)的規(guī)定,分析系統(tǒng)的過程。.1 系統(tǒng)分析的原則系統(tǒng)分析的原則做好系統(tǒng)分析工作很重要,系統(tǒng)分析能為軟件開發(fā)除去很多困難,減輕很多麻煩,當(dāng)然系統(tǒng)分析不是簡單的分析系統(tǒng)的完成功能,系統(tǒng)分析要遵循一定的原則,這樣才能保證分析工作能夠順利進(jìn)行,系統(tǒng)分析的原則有:1.設(shè)計(jì)規(guī)范原則2.面向用戶的原則3.結(jié)構(gòu)化分析的原則在系統(tǒng)研究之前,分析以 android 技術(shù)為基礎(chǔ)的點(diǎn)餐結(jié)構(gòu)應(yīng)該達(dá)到的作用和實(shí)現(xiàn)的目標(biāo)。首先從大的方

14、面來講,它應(yīng)該能夠完成點(diǎn)餐功能,從小的方面來說系統(tǒng)應(yīng)該具有用戶退訂的功能。除了功能之外,同時(shí)系統(tǒng)也要包含一定擴(kuò)展能力。 .2 系統(tǒng)分析的方法系統(tǒng)分析的方法結(jié)構(gòu)化的系統(tǒng)分析方法經(jīng)典不變,它的精髓也可以用“自頂向下的逐層分解,逐步細(xì)分,逐步求精“幾個(gè)字來概括。因此,本系統(tǒng)也做到由抽象到具體,由大到小的措施實(shí)現(xiàn)結(jié)構(gòu)化分析。在完成整個(gè)系統(tǒng)的開發(fā)的始終的過程中,人們往往將大量的精力放在編碼上,以為在規(guī)定的時(shí)間內(nèi)完成編碼,實(shí)現(xiàn)功能就算是完成軟件的開發(fā)了,而忽略了編碼之前的系統(tǒng)設(shè)計(jì)。其實(shí)系統(tǒng)設(shè)計(jì)和系統(tǒng)編碼是一個(gè)統(tǒng)一的整體,每一部分都不可缺少。在系統(tǒng)設(shè)計(jì)中制定良好的編碼規(guī)范和開發(fā)流程,能夠確保

15、無二義性,使得開發(fā)順利進(jìn)行,這也能提高開發(fā)這的開發(fā)效率。2.22.2 系統(tǒng)需求分析系統(tǒng)需求分析客戶端功能需求分析:登錄、注冊:使用者想要運(yùn)行系統(tǒng)必須登錄,如果未申請賬號(hào)能夠通過注冊模塊申請;菜譜查詢:查詢目前餐廳店菜單列表數(shù)據(jù);詳情查詢:可以查詢一個(gè)菜的全部數(shù)據(jù),有價(jià)格、介紹和數(shù)量;在線點(diǎn)餐:支持用戶在線下單點(diǎn)餐;選擇座位:支持使用者在 android 手機(jī)上選座位;我的訂單:支持使能夠查看自己已經(jīng)下單的數(shù)據(jù),能夠刪掉自己的訂單;人工服務(wù):客戶端可以呼叫服務(wù)員;服務(wù)端功能分析:登錄模塊:管理員登錄使用系統(tǒng);菜譜管理:管理員能夠查看當(dāng)前界面的數(shù)據(jù),能夠添加、修改或者刪除一個(gè)菜譜數(shù)據(jù);用戶管理:管

16、理員能夠查看到當(dāng)前系統(tǒng)已經(jīng)存在的用戶信息,能夠刪掉一個(gè)用戶信息;原材料管理:管理員可以查看當(dāng)前系統(tǒng)的原材料信息,可以添加、修改或者刪除一個(gè)原材料信息,原材料庫存較低時(shí)會(huì)警報(bào);訂單管理:管理員可以查看到當(dāng)前的所有訂單信息,可以修改訂單狀態(tài),例如把一個(gè)進(jìn)行中的訂單修改為已經(jīng)完成;具體的系統(tǒng)全部作用如圖 1:點(diǎn)餐系統(tǒng)后臺(tái)部分前臺(tái)部分點(diǎn)餐個(gè)人信息我的訂單人工服務(wù)登錄注冊人工服務(wù)管理菜譜管理訂單管理用戶信息管理原材料管理登錄退出圖 1 系統(tǒng)功能框架圖2.32.3 系統(tǒng)流程分析系統(tǒng)流程分析為了使得完成的軟件能夠平穩(wěn)運(yùn)行,完善了系統(tǒng)流程的所有環(huán)節(jié)。對每個(gè)流程要用到的關(guān)鍵技術(shù)也做了充分準(zhǔn)備。 首先本系統(tǒng)用戶在

17、使用系統(tǒng)前都必須經(jīng)過用戶登錄驗(yàn)證,只有驗(yàn)證通過的用戶才能進(jìn)入系統(tǒng), 用戶流程圖和管理員流程圖如圖 2 和圖 3 所示。圖 2 用戶流程圖圖 3 管理員流程圖2.42.4 系統(tǒng)用例圖系統(tǒng)用例圖用戶用例圖:用戶登錄注冊瀏覽菜譜點(diǎn)餐我的訂單人工服務(wù)個(gè)人信息圖 4 用戶用例圖本系統(tǒng)包含兩個(gè)構(gòu)成部分即使用者與管理員。圖 4 為用戶用例圖。普通用戶有登錄、注冊、瀏覽菜譜、點(diǎn)餐、我的訂單、人工服務(wù)、個(gè)人信息七個(gè)一級(jí)用例。管理員用例圖:圖 5 管理員用例圖圖 5 為管理員用例圖。管理員有后臺(tái)登錄管理、人工服務(wù)、菜譜管理、用戶管理、訂單管理、原材料管理 6 個(gè)一級(jí)用例。2.52.5 開發(fā)環(huán)境平臺(tái)的選擇開發(fā)環(huán)境平

18、臺(tái)的選擇以 eclipse 為開發(fā)工具,tomcat 為 web 應(yīng)用服務(wù)器,采用 mysql 數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)。eclipse 是一個(gè)企業(yè)級(jí)工作平臺(tái),利用它可以在數(shù)據(jù)庫和 javaee 的開發(fā)、發(fā)布以及服務(wù)器的整合等方面極大的提高工作效率。tomcat 是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,它技術(shù)先進(jìn)、性能穩(wěn)定、占用資源小、擴(kuò)展性好、使用簡便而且開源。mysql 是一個(gè)開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),被廣泛的應(yīng)用在中小型網(wǎng)站中。它具有體積小、速度快、總體成本低、開放源碼等特點(diǎn)。任何事物要運(yùn)行,都要有它的環(huán)境,android 也要有它的環(huán)境才能夠運(yùn)行,下面介紹 android 的開發(fā)環(huán)境配置。搭建開

19、發(fā)環(huán)境需要的軟件:操作系統(tǒng):window xp 或 linux軟件包:android sdk(software development kit java development kit) 、adt(android develoopment tool)ide 環(huán)境:eclipse ide+adt eclipse3.3 以上jdk:java runtime environment 虛擬機(jī) 、(jdk)java development kit3 3 總體設(shè)計(jì)總體設(shè)計(jì)3.13.1 系統(tǒng)設(shè)計(jì)原則系統(tǒng)設(shè)計(jì)原則系統(tǒng)設(shè)計(jì)和系統(tǒng)編碼是一個(gè)統(tǒng)一的整體,每一部分都不可缺少。在系統(tǒng)設(shè)計(jì)中制定良好的編碼規(guī)范和開發(fā)流程,

20、能夠確保無二義性,使得開發(fā)順利進(jìn)行,這也能提高開發(fā)這的開發(fā)效率。此外,在進(jìn)行系統(tǒng)設(shè)計(jì)過程中,還應(yīng)該遵循的主要原則如下。1、適用性原則好的系統(tǒng)開發(fā)出來首先要能夠完成基本的功能,即滿足用戶的要求,這是軟件開發(fā)的首要目的。如果開發(fā)出來的軟件不能滿足用戶的需求,那么此軟件注定是失敗的開發(fā)。在此基礎(chǔ)上還要考慮軟件的的操作性,要能保證軟件在運(yùn)行環(huán)境下沒有 bug,能讓用戶操作起來簡單,明了,還要功能全面易用化。不應(yīng)該只考慮軟件的收益,否則必將面臨很大的問題。2、可靠性安全性原則隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,網(wǎng)絡(luò)除了帶人人們便利之外也帶開了很多安全隱患,如,隱私安全、個(gè)人財(cái)產(chǎn)安全等等,雖然此次開發(fā)的系統(tǒng)簡單,但是安

21、全問題是每個(gè)系統(tǒng)都必須考慮的問題。網(wǎng)上訂餐系統(tǒng)中既要保護(hù)用戶個(gè)人信息的安全,保證不被泄露,還要保證他們的財(cái)產(chǎn)安全。只有具備安全措施的系統(tǒng)才能夠讓用戶放心。3、可擴(kuò)展性原則現(xiàn)在的科技發(fā)展速度之快,不僅是研發(fā)的快,更新?lián)Q代的速度也令人驚訝,科技技術(shù)不斷退陳舊新,因此,為了適應(yīng)時(shí)代的發(fā)展速度,系統(tǒng)的可擴(kuò)展能力也是開發(fā)過程中要考慮的事情。那么如何提高系統(tǒng)的可擴(kuò)展性呢?這里就充分體現(xiàn)了設(shè)計(jì)在開發(fā)中的重要作用。在軟件設(shè)計(jì)的過程中,將網(wǎng)上訂餐系統(tǒng)劃分成不同的功能模塊,并降低模塊之間的耦合度來提高系統(tǒng)的擴(kuò)展性。3.23.2 系統(tǒng)設(shè)計(jì)目標(biāo)系統(tǒng)設(shè)計(jì)目標(biāo)在系統(tǒng)開發(fā)之前要對系統(tǒng)進(jìn)行需求分析,功能概括,難點(diǎn)解析等等的工

22、作,之后對于系統(tǒng)大概要完成什么目標(biāo),系統(tǒng)的界面和設(shè)計(jì)等問題的思考來滿足用戶的要求。系統(tǒng)設(shè)計(jì)過程中將系統(tǒng)分解為很多不同的小的系統(tǒng),然后對分成的小的系統(tǒng)的功能、技術(shù)進(jìn)行分析討論,制定規(guī)定,在之后的開發(fā)中,先開發(fā)小的系統(tǒng)之后進(jìn)行整合,逐步完成開發(fā)。本系統(tǒng)是設(shè)計(jì)目標(biāo)是建立一個(gè)基于 android 技術(shù)的點(diǎn)餐系統(tǒng),可以滿足用戶對手機(jī)訂餐的需求。根據(jù)需求分析還有自己的生活體會(huì),在線點(diǎn)餐系統(tǒng)一定要有以下基本的要求。(1)界面看著新穎活力、大方美觀,吸引用戶。(2)具有易調(diào)試性和沒有 bug 性。(3)用戶能夠方便的查看所有的食品信息和單個(gè)用戶的詳細(xì)信息內(nèi)容。 (4)具有操作方便、功能完善的管理功能。3.33

23、.3 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)是在軟件開發(fā)之前必須要做好的一件基本工作,作為一個(gè)優(yōu)秀的程序員不僅要有很強(qiáng)的編碼能力,對于系統(tǒng)的總體結(jié)構(gòu)的設(shè)計(jì)也要很精通。做好系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)會(huì)讓系統(tǒng)開發(fā)順利進(jìn)行,做到事半功倍。在此次系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)過程中,系統(tǒng)分為客戶端和服務(wù)端,客戶端是可以在安卓智能手機(jī)上使用的,服務(wù)端采用 servlet 提供服務(wù),持久化層采用mysql,因?yàn)?mysql 的安裝和配置都適合小型的系統(tǒng)。在進(jìn)行系統(tǒng)的總體設(shè)計(jì)之后緊接著就是數(shù)據(jù)庫的需求設(shè)計(jì)。系統(tǒng)整體框架采用 c/s 模式,即客戶端/服務(wù)器模式,其中客戶端一方面與用戶交互,提供良好的用戶界面,另一方面

24、與服務(wù)器端進(jìn)行數(shù)據(jù)交換。服務(wù)器端向客戶端提供數(shù)據(jù)。管理員可以對數(shù)據(jù)進(jìn)行增,刪,改,查等操作。圖 6 系統(tǒng) c/s 圖4 4 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)4.14.1 服務(wù)端數(shù)據(jù)庫設(shè)計(jì)服務(wù)端數(shù)據(jù)庫設(shè)計(jì)e-r 圖屬于一類概念模型,其本質(zhì)是由真實(shí)社會(huì)過渡至虛擬世界的過度點(diǎn)。概念模型表示虛擬世界的部分,它表示真實(shí)社會(huì)過渡至虛擬世界的第一層抽象,極大的促進(jìn)了數(shù)據(jù)庫設(shè)計(jì)者參與數(shù)據(jù)庫設(shè)計(jì)的進(jìn)程,存在完善的語義表述功能,可以便捷完善的描述用眾的所有語義概念,此外,其還應(yīng)當(dāng)合理、清晰和方便使用者理解。在開發(fā)系統(tǒng)的時(shí)候,要考慮數(shù)據(jù)庫的設(shè)計(jì),第一要考慮的就是數(shù)據(jù)持久層要用的工具,由于本系統(tǒng)要包好的數(shù)據(jù)庫表并不多,一個(gè)小型的

25、數(shù)據(jù)庫工具就足以符合本系統(tǒng)的需求,所以本系統(tǒng)的數(shù)據(jù)庫采用了 mysql。本設(shè)計(jì)一共使用了 5 個(gè)數(shù)據(jù)庫表,每個(gè)表的詳細(xì)設(shè)計(jì)結(jié)構(gòu):管理員表(admins)管理員表中包含這管理員的相關(guān)數(shù)據(jù),其表結(jié)構(gòu)詳見表 1:表 1 管理員表序號(hào)列名數(shù)據(jù)類型長度標(biāo)識(shí)主鍵允許空說明1idint11是是否auto_increment2loginidvarchar255是3passwordsvarchar255是菜譜表(dishes)菜譜表中存儲(chǔ)著菜譜相關(guān)信息,其表結(jié)構(gòu)詳見表 2:表 2 菜譜表序號(hào)列名數(shù)據(jù)類型長度標(biāo)識(shí)主鍵允許空說明1idint11是是否auto_increment2titletext是標(biāo)題3shopi

26、dint11是類型 id4typenametext是類型名稱5introtext是詳細(xì)介紹6img_urlvarchar255是圖片7pricedouble11是價(jià)格8amountdouble11是數(shù)量9burdennamesvarchar原材料10burdensvarchar原材料 id訂單表(orders)訂單表中存儲(chǔ)著訂單的所有數(shù)據(jù),其表結(jié)構(gòu)詳見表 3:表 3 訂單表序號(hào)列名數(shù)據(jù)類型標(biāo)識(shí)主鍵允許空說明1idint是是否auto_increment2useridint是3usernametext是下單人5statusint是6dishesidint是7pricedouble是8amount

27、double是9createtimevarchar是下單時(shí)間食物分類表(shops)食物分類表中存儲(chǔ)著食物分類的相關(guān)信息,其表結(jié)構(gòu)如表 4 所示:表 4 食物分類表序號(hào)列名數(shù)據(jù)類型長度標(biāo)識(shí)主鍵允許空說明1idint11是是否auto_increment2nametext是類型名稱用戶表(users)用戶表中存儲(chǔ)著用戶的相關(guān)數(shù)據(jù),其表結(jié)構(gòu)詳見表 5:表 5 用戶表序號(hào)列名數(shù)據(jù)類型長度標(biāo)識(shí)主鍵允許空說明1idint11是是否auto_increment2loginidvarchar255是登錄賬號(hào)3nametext是姓名4passwordsvarchar255是密碼4.24.2 數(shù)據(jù)庫數(shù)據(jù)庫 er

28、er 圖圖e-r 圖是 doa(data orienteer approach)的一種主要的設(shè)計(jì)方法,它的作用是處理對象的業(yè)務(wù)領(lǐng)域和系統(tǒng)的理想化樣式,從概念數(shù)據(jù)模型到 e-r approach,根據(jù)實(shí)際的報(bào)表做出 e-r 圖。e-r 圖有實(shí)體及其間的對應(yīng)關(guān)系組成。e-r 圖亦稱為實(shí)體-聯(lián)系圖(entity relationship diagram),提供了表示實(shí)體型、屬性和聯(lián)系的方法,能夠表示現(xiàn)實(shí)世界的概念模型。安卓點(diǎn)餐系統(tǒng)的 e-r 圖詳見 7:圖 7 系統(tǒng) e-r 圖安卓點(diǎn)餐系統(tǒng)的物理數(shù)據(jù)詳見圖 8:圖 8 物理數(shù)據(jù)模型圖5 5 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.15.1 登錄模塊的

29、實(shí)現(xiàn)登錄模塊的實(shí)現(xiàn)本系統(tǒng)使用前用戶需要登錄驗(yàn)證,在登錄界面中,通過繼承一個(gè) activity來實(shí)現(xiàn),界面上的控件用到了 edittext、button 和 checkbox 等等組件, edittext 主要用來實(shí)現(xiàn)用戶帳號(hào)和密碼的輸入。登錄過程中用戶需要輸入賬號(hào)與密碼,并且經(jīng)由登錄按鈕來表達(dá)登錄意圖,意圖表達(dá)完成,系統(tǒng)會(huì)經(jīng)由 http 的過程將帳號(hào)與密碼發(fā)送到服務(wù)器端驗(yàn)證,并返回服務(wù)端的驗(yàn)證結(jié)果,如果驗(yàn)證正確那么提示使用者登錄完成,然后自行轉(zhuǎn)入主界面;如果錯(cuò)誤,那么提示使用者登錄失敗。該界面具有保存密碼成功,假如使用者在登錄時(shí)勾選了“保存密碼”復(fù)選框,則下次再進(jìn)入到本界面用戶將不需要再次輸入

30、密碼,而只需要點(diǎn)擊登錄按鈕即可實(shí)現(xiàn)登錄操作,記住密碼的過程是通過 android 平臺(tái)提供的sharedpreferences 來實(shí)現(xiàn)的。當(dāng)然如果用戶還沒有登錄賬號(hào),則能夠通過“注冊”選項(xiàng)鏈接到用戶注冊界面,從而注冊一個(gè)新號(hào)碼;使用者登錄過程圖詳見圖 9,展示了使用者登錄功能的操作過程和系統(tǒng)處理過程。圖 9 登錄界面流程圖具體的實(shí)現(xiàn)效果如圖 9 所示:圖 9 登錄界面實(shí)現(xiàn)的核心代碼如下:loginactivity 的 doinbackground 的方法發(fā)起 url 請求,發(fā)送用戶名,密碼protected string doinbackground(string. params) strin

31、g urlstring = appconstant.geturl(getapplicationcontext() + servletservice?action=login; urlstring += &loginid= + etloginid.gettext() + &passwords= + etpassword.gettext();string json = httphelper.httprequest(urlstring);return json;loginactivity 的 onpostexecute 的方法 獲取服務(wù)器返回 json,驗(yàn)證密碼是否正確loginac

32、tivity 的 deallogin 是當(dāng)密碼驗(yàn)證成功后 跳轉(zhuǎn)到disheslistactivityonlineuser model = new onlineuser();/設(shè)置登陸成功的用戶屬性model.setid(jsonobject.getint(id);model.setloginid(etloginid.gettext().tostring();model.setname(jsonobject.getstring(name);application.setloginuser(model);/彈出提示框toastutil.show(model.getname() + ,登錄成功);/

33、跳轉(zhuǎn)到登陸成功頁面intent = new intent(loginactivity.this, disheslistactivity.class);startactivity(intent);5.25.2 菜譜模塊的實(shí)現(xiàn)菜譜模塊的實(shí)現(xiàn)用戶成功登陸進(jìn)入系統(tǒng)之后可以查看到當(dāng)前系統(tǒng)所有菜譜信息,包括菜譜的圖片、名稱、單價(jià)和詳細(xì)介紹信息,系統(tǒng)用了一個(gè) listview 組件來顯示系統(tǒng)的菜譜信息,同時(shí)用戶也可以通過界面左上角的搜索按鈕來搜索菜譜信息,用戶點(diǎn)擊一條信息之后可以查看一個(gè)菜譜的詳細(xì)介紹。菜譜模塊作用流程圖詳見圖 10,展示了訂餐模塊的用戶操作過程和系統(tǒng)處理過程。圖 10 菜譜功能流程圖具體的

34、實(shí)現(xiàn)效果如圖 11 和 12 所示:圖 11 菜譜大全界面圖 12 菜譜分類界面實(shí)現(xiàn)的核心代碼如下:/請求獲取列表數(shù)據(jù)的代碼overrideprotected string doinbackground(string. params) string json = null;serverurl = appconstant.geturl(getapplicationcontext() + servletservice?action=getdisheslist&shopid=+ shopid;baseutil.logii(serverurl);json = httphelper.httpre

35、quest(serverurl);return json;/解析列表數(shù)據(jù),并設(shè)置適配器的代碼list = new arraylist();if (!textutils.isempty(result.trim() list = gson.fromjson(result, new typetokenlist() .gettype(); else toastutil.show(沒有數(shù)據(jù));adapter = new dishesadapter(disheslistactivity.this, list);listview1.setadapter(adapter);點(diǎn)擊 listview 中的一項(xiàng),會(huì)

36、跳轉(zhuǎn)到詳情頁面,這其中會(huì)根據(jù) id 去調(diào)用webservice 查詢數(shù)據(jù)庫獲取到詳情數(shù)據(jù)/界面點(diǎn)擊跳轉(zhuǎn)的代碼listview1.setonitemclicklistener(new onitemclicklistener() overridepublic void onitemclick(adapterview parent, view view, int position, long id) intent = new intent(disheslistactivity.this, gooddetailactivity.class);intent.putextra(id, list.get(p

37、osition).getid();startactivity(intent););menu 的實(shí)現(xiàn),設(shè)置 menu 按鍵的彈出事件public boolean oncreateoptionsmenu(menu menu) super.oncreateoptionsmenu(menu);menu.add(0, 99, 0, 人工服務(wù)).seticon(r.drawable.icon_application);menu.add(0, 100, 0, 注銷登錄).seticon(r.drawable.icon_application);menu.add(0, 101, 0, 個(gè)人信息).setico

38、n(r.drawable.icon_application);menu.add(0, 106, 0, 我的訂單).seticon(r.drawable.icon_application);menu.add(0, 102, 0, 退出).seticon(r.drawable.icon_application);return true;menu 選中觸發(fā)的事件參考 onoptionsitemselected 方法選中 人工服務(wù) 按鈕后,會(huì)執(zhí)行 humanservices 方法private void humanservices() final string arg = new string6;fo

39、r (int i = 0; i 0) try jsonarray = new jsonarray(result);jsonobject = jsonarray.getjsonobject(0);(textview) findviewbyid(r.id.tvtoptitlecenter).settext(jsonobject.getstring(title);(textview) findviewbyid(r.id.tvtoptitlecenter).settextsize(16);if (!textutils.isempty(jsonobject.getstring(img_url) asyn

40、cimageloader.loadbitmap(serverurl + uploadfile/ + jsonobject.getstring(img_url),imageview1);string intro = 單價(jià):¥ + jsonobject.getstring(price) + n;intro += 數(shù)量: + jsonobject.getstring(amount) + n;intro += 簡介: + jsonobject.getstring(intro) + n 配料: + jsonobject.getstring(burdennames);tvintro.settext(int

41、ro); catch (jsonexception e) e.printstacktrace();下單操作 使用 post 請求,提交數(shù)據(jù),實(shí)現(xiàn)代碼如下/提交訂單的代碼protected string doinbackground(string. params) string urlstring = appconstant.geturl(getapplicationcontext() + servletservice;map map = new hashmap();map.put(action, createorder);map.put(dishesid, id);map.put(userid

42、, user.getid();map.put(username, user.getname();map.put(amount, etamount.gettext();string result = httphelper.httppost(urlstring, map);return result;/判斷訂單提交后,webservice 的返回值,提示訂單是否提交成功protected void onpostexecute(string result) super.onpostexecute(result);dialog.dismiss();if (result != null & re

43、sult.trim().equals(1) toastutil.show(下單成功); else if (result.trim().equals(-1) toastutil.show(原料不足,下單失敗); else toastutil.show(下單失敗);5.45.4 用戶訂單模塊的實(shí)現(xiàn)用戶訂單模塊的實(shí)現(xiàn)用戶的下單信息將會(huì)被記錄到服務(wù)端中,用戶可以隨時(shí)通過智能手機(jī)菜單鍵來打開查看自己已經(jīng)下過的訂單信息,包括菜式信息、下單數(shù)量、選擇的座位、下單時(shí)間和當(dāng)前的訂單狀態(tài),同時(shí)用戶也可以長按一條訂單信息來彈出刪除菜單,用戶可以刪除一條訂單信息。我的訂單模塊作用流程圖詳見圖 15,展示了我的訂單模塊

44、用戶的操作過程和系統(tǒng)處理過程。圖 15 我的訂單流程圖具體的實(shí)現(xiàn)效果如圖 16 所示:圖 16 我的訂單界面實(shí)現(xiàn)的核心代碼如下:/通過 url 請求獲取我的訂單數(shù)據(jù)protected string doinbackground(string. params) string json = null;serverurl = appconstant.geturl(getapplicationcontext() + servletservice?action=getmyorderslist&userid=+ user.getid();json = httphelper.httprequest(

45、serverurl);return json;/解析返回的 json 字符串,把數(shù)據(jù)展示到界面上jsonarray = new jsonarray(result);for (int i = 0; i 0) toastutil.show(取消成功);new loadasynctask().execute(); else toastutil.show(取消失敗);5.55.5 服務(wù)端模塊的實(shí)現(xiàn)服務(wù)端模塊的實(shí)現(xiàn)服務(wù)端模塊具有兩方面作用,其一是給客戶端提供數(shù)據(jù)服務(wù)接口,客戶端調(diào)用服務(wù)端的接口來得到數(shù)據(jù)庫里面的菜譜、訂單等所有數(shù)據(jù),然后顯示在客戶端界面上。服務(wù)端存在另外一個(gè)作用:保證信息的動(dòng)態(tài)維護(hù),比如

46、菜譜信息維護(hù)、用戶信息維護(hù)、訂單信息維護(hù)以及菜譜類型信息維護(hù)。比如管理員能夠于服務(wù)端依據(jù)真實(shí)狀況增加一個(gè)菜式數(shù)據(jù)、刪除一個(gè)菜式數(shù)據(jù)等操作。圖 17 服務(wù)端模塊.1 人工服務(wù)模塊的實(shí)現(xiàn)人工服務(wù)模塊的實(shí)現(xiàn)使用者在前臺(tái)呼叫人工服務(wù)的操作不可以馬上執(zhí)行,需要管理員于后臺(tái)進(jìn)行信息管理審核以確認(rèn)它的操作性,管理員單擊后臺(tái)界面中的“人工服務(wù)”進(jìn)入用戶人工服務(wù)處理頁面,該頁面會(huì)顯示近期所以的用戶呼叫的人工服務(wù)。人工服務(wù)處理頁面顯示的是呼叫人,呼叫時(shí)間等信息。人工服務(wù)主要通過從humanservices 表中查詢對應(yīng)的用戶信息并顯示在頁面中,管理員審核后再對服務(wù)狀態(tài)進(jìn)行修改,系統(tǒng)會(huì)根據(jù)提交的操作

47、更新數(shù)據(jù)表。流程圖如圖 18 所示。 圖 18 人工服務(wù)模塊流程圖人工服務(wù)信息頁面如圖 19 所示。圖 19 人工服務(wù)信息圖.2 菜譜管理模塊的實(shí)現(xiàn)菜譜管理模塊的實(shí)現(xiàn)菜譜管理模塊用來完成對菜譜信息的添加,修改,刪除等功能,菜譜管理模塊流程如圖 20 所示,展示了管理員對菜譜的操作過程和系統(tǒng)處理過程。圖 20 菜譜管理流程圖運(yùn)行情況如圖 21 所示:圖 21 菜譜管理信息圖.3 用戶管理模塊的實(shí)現(xiàn)用戶管理模塊的實(shí)現(xiàn)用戶管理模塊用來完成對用戶信息的修改,刪除等功能,用戶管理模塊流程如圖 22 所示,展示了管理員對用戶信息的操作過程和系統(tǒng)處理過程。圖 22 用戶管理流

48、程圖運(yùn)行情況如圖 23 所示:圖 23 用戶管理信息圖.4 訂單管理模塊的實(shí)現(xiàn)訂單管理模塊的實(shí)現(xiàn)訂單管理模塊主要完成對訂單狀態(tài)的修改和刪除,訂單管理模塊作用流程詳見圖 24。圖 24 訂單管理流程圖運(yùn)行情況如圖 25 所示:圖 25 訂單管理信息圖5 5 系統(tǒng)測試系統(tǒng)測試5.15.1 測試方法測試方法測試是采用測試用例來檢測出程序可能存在錯(cuò)誤,缺陷,失效和事故等影響程序正常工作的問題的一項(xiàng)軟件活動(dòng),測試包括靜態(tài)與動(dòng)態(tài)兩種,其中的靜態(tài)測試包括靜態(tài)分析器分析,代碼評審等方式,動(dòng)態(tài)測試包括黑盒與白盒兩種,灰盒測試與白盒、黑盒兩種類型均有一定區(qū)別與聯(lián)系,它不僅注重輸入輸出的合理性,而且注重內(nèi)部表現(xiàn),可以發(fā)現(xiàn)黑盒與白盒測試所未重視的現(xiàn)象,尤其如端對端的數(shù)據(jù)流問題、分布式硬軟件組合問題和兼容性問題。5.25.2 測試內(nèi)容測試內(nèi)容“登錄測試”用例與結(jié)果如表 6:表 6 “登錄測試”測試系統(tǒng)安卓點(diǎn)餐系統(tǒng)版本功能模塊名登錄模塊對應(yīng)開發(fā)人員劉子杰用例編號(hào)test1用例設(shè)計(jì)者劉子杰測試人員劉子杰測試日期2015.5.13功能特性驗(yàn)證登錄密碼測試目的驗(yàn)證登陸用戶的密碼的是否正確前置條件運(yùn)行程序測試步驟1、輸入正確密碼2、輸入錯(cuò)誤密碼3、不輸入密碼期望結(jié)果1、登陸成功。2、登錄失敗3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論