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

下載本文檔

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

文檔簡介

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

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

3、igh requirements 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 ce

4、llphone users demand 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 functi

5、ons of food ordering, 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 smoo

6、th and steady in 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 目目 錄錄 論文總頁

7、數(shù):34 頁 1 緒論.1 1.1 課題研究背景和意義.1 1.2 課題可行性分析 .1 2 系統(tǒng)分析.2 2.1 概述 .2 2.1.1 系統(tǒng)分析的原則.2 2.1.2 系統(tǒng)分析的方法.2 2.2 系統(tǒng)需求分析 .2 2.3 系統(tǒng)流程分析.4 2.4 系統(tǒng)用例圖 .5 2.5 開發(fā)環(huán)境平臺的選擇.6 3 總體設(shè)計.7 3.1 系統(tǒng)設(shè)計原則.7 3.2 系統(tǒng)設(shè)計目標.7 3.3 系統(tǒng)總體結(jié)構(gòu)設(shè)計.8 4 數(shù)據(jù)庫設(shè)計 .8 4.1 服務(wù)端數(shù)據(jù)庫設(shè)計.8 4.2 數(shù)據(jù)庫 er 圖.10 5 系統(tǒng)詳細設(shè)計與實現(xiàn).11 5.1 登錄模塊的實現(xiàn) .11 5.2 菜譜模塊的實現(xiàn) .15 5.3 在線下單模

8、塊的實現(xiàn) .18 5.4 用戶訂單模塊的實現(xiàn) .21 5.5 服務(wù)端模塊的實現(xiàn) .24 5.5.1 人工服務(wù)模塊的實現(xiàn).25 5.5.2 菜譜管理模塊的實現(xiàn).26 5.5.3 用戶管理模塊的實現(xiàn).26 5.5.4 訂單管理模塊的實現(xiàn).28 5 系統(tǒng)測試.29 5.1 測試方法.29 5.2 測試內(nèi)容.29 5.3 測試結(jié)果 .30 總 結(jié).31 參考文獻.32 致 謝.33 聲 明.34 1 1 緒論緒論 1.11.1 課題研究背景和意義課題研究背景和意義 由于智能手機和手機軟件愈加廣泛的發(fā)展和運用,目前“手機 app”已經(jīng) 成為廣受社會關(guān)注的焦點,手機應用逐漸變成人們進行信息交流的主要工具。

9、 在目前各種品牌手機爭相斗艷的時期,谷歌與 2008 年開始開發(fā)出一款廣受大家 關(guān)注的移動操作系統(tǒng)-android。這一移動操作系統(tǒng)借助其極高的開放性與較好 的優(yōu)化程度,獲得了手機生產(chǎn)廠家與適用人群越來越多的重視。 如今科技突飛猛進、人們的生活節(jié)奏也逐漸加快,由于移動終端技術(shù)的日 趨成熟,社會對于手機設(shè)備的功能需求變得愈來愈大,已逐漸從以往的技術(shù)需 求轉(zhuǎn)變?yōu)楣δ苄枨?,所以,移動軟件系統(tǒng)的需求也提高了很多。本設(shè)計是以 android 操作系統(tǒng)為基礎(chǔ)的“基于 android 技術(shù)的點餐系統(tǒng)”軟件的設(shè)計與實 現(xiàn)。 為了方便用戶可以隨時隨地查看點餐信息,一種高效的辦法就是將點餐做 成應用程序拓展到用戶

10、的終端設(shè)備上,并且提供一些輔助功能。所以這次畢設(shè) 的目標就致力于開發(fā)出一款基于 android 手機平臺的點餐系統(tǒng),來滿足用戶的 需求。 現(xiàn)在社會上的的工作壓力很大并有增加的趨勢,人們已經(jīng)離不開有網(wǎng)絡(luò)的 生活,網(wǎng)絡(luò)逐漸變成大家人生的重要組成。網(wǎng)上訂餐是專門為工作較忙以及經(jīng) 常不出門的“宅人”設(shè)計的,不需要離家、不需要誑街就可以便捷購買到想要 的食物的專業(yè)手機程序。此款系統(tǒng)可以不妨礙使用者的生活軌跡,又可以增添 使用者生活樂趣、簡化購物程序,同時為許多商家提供了更多契機。 1.21.2 課題可行性分析課題可行性分析 智能手機的出現(xiàn)減少了很多方面的限制,具有很多優(yōu)勢,人們可以隨時隨 地的傳遞信息,

11、訂購商品,不論時間不論地點,正是這個優(yōu)點使得智能手機能 夠受到越來越多人是喜愛,比如,用戶智能手機點餐速度迅速比傳統(tǒng)的點餐要 快的多,大大提高了效率。 1.經(jīng)濟可行性 由于世界經(jīng)濟水平的突飛猛進,科技水平得到了前所未有的巨大發(fā)展,社 會正步入一個嶄新的網(wǎng)路信息時期。因為社會持續(xù)發(fā)展的生活與工作水平,人 們的非物質(zhì)需求正在逐漸增加,伴隨出現(xiàn)的就是網(wǎng)絡(luò)技術(shù)的持續(xù)進步,當代社 會網(wǎng)絡(luò)應用變得愈加廣泛,人們之間的相互溝通日趨廣泛、交流也愈加簡便, 所有這些,使得人們的生產(chǎn)生活方式發(fā)生了巨大轉(zhuǎn)變。是故,由于網(wǎng)絡(luò)技術(shù)的 進步,電商領(lǐng)域逐漸發(fā)展,極大程度上改變了人們的購物方式。在如今這個年 代,幾乎所有計算

12、機使用者都能夠進行網(wǎng)上購物的操作,而且往往樂此不疲。 從長久的角度來想,安卓點餐系統(tǒng)的開發(fā)與應用還是存在很大的經(jīng)濟前景。 2.技術(shù)可行性 技術(shù)可行性一般是因為現(xiàn)在已經(jīng)存在的的技術(shù)因素而控制的,比如,是否 可以進行平穩(wěn)的功能開發(fā),軟、硬件功能會不會達到系統(tǒng)所規(guī)定的條件。如今 這個時代,是網(wǎng)絡(luò)資源化的時代,網(wǎng)絡(luò)資源爆發(fā)式增長,這引起了所有其他相 關(guān)技術(shù)的進步,所以對于技術(shù)條件來說是能夠?qū)崿F(xiàn)的。本系統(tǒng)單個用 java 語言, 使用 ssh 技術(shù)與 mysql 數(shù)據(jù)庫進行開發(fā),上述技術(shù)在現(xiàn)在已經(jīng)很廣泛且很成熟, 已經(jīng)無數(shù)次被應用于軟件與系統(tǒng)研究中,所有,這個系統(tǒng)對科學水平來說是能 夠?qū)崿F(xiàn)的。 2 2

13、系統(tǒng)分析系統(tǒng)分析 重點介紹了基于 android 技術(shù)的點餐系統(tǒng)的可行性分析,這屬于本系統(tǒng)開 發(fā)工作中的關(guān)鍵構(gòu)成。簡單的介紹系統(tǒng)分析的重要性和方法,針對本系統(tǒng),詳 細介紹系統(tǒng)的需求和系統(tǒng)流程。 2.12.1 概述概述 系統(tǒng)分析簡單的就是分析系統(tǒng)的需求和功能,確認系統(tǒng)的功能的業(yè)務(wù)邏輯, 將系統(tǒng)分成不同的模塊仔細的研究。包括系統(tǒng)流程,于總體設(shè)計的引導下,確 定新系統(tǒng)邏輯功能。本著為用戶負責的規(guī)定,分析系統(tǒng)的過程。 .1 系統(tǒng)分析的原則系統(tǒng)分析的原則 做好系統(tǒng)分析工作很重要,系統(tǒng)分析能為軟件開發(fā)除去很多困難,減輕很 多麻煩,當然系統(tǒng)分析不是簡單的分析系統(tǒng)的完成功能,系統(tǒng)分析要遵循一定

14、 的原則,這樣才能保證分析工作能夠順利進行,系統(tǒng)分析的原則有: 1.設(shè)計規(guī)范原則 2.面向用戶的原則 3.結(jié)構(gòu)化分析的原則 在系統(tǒng)研究之前,分析以 android 技術(shù)為基礎(chǔ)的點餐結(jié)構(gòu)應該達到的作用 和實現(xiàn)的目標。首先從大的方面來講,它應該能夠完成點餐功能,從小的方面 來說系統(tǒng)應該具有用戶退訂的功能。除了功能之外,同時系統(tǒng)也要包含一定擴 展能力。 .2 系統(tǒng)分析的方法系統(tǒng)分析的方法 結(jié)構(gòu)化的系統(tǒng)分析方法經(jīng)典不變,它的精髓也可以用“自頂向下的逐層分 解,逐步細分,逐步求精“幾個字來概括。因此,本系統(tǒng)也做到由抽象到具體, 由大到小的措施實現(xiàn)結(jié)構(gòu)化分析。在完成整個系統(tǒng)的開發(fā)的始終的過

15、程中,人 們往往將大量的精力放在編碼上,以為在規(guī)定的時間內(nèi)完成編碼,實現(xiàn)功能就 算是完成軟件的開發(fā)了,而忽略了編碼之前的系統(tǒng)設(shè)計。其實系統(tǒng)設(shè)計和系統(tǒng) 編碼是一個統(tǒng)一的整體,每一部分都不可缺少。在系統(tǒng)設(shè)計中制定良好的編碼 規(guī)范和開發(fā)流程,能夠確保無二義性,使得開發(fā)順利進行,這也能提高開發(fā)這 的開發(fā)效率。 2.22.2 系統(tǒng)需求分析系統(tǒng)需求分析 客戶端功能需求分析: 登錄、注冊:使用者想要運行系統(tǒng)必須登錄,如果未申請賬號能夠通過注冊 模塊申請; 菜譜查詢:查詢目前餐廳店菜單列表數(shù)據(jù); 詳情查詢:可以查詢一個菜的全部數(shù)據(jù),有價格、介紹和數(shù)量; 在線點餐:支持用戶在線下單點餐; 選擇座位:支持使用者在

16、 android 手機上選座位; 我的訂單:支持使能夠查看自己已經(jīng)下單的數(shù)據(jù),能夠刪掉自己的訂單; 人工服務(wù):客戶端可以呼叫服務(wù)員; 服務(wù)端功能分析: 登錄模塊:管理員登錄使用系統(tǒng); 菜譜管理:管理員能夠查看當前界面的數(shù)據(jù),能夠添加、修改或者刪除一個 菜譜數(shù)據(jù); 用戶管理:管理員能夠查看到當前系統(tǒng)已經(jīng)存在的用戶信息,能夠刪掉一個 用戶信息; 原材料管理:管理員可以查看當前系統(tǒng)的原材料信息,可以添加、修改或者 刪除一個原材料信息,原材料庫存較低時會警報; 訂單管理:管理員可以查看到當前的所有訂單信息,可以修改訂單狀態(tài),例 如把一個進行中的訂單修改為已經(jīng)完成; 具體的系統(tǒng)全部作用如圖 1: 點餐系

17、統(tǒng) 后臺部分前臺部分 點 餐 個 人 信 息 我 的 訂 單 人 工 服 務(wù) 登 錄 注 冊 人 工 服 務(wù) 管 理 菜 譜 管 理 訂 單 管 理 用 戶 信 息 管 理 原 材 料 管 理 登 錄 退 出 圖 1 系統(tǒng)功能框架圖 2.32.3 系統(tǒng)流程分析系統(tǒng)流程分析 為了使得完成的軟件能夠平穩(wěn)運行,完善了系統(tǒng)流程的所有環(huán)節(jié)。對每個 流程要用到的關(guān)鍵技術(shù)也做了充分準備。 首先本系統(tǒng)用戶在使用系統(tǒng)前都必須經(jīng)過用戶登錄驗證,只有驗證通過的 用戶才能進入系統(tǒng), 用戶流程圖和管理員流程圖如圖 2 和圖 3 所示。 圖 2 用戶流程圖 圖 3 管理員流程圖 2.42.4 系統(tǒng)用例圖系統(tǒng)用例圖 用戶用

18、例圖: 用戶 登錄 注冊 瀏覽菜譜 點餐 我的訂單 人工服務(wù) 個人信息 圖 4 用戶用例圖 本系統(tǒng)包含兩個構(gòu)成部分即使用者與管理員。圖 4 為用戶用例圖。普通用 戶有登錄、注冊、瀏覽菜譜、點餐、我的訂單、人工服務(wù)、個人信息七個一級 用例。 管理員用例圖: 圖 5 管理員用例圖 圖 5 為管理員用例圖。管理員有后臺登錄管理、人工服務(wù)、菜譜管理、用 戶管理、訂單管理、原材料管理 6 個一級用例。 2.52.5 開發(fā)環(huán)境平臺的選擇開發(fā)環(huán)境平臺的選擇 以 eclipse 為開發(fā)工具,tomcat 為 web 應用服務(wù)器,采用 mysql 數(shù)據(jù)庫存 儲數(shù)據(jù)。 eclipse 是一個企業(yè)級工作平臺,利用它

19、可以在數(shù)據(jù)庫和 javaee 的開發(fā)、 發(fā)布以及服務(wù)器的整合等方面極大的提高工作效率。 tomcat 是一個小型的輕量級應用服務(wù)器,它技術(shù)先進、性能穩(wěn)定、占用資 源小、擴展性好、使用簡便而且開源。 mysql 是一個開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),被廣泛的應用在中 小型網(wǎng)站中。它具有體積小、速度快、總體成本低、開放源碼等特點。 任何事物要運行,都要有它的環(huán)境,android 也要有它的環(huán)境才能夠運行, 下面介紹 android 的開發(fā)環(huán)境配置。 搭建開發(fā)環(huán)境需要的軟件: 操作系統(tǒng):window xp 或 linux 軟件包:android sdk(software development

20、kit java development kit) 、adt(android develoopment tool) ide 環(huán)境:eclipse ide+adt eclipse3.3 以上 jdk:java runtime environment 虛擬機 、(jdk)java development kit 3 3 總體設(shè)計總體設(shè)計 3.13.1 系統(tǒng)設(shè)計原則系統(tǒng)設(shè)計原則 系統(tǒng)設(shè)計和系統(tǒng)編碼是一個統(tǒng)一的整體,每一部分都不可缺少。在系統(tǒng)設(shè) 計中制定良好的編碼規(guī)范和開發(fā)流程,能夠確保無二義性,使得開發(fā)順利進行, 這也能提高開發(fā)這的開發(fā)效率。此外,在進行系統(tǒng)設(shè)計過程中,還應該遵循的 主要原則如下。

21、1、適用性原則 好的系統(tǒng)開發(fā)出來首先要能夠完成基本的功能,即滿足用戶的要求,這是 軟件開發(fā)的首要目的。如果開發(fā)出來的軟件不能滿足用戶的需求,那么此軟件 注定是失敗的開發(fā)。在此基礎(chǔ)上還要考慮軟件的的操作性,要能保證軟件在運 行環(huán)境下沒有 bug,能讓用戶操作起來簡單,明了,還要功能全面易用化。不 應該只考慮軟件的收益,否則必將面臨很大的問題。 2、可靠性安全性原則 隨著計算機網(wǎng)絡(luò)的發(fā)展,網(wǎng)絡(luò)除了帶人人們便利之外也帶開了很多安全隱 患,如,隱私安全、個人財產(chǎn)安全等等,雖然此次開發(fā)的系統(tǒng)簡單,但是安全 問題是每個系統(tǒng)都必須考慮的問題。網(wǎng)上訂餐系統(tǒng)中既要保護用戶個人信息的 安全,保證不被泄露,還要保證

22、他們的財產(chǎn)安全。只有具備安全措施的系統(tǒng)才 能夠讓用戶放心。 3、可擴展性原則 現(xiàn)在的科技發(fā)展速度之快,不僅是研發(fā)的快,更新?lián)Q代的速度也令人驚訝, 科技技術(shù)不斷退陳舊新,因此,為了適應時代的發(fā)展速度,系統(tǒng)的可擴展能力 也是開發(fā)過程中要考慮的事情。 那么如何提高系統(tǒng)的可擴展性呢?這里就充分體現(xiàn)了設(shè)計在開發(fā)中的重要作 用。在軟件設(shè)計的過程中,將網(wǎng)上訂餐系統(tǒng)劃分成不同的功能模塊,并降低模 塊之間的耦合度來提高系統(tǒng)的擴展性。 3.23.2 系統(tǒng)設(shè)計目標系統(tǒng)設(shè)計目標 在系統(tǒng)開發(fā)之前要對系統(tǒng)進行需求分析,功能概括,難點解析等等的工作, 之后對于系統(tǒng)大概要完成什么目標,系統(tǒng)的界面和設(shè)計等問題的思考來滿足用 戶

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

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

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

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

27、標題 3shopidint11是類型 id 4typenametext是類型名稱 5introtext是詳細介紹 6img_urlvarchar255是圖片 7pricedouble11是價格 8amountdouble11是數(shù)量 9burdennamesvarchar原材料 10burdensvarchar原材料 id 訂單表(orders) 訂單表中存儲著訂單的所有數(shù)據(jù),其表結(jié)構(gòu)詳見表 3: 表 3 訂單表 序號列名數(shù)據(jù)類型標識主鍵允許空說明 1idint是是否auto_increment 2useridint是 3usernametext是下單人 5statusint是 6dishesi

28、dint是 7pricedouble是 8amountdouble是 9createtimevarchar是下單時間 食物分類表(shops) 食物分類表中存儲著食物分類的相關(guān)信息,其表結(jié)構(gòu)如表 4 所示: 表 4 食物分類表 序號列名數(shù)據(jù)類型長度標識主鍵允許空說明 1idint11是是否auto_increment 2nametext是類型名稱 用戶表(users) 用戶表中存儲著用戶的相關(guān)數(shù)據(jù),其表結(jié)構(gòu)詳見表 5: 表 5 用戶表 序號列名數(shù)據(jù)類型長度標識主鍵允許空說明 1idint11是是否auto_increment 2loginidvarchar255是登錄賬號 3nametext是

29、姓名 4passwordsvarchar255是密碼 4.24.2 數(shù)據(jù)庫數(shù)據(jù)庫 erer 圖圖 e-r 圖是 doa(data orienteer approach)的一種主要的設(shè)計方法,它的作 用是處理對象的業(yè)務(wù)領(lǐng)域和系統(tǒng)的理想化樣式,從概念數(shù)據(jù)模型到 e-r approach,根據(jù)實際的報表做出 e-r 圖。e-r 圖有實體及其間的對應關(guān)系組成。 e-r 圖亦稱為實體-聯(lián)系圖(entity relationship diagram),提供了表示 實體型、屬性和聯(lián)系的方法,能夠表示現(xiàn)實世界的概念模型。 安卓點餐系統(tǒng)的 e-r 圖詳見 7: 圖 7 系統(tǒng) e-r 圖 安卓點餐系統(tǒng)的物理數(shù)據(jù)詳

30、見圖 8: 圖 8 物理數(shù)據(jù)模型圖 5 5 系統(tǒng)詳細設(shè)計與實現(xiàn)系統(tǒng)詳細設(shè)計與實現(xiàn) 5.15.1 登錄模塊的實現(xiàn)登錄模塊的實現(xiàn) 本系統(tǒng)使用前用戶需要登錄驗證,在登錄界面中,通過繼承一個 activity 來實現(xiàn),界面上的控件用到了 edittext、button 和 checkbox 等等組件, edittext 主要用來實現(xiàn)用戶帳號和密碼的輸入。 登錄過程中用戶需要輸入賬號與密碼,并且經(jīng)由登錄按鈕來表達登錄意圖, 意圖表達完成,系統(tǒng)會經(jīng)由 http 的過程將帳號與密碼發(fā)送到服務(wù)器端驗證,并 返回服務(wù)端的驗證結(jié)果,如果驗證正確那么提示使用者登錄完成,然后自行轉(zhuǎn) 入主界面;如果錯誤,那么提示使用者

31、登錄失敗。 該界面具有保存密碼成功,假如使用者在登錄時勾選了“保存密碼”復選 框,則下次再進入到本界面用戶將不需要再次輸入密碼,而只需要點擊登錄按 鈕即可實現(xiàn)登錄操作,記住密碼的過程是通過 android 平臺提供的 sharedpreferences 來實現(xiàn)的。 當然如果用戶還沒有登錄賬號,則能夠通過“注冊”選項鏈接到用戶注冊界 面,從而注冊一個新號碼; 使用者登錄過程圖詳見圖 9,展示了使用者登錄功能的操作過程和系統(tǒng)處 理過程。 圖 9 登錄界面流程圖 具體的實現(xiàn)效果如圖 9 所示: 圖 9 登錄界面 實現(xiàn)的核心代碼如下: loginactivity 的 doinbackground 的方

32、法發(fā)起 url 請求,發(fā)送用戶名,密碼 protected string doinbackground(string. params) string urlstring = appconstant.geturl(getapplicationcontext() + servletservice?action=login; urlstring += string json = httphelper.httprequest(urlstring); return json; loginactivity 的 onpostexecute 的方法 獲取服務(wù)器返回 json,驗證密碼是 否正確 loginac

33、tivity 的 deallogin 是當密碼驗證成功后 跳轉(zhuǎn)到 disheslistactivity onlineuser 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() +

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

35、理過程。 圖 10 菜譜功能流程圖 具體的實現(xiàn)效果如圖 11 和 12 所示: 圖 11 菜譜大全界面 圖 12 菜譜分類界面 實現(xiàn)的核心代碼如下: /請求獲取列表數(shù)據(jù)的代碼 override protected string doinbackground(string. params) string json = null; serverurl = appconstant.geturl(getapplicationcontext() + servletservice?action=getdisheslist baseutil.logii(serverurl); json = httphelp

36、er.httprequest(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); 點擊

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

38、textra(id, list.get(position).getid(); startactivity(intent); ); menu 的實現(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); me

39、nu.add(0, 101, 0, 個人信息). seticon(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ù) 按鈕后,會執(zhí)行 humanservices 方法 private void humanservi

40、ces() final string arg = new string6; for (int i = 0; i 0) try jsonarray = new jsonarray(result); jsonobject = jsonarray.getjsonobject(0); (textview) findviewbyid(r.id.tvtoptitlecenter).settext(jsonobject.getstring(ti tle); (textview) findviewbyid(r.id.tvtoptitlecenter).settextsize(16); if (!textuti

41、ls.isempty(jsonobject.getstring(img_url) asyncimageloader.loadbitmap(serverurl + uploadfile/ + jsonobject.getstring(img_url), imageview1); string intro = 單價:¥ + jsonobject.getstring(price) + n; intro += 數(shù)量: + jsonobject.getstring(amount) + n; intro += 簡介: + jsonobject.getstring(intro) + n 配料: + json

42、object.getstring(burdennames); tvintro.settext(intro); catch (jsonexception e) e.printstacktrace(); 下單操作 使用 post 請求,提交數(shù)據(jù),實現(xiàn)代碼如下 /提交訂單的代碼 protected string doinbackground(string. params) string urlstring = appconstant.geturl(getapplicationcontext() + servletservice; map map = new hashmap(); map.put(ac

43、tion, createorder); map.put(dishesid, id); map.put(userid, 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.onp

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

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

46、(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ù)端模塊的實現(xiàn)服務(wù)端模塊的實現(xiàn) 服務(wù)端模塊具有兩方面作用,其一是給客戶端提供數(shù)據(jù)服務(wù)接口,客戶端調(diào) 用服務(wù)端的接口來得到數(shù)據(jù)庫里面的菜譜、訂單等所有數(shù)據(jù),然后顯示在客戶 端界面上。 服務(wù)端存在另外一個作用:保

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

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

49、示了管理員對用戶信息的操作過程和系統(tǒng)處理過程。 圖 22 用戶管理流程圖 運行情況如圖 23 所示: 圖 23 用戶管理信息圖 .4 訂單管理模塊的實現(xiàn)訂單管理模塊的實現(xiàn) 訂單管理模塊主要完成對訂單狀態(tài)的修改和刪除,訂單管理模塊作用流程 詳見圖 24。 圖 24 訂單管理流程圖 運行情況如圖 25 所示: 圖 25 訂單管理信息圖 5 5 系統(tǒng)測試系統(tǒng)測試 5.15.1 測試方法測試方法 測試是采用測試用例來檢測出程序可能存在錯誤,缺陷,失效和事故等影 響程序正常工作的問題的一項軟件活動,測試包括靜態(tài)與動態(tài)兩種,其中的靜 態(tài)測試包括靜態(tài)分析器分析,代碼評審等方式,動態(tài)測試包括黑

50、盒與白盒兩種, 灰盒測試與白盒、黑盒兩種類型均有一定區(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)安卓點餐系統(tǒng)版本 功能模塊名登錄模塊對應開發(fā)人員劉子杰 用例編號test1用例設(shè)計者劉子杰 測試人員劉子杰測試日期2015.5.13 功能特性驗證登錄密碼 測試目的驗證登陸用戶的密碼的是否正確 前置條件運行程序 測試步驟1、輸入正確密碼 2、輸入錯誤密碼 3、不輸入密碼 期望結(jié)果1、登陸成功。 2、登錄失敗 3、登陸失敗 實際結(jié)果與期望結(jié)果一致 結(jié)論登錄模塊功能正確

溫馨提示

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

評論

0/150

提交評論