




已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
鹽 城 師 范 學(xué) 院畢業(yè)設(shè)計(jì)基于Android平臺(tái)的校園點(diǎn)餐系統(tǒng)APP的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名 學(xué) 院 信息工程學(xué)院 專(zhuān) 業(yè) 軟件工程 班 級(jí) 學(xué) 號(hào) 指導(dǎo)教師 2016年5月16日鹽城師范學(xué)院畢業(yè)設(shè)計(jì)基于Android平臺(tái)的校園點(diǎn)餐系統(tǒng)APP的設(shè)計(jì)與實(shí)現(xiàn)摘 要近年來(lái)智能手機(jī)發(fā)展迅速,是人們獲取信息的主要渠道,Android平臺(tái)為人們享受電子生活提供了極大的便捷。由于Android技術(shù)的廣泛使用,手機(jī)訂餐將成為餐飲行業(yè)的主力軍,既方便了商家的管理,又為用戶(hù)提供了便捷,使得商家與用戶(hù)實(shí)現(xiàn)了共贏。本次設(shè)計(jì)主要研究的是基于Android平臺(tái)設(shè)計(jì)一款點(diǎn)餐APP,設(shè)計(jì)主要由Java語(yǔ)言編寫(xiě),實(shí)現(xiàn)了用戶(hù)和商家兩個(gè)模塊分別進(jìn)行管理和操作,針對(duì)兩者需求的不同,在開(kāi)發(fā)過(guò)程中實(shí)現(xiàn)的功能也有所差別。同時(shí)系統(tǒng)使用Android平臺(tái)中自帶的輕量級(jí)存儲(chǔ)類(lèi)來(lái)代替繁瑣的數(shù)據(jù)庫(kù)操作,在系統(tǒng)中廣泛使用布局控件,力爭(zhēng)給用戶(hù)留下一個(gè)操作簡(jiǎn)單、界面簡(jiǎn)潔的良好印象,讓用戶(hù)真正感受到電子生活的便利。【關(guān)鍵詞】Android平臺(tái);點(diǎn)餐APP;Java全套設(shè)計(jì)加扣 3012250582Campus point meal based on Android platform Design and implementation of system APPAbstractIn recent years, the rapid development of smart phones, is the main channel for people to obtain information, Android platform for people to enjoy the electronic life provides a great convenience. Due to the widespread use of Android technology, mobile phone ordering will become the main force in the food and beverage industry, both for the convenience of the business management, but also for the user to provide a convenient, making businesses and users to achieve a win-win situation.The design of the main research content is a meal App Design Based on the Android platform, design mainly by java language to write, The implementation of the management and operation of business users and two modules respectively, Business module realizes the registered shops, food additions and deletions, view order status, view order evaluation function, user module realizes the food query, collection, orders, purchase and evaluation function.System using the Android platform comes with lightweight storage class to replace cumbersome database operation, at the same time in the system widely used control layout, and strive to leave a operation simple, the interface is simple and good image to the user. Allow users to truly feel the convenience of electronic life.Key words Android platform, APP , Java目 錄1 引言11.1 研究背景及意義11.2研究的主要內(nèi)容12 系統(tǒng)開(kāi)發(fā)技術(shù)12.1 Java語(yǔ)言12.2 UI界面23 需求分析及系統(tǒng)設(shè)計(jì)23.1 需求分析23.1.1 系統(tǒng)需求23.1.2 功能需求33.2 系統(tǒng)設(shè)計(jì)43.2.1 設(shè)計(jì)概述43.2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)54 系統(tǒng)各模塊的設(shè)計(jì)與實(shí)現(xiàn)64.1 登錄64.1.1 新用戶(hù)注冊(cè)74.1.2用戶(hù)登錄74.2用戶(hù)84.2.1 首頁(yè)84.2.2店鋪界面94.2.3食物收藏104.2.4推薦界面114.2.5填寫(xiě)訂單114.2.6 我的收藏134.2.7 當(dāng)前訂單134.2.8 評(píng)價(jià)訂單164.3 商家174.3.1注冊(cè)店鋪184.3.2 增刪食物184.3.3 查看訂單狀態(tài)204.3.4 查看訂單評(píng)價(jià)205 系統(tǒng)測(cè)試與性能分析216 結(jié)束語(yǔ)22參考文獻(xiàn)23致 謝241 引言1.1 研究背景及意義隨著科技日新月異的發(fā)展,大學(xué)生與手機(jī)的關(guān)系越來(lái)越密切。以往的就餐模式已被越來(lái)越多的大學(xué)生所摒棄,而新興的網(wǎng)上訂餐卻受到越來(lái)越多的大學(xué)生的歡迎。食堂是大部分學(xué)生每天中午所要面對(duì)的,然而當(dāng)下課后看到大排長(zhǎng)龍的隊(duì)伍后,你還有進(jìn)餐的欲望嗎?基于此,設(shè)計(jì)一款A(yù)ndroid平臺(tái)的校園訂餐軟件,為廣大學(xué)生中午就餐提供方便的想法由此產(chǎn)生。學(xué)生使用此款軟件可在下課前查詢(xún)到中午食堂所提供的飯菜,進(jìn)而下單確認(rèn)食物,為下課吃飯節(jié)省了大量時(shí)間,也為食堂中午就餐減輕了壓力,學(xué)生亦可將食物帶回食用。同時(shí)商家也可根據(jù)每天的訂單來(lái)制作食物,提高了店鋪的工作效率。雖然目前市面上有著多款訂餐軟件,但卻缺少與食堂的合作,且APP只需下載安裝即可,十分方便,易在學(xué)生間傳播推廣,應(yīng)用前景廣泛。針對(duì)以上幾點(diǎn)現(xiàn)狀,故提出開(kāi)發(fā)一個(gè)基于Android平臺(tái)的點(diǎn)餐軟件。1.2研究的主要內(nèi)容系統(tǒng)的開(kāi)發(fā)使用Android Studio平臺(tái),設(shè)計(jì)語(yǔ)言使用Java語(yǔ)言,在實(shí)現(xiàn)系統(tǒng)各項(xiàng)功能的同時(shí),考慮到不同的用戶(hù)對(duì)功能的需求不同,系統(tǒng)設(shè)計(jì)了雙模塊來(lái)滿(mǎn)足所有人的需求。對(duì)于為了消費(fèi)的用戶(hù),系統(tǒng)實(shí)現(xiàn)了收藏、下單、評(píng)價(jià)等子功能模塊,同時(shí)對(duì)于商家而言,他們需要即時(shí)的更新店鋪信息,掌握最新的訂單狀態(tài),查看用戶(hù)對(duì)食物的評(píng)價(jià),及時(shí)作出改進(jìn)。2 系統(tǒng)開(kāi)發(fā)技術(shù)2.1 Java語(yǔ)言Java是常用的編程語(yǔ)言,Java的編程風(fēng)格和C+語(yǔ)言很像。Java將后綴為.class的文件交由虛擬機(jī)運(yùn)行,Java虛擬機(jī)執(zhí)行字節(jié)碼的過(guò)程就是一個(gè)循環(huán),它需要不斷地進(jìn)行安全性和合法性檢測(cè),直到程序運(yùn)行結(jié)束1。Java虛擬機(jī)首先需要將程序中的字節(jié)碼轉(zhuǎn)到內(nèi)存中;在內(nèi)存中進(jìn)行源代碼的安全性和合法性檢測(cè);然后解釋運(yùn)行結(jié)束的源代碼,計(jì)算機(jī)的機(jī)器代碼根據(jù)不同的計(jì)算機(jī)和操作系統(tǒng)對(duì)應(yīng)轉(zhuǎn)化而成,最后交給計(jì)算機(jī)運(yùn)行2。運(yùn)行原理如圖2-1所示。 圖2-1 Java虛擬機(jī)運(yùn)行原理2.2 UI界面UI通常是指用戶(hù)界面,它正在被越來(lái)越多的人所熟知,影響UI界面的因素有很多3。UI用戶(hù)界面從表面上看只有用戶(hù)與界面兩部分,但實(shí)際上可以分為三類(lèi),即:用戶(hù)研究、交互設(shè)計(jì)以及界面設(shè)計(jì)。用戶(hù)研究需要研究用戶(hù)的工作環(huán)境、產(chǎn)品的使用方式等,讓產(chǎn)品在前期開(kāi)發(fā)過(guò)程中可以將用戶(hù)期望的功能、對(duì)設(shè)計(jì)和外觀的要求融入進(jìn)整個(gè)產(chǎn)品的開(kāi)發(fā)過(guò)程中,幫助企業(yè)創(chuàng)造出一個(gè)合格的產(chǎn)品。交互設(shè)計(jì)是人與機(jī)器相互交流,它可以增進(jìn)人們的操作體驗(yàn),使計(jì)算機(jī)成為人類(lèi)生產(chǎn)生活中的幫手。界面設(shè)計(jì)需要定位用戶(hù)、用戶(hù)的使用方式等,一切為用戶(hù)設(shè)計(jì),檢驗(yàn)界面設(shè)計(jì)的標(biāo)準(zhǔn)是用戶(hù)的最終體驗(yàn)的感受,所以界面設(shè)計(jì)要和用戶(hù)研究相聯(lián)系4。3 需求分析及系統(tǒng)設(shè)計(jì)3.1 需求分析3.1.1 系統(tǒng)需求網(wǎng)絡(luò)和手機(jī)的普及正影響著每一個(gè)人的生活,大學(xué)生更是如此。每天中午下課后困擾學(xué)生最大的問(wèn)題就是就餐,食堂的窗口終究有限,很多學(xué)生都要排上很久才能打到飯,嚴(yán)重影響了生活節(jié)奏。如果利用身邊的手機(jī)和網(wǎng)絡(luò),不但可以避免人海,還可以安心的選擇自己喜愛(ài)的食物,并在自己需要的時(shí)間送達(dá),既方便又省心,大大節(jié)約了學(xué)生們的時(shí)間。商家也可根據(jù)系統(tǒng)中學(xué)生的訂單數(shù)量,來(lái)決定食物的搭配,避免了過(guò)多的剩余食物?;贏ndroid平臺(tái)設(shè)計(jì)的這款點(diǎn)餐APP很好的滿(mǎn)足了以上需求,減輕了食堂就餐高峰的壓力,操作簡(jiǎn)單,極易在學(xué)生之間推廣開(kāi)來(lái)。3.1.2 功能需求a. 登錄管理使用系統(tǒng)前用戶(hù)和商家都需要進(jìn)行登錄操作,登錄操作會(huì)校驗(yàn)用戶(hù)的賬戶(hù)和密碼,系統(tǒng)檢測(cè)通過(guò)后方可進(jìn)入。如果用戶(hù)是首次登錄那么還需要進(jìn)行注冊(cè)操作,用戶(hù)在輸入密碼時(shí)可勾選記住密碼,下次即可自動(dòng)登錄系統(tǒng)。b.商家管理商家進(jìn)入系統(tǒng)后首先需要?jiǎng)?chuàng)建一個(gè)店鋪,然后可進(jìn)行食物的增刪功能,商家可隨時(shí)查看用戶(hù)所下訂單的狀態(tài),根據(jù)狀態(tài)決定是否進(jìn)行配送,商家可在歷史訂單中查看到已完成的所有訂單,同時(shí)也可以查看到用戶(hù)對(duì)店鋪食物的評(píng)價(jià)情況,方便對(duì)食物進(jìn)行改善。c.用戶(hù)管理用戶(hù)在登錄系統(tǒng)后,可瀏覽食堂和商鋪,也可在推薦界面選擇自己喜愛(ài)的食物,用戶(hù)找到自己滿(mǎn)意的食物后,可選擇直接下單購(gòu)買(mǎi),也可選擇將食物進(jìn)行收藏,稍后再購(gòu)買(mǎi)食物。用戶(hù)在進(jìn)行下單操作后首先需要完善訂單信息,包括用戶(hù)的姓名、手機(jī)號(hào)碼、地址、數(shù)量等信息,填寫(xiě)完畢后系統(tǒng)會(huì)將訂單轉(zhuǎn)到我的訂單中,用戶(hù)可在我的訂單界面中查看訂單的當(dāng)前狀態(tài),點(diǎn)擊付款會(huì)彈出用戶(hù)的訂單信息,確認(rèn)后付款成功,等待食物的送達(dá),在收藏界面也可進(jìn)行購(gòu)買(mǎi)操作。食物送達(dá)后點(diǎn)擊取餐操作,完成取餐操作后,訂單會(huì)轉(zhuǎn)為歷史訂單,用戶(hù)可在歷史訂單界面中對(duì)食物進(jìn)行評(píng)價(jià)。詳細(xì)的系統(tǒng)功能用例圖如圖3-1所示。圖3-1 系統(tǒng)功能用例圖3.2 系統(tǒng)設(shè)計(jì)3.2.1 設(shè)計(jì)概述在本系統(tǒng)中,客戶(hù)端的使用者為用戶(hù),商家模塊的使用者為商家,因此系統(tǒng)應(yīng)分為兩部分建模設(shè)計(jì)實(shí)現(xiàn),如圖3-2所示。在客戶(hù)端,用戶(hù)首先需要注冊(cè)一個(gè)賬戶(hù)登錄系統(tǒng),登錄系統(tǒng)后可瀏覽商家和店鋪,選擇自己喜愛(ài)的食物下單,下單完成后前往個(gè)人中心確認(rèn)訂單并進(jìn)行付款,付款完成后即可等待食物的送達(dá)。訂單完成后可前往歷史訂單,對(duì)食物進(jìn)行評(píng)價(jià)。而在商家模塊,商家注冊(cè)賬號(hào)登錄系統(tǒng)后,如果是首次使用,則必須先進(jìn)行創(chuàng)建店鋪操作,然后在店鋪當(dāng)中增加或刪除自己的食物。用戶(hù)在進(jìn)行下單操作后,商家模塊可即時(shí)查看當(dāng)前訂單,當(dāng)訂單由未付款轉(zhuǎn)變?yōu)槲慈〔蜁r(shí),說(shuō)明用戶(hù)已付款,在等待食物的送達(dá),商家此時(shí)可進(jìn)行實(shí)物的配送。商家也可以在歷史訂單中查看已出售的食物情況,并可以看到用戶(hù)對(duì)食物的評(píng)價(jià)。校園點(diǎn)餐系統(tǒng)用戶(hù)商家瀏覽購(gòu)買(mǎi)食物刪除食物瀏覽購(gòu)買(mǎi)食物增加食物注冊(cè)店鋪評(píng)價(jià)訂單當(dāng)前訂單填寫(xiě)訂單收藏食物瀏覽購(gòu)買(mǎi)食物取消收藏購(gòu)買(mǎi)食物確認(rèn)付款取消訂單圖3-2 系統(tǒng)功能結(jié)構(gòu)圖3.2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)采用了Android Studio自帶的sharedpreference輕量級(jí)存儲(chǔ)類(lèi),通常用來(lái)保存應(yīng)用的一些配置,十分方便數(shù)據(jù)的讀取。系統(tǒng)從sharedpreference中獲取訂單產(chǎn)生的各項(xiàng)列表信息,并將信息存入一個(gè)訂單對(duì)象中,當(dāng)系統(tǒng)需再次調(diào)用這些信息時(shí),可直接從sharedreference中讀取5。系統(tǒng)根據(jù)需求分析,設(shè)計(jì)出了以下數(shù)據(jù)庫(kù)表,記錄用戶(hù)信息、訂單信息以及歷史訂單信息。1)用戶(hù)信息表:存放用戶(hù)的基本信息,如表3-1所示。表3-1 用戶(hù)注冊(cè)信息表字段名稱(chēng)數(shù)據(jù)類(lèi)型字段大小是否主鍵說(shuō)明描述tv_phoneint20是手機(jī)號(hào)碼tv_pwdchar30否密碼2)訂單信息表:存儲(chǔ)用戶(hù)的訂單信息,如表3-2所示。表3-2 訂單信息表字段名稱(chēng)數(shù)據(jù)類(lèi)型字段大小是否主鍵說(shuō)明描述ownNamechar20是姓名ownPhoneint20是手機(jī)號(hào)碼續(xù)表3-2ownAddresschar50否地址ownNumint100否數(shù)量3)歷史訂單信息表:存放用戶(hù)訂單評(píng)價(jià)信息,如圖3-3所示。表3-3 歷史訂單信息表字段名稱(chēng)數(shù)據(jù)類(lèi)型字段大小是否主鍵說(shuō)明描述iv_restaurantchar20否餐館名稱(chēng)tv_namechar20是商品名稱(chēng)addresschar50否商鋪地址Timechar50是下單時(shí)間Jiagefloat10否商品價(jià)格Numint100否商品數(shù)量Moneyfloat10否總金額Pingjiachar200否評(píng)價(jià)4 系統(tǒng)各模塊的設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)各功能模塊的設(shè)計(jì)需要有一個(gè)清晰簡(jiǎn)潔的設(shè)計(jì)思路,并將其貫徹在整個(gè)開(kāi)發(fā)過(guò)程當(dāng)中,才能設(shè)計(jì)出符合要求的系統(tǒng)。在用戶(hù)模塊,按照用戶(hù)登錄瀏覽食物填寫(xiě)訂單確認(rèn)訂單付款評(píng)價(jià)食物的流程來(lái)進(jìn)行詳細(xì)的子功能模塊設(shè)計(jì);在商家模塊,則按照商家登錄注冊(cè)店鋪增刪食物查看訂單狀態(tài)查看訂單評(píng)價(jià)的思路來(lái)進(jìn)行子功能模塊的設(shè)計(jì)。有了清晰的設(shè)計(jì)思路,子功能模塊的具體實(shí)現(xiàn)就會(huì)變得得心應(yīng)手,按照設(shè)計(jì)的流程一步步來(lái)實(shí)現(xiàn)。4.1 登錄登錄功能作為整個(gè)設(shè)計(jì)的入口,必須慎重編寫(xiě),它應(yīng)該具有一定的辨別能力,能夠判斷出用戶(hù)的賬號(hào)和密碼信息是正確的,才能授予權(quán)限進(jìn)入系統(tǒng),所以登錄模塊能否準(zhǔn)確的判斷用戶(hù)名和密碼就顯得尤為重要6。4.1.1 新用戶(hù)注冊(cè)首先進(jìn)入登錄界面,點(diǎn)擊“注冊(cè)賬號(hào)”按鈕,即代碼中的Button register會(huì)跳轉(zhuǎn)到一個(gè)新的activity頁(yè)面,如圖4-1所示,用戶(hù)在這里需要選擇是買(mǎi)家或是商家的身份來(lái)進(jìn)行注冊(cè),可分別進(jìn)入相對(duì)應(yīng)的系統(tǒng)中進(jìn)行后續(xù)操作。圖4-1 新用戶(hù)注冊(cè)界面新用戶(hù)需要完善信息才能注冊(cè)成功,特別注意的是用戶(hù)需要正確填寫(xiě)手機(jī)號(hào)方可登錄,這是用了EditText中有一個(gè)屬性 inputtype輸入類(lèi)型,將它設(shè)置為phone,系統(tǒng)會(huì)自動(dòng)檢測(cè)輸入的是否為11位數(shù)字7。點(diǎn)擊注冊(cè)后,用戶(hù)的賬號(hào)和密碼信息會(huì)保存到存儲(chǔ)類(lèi)sharedpreference中。注冊(cè)完成后,系統(tǒng)會(huì)跳轉(zhuǎn)到登錄界面,用戶(hù)的賬號(hào)會(huì)在輸入框中顯示,省去輸入密碼的過(guò)程。4.1.2用戶(hù)登錄用戶(hù)注冊(cè)成功會(huì)關(guān)閉注冊(cè)頁(yè)面,并且將注冊(cè)的賬號(hào)通過(guò)setResult方法返回給登錄頁(yè),在賬號(hào)輸入框中顯示,省去輸入密碼的過(guò)程。點(diǎn)擊登錄系統(tǒng)會(huì)驗(yàn)證本地?cái)?shù)據(jù)中是否有與之匹配的數(shù)據(jù),驗(yàn)證通過(guò)方可進(jìn)入系統(tǒng),如圖4-2所示。當(dāng)輸完密碼后可選擇記住密碼功能,系統(tǒng)會(huì)在本地內(nèi)存中保存用戶(hù)的賬號(hào)和密碼,用戶(hù)再次進(jìn)入系統(tǒng)時(shí),會(huì)從sharedpreference中直接讀取用戶(hù)的賬號(hào)密碼信息。這是通過(guò)代碼中remember_pwd,直接調(diào)用chenck類(lèi),由系統(tǒng)每次去自動(dòng)識(shí)別密碼是否正確。圖4-2 登錄界面登錄模塊的系統(tǒng)流程圖如圖4-3所示。用戶(hù)辨別輸入信息進(jìn)入系統(tǒng)登錄Y商家 N 圖4-3 系統(tǒng)登錄流程圖4.2用戶(hù)用戶(hù)進(jìn)入系統(tǒng)后,首先可以在首頁(yè)和推薦界面瀏覽各個(gè)店鋪的食物,尋找符合自己口味的,在找到滿(mǎn)意的食物后,用戶(hù)有兩個(gè)選擇:1.可以點(diǎn)擊食物上方的收藏按鈕,將食物添加到我的收藏界面;2.直接購(gòu)買(mǎi)食物,完成訂單。4.2.1 首頁(yè)食堂與店鋪是整個(gè)訂餐軟件的靈魂和主體,所有的功能都是圍繞他們而展開(kāi),所以它與各個(gè)模塊之間都有著密不可分的聯(lián)系。訂餐軟件的UI界面不可過(guò)于復(fù)雜,以免影響用戶(hù)體驗(yàn)。用戶(hù)模塊頁(yè)面是由3個(gè)Fregment控件來(lái)分別顯示首頁(yè)、推薦以及我的頁(yè)面,下面為3個(gè)SingleButton按鈕,分別為首頁(yè)、推薦和我的8。通過(guò)點(diǎn)擊3個(gè)按鈕會(huì)顯示對(duì)應(yīng)的Fragment,并且隱藏其他2個(gè)Fragment,由此達(dá)到切換頁(yè)面的效果。首頁(yè)如圖4-4所示。圖4-4 首頁(yè)界面風(fēng)格清晰簡(jiǎn)單,最上方是一個(gè)滾動(dòng)圖片,顯示最近熱門(mén)食物,實(shí)現(xiàn)方式也很簡(jiǎn)單,讓這個(gè)類(lèi)繼承RelativeLayout,并實(shí)現(xiàn)OnTouchListener接口。接下來(lái)就是所需要選擇的食堂了。這里模擬了4個(gè)食堂供學(xué)生選擇,學(xué)生在下課可選擇離自己最近的一個(gè)食堂訂餐,也可以點(diǎn)開(kāi)食堂,查看里面的店鋪所提供的食物是否符合自己的口味,選擇滿(mǎn)意的一家訂餐。食堂的排版用fragment框架布局控件即可完成。4.2.2店鋪界面選擇一個(gè)食堂點(diǎn)擊進(jìn)入,例如選擇東區(qū)食堂,進(jìn)入會(huì)將所有店鋪以列表形式呈現(xiàn),店鋪的一些信息也會(huì)列出來(lái)供使用者參考選擇,不同的食堂有著不同的店鋪,選擇十分廣泛,顧及到了所有口味的同學(xué)。圖4-5東區(qū)食堂4.2.3食物收藏選擇山西面館點(diǎn)擊進(jìn)入,這里采用了listview布局,食物通過(guò)列表的方式呈現(xiàn)在使用者面前,一目了然9。可以從界面中看到除了食物之外還有兩個(gè)button按鈕-購(gòu)買(mǎi)與收藏,點(diǎn)擊購(gòu)買(mǎi)即可進(jìn)行購(gòu)買(mǎi)操作,另外一個(gè)愛(ài)心形狀的按鈕則是收藏功能,用戶(hù)可在自己喜愛(ài)的食物點(diǎn)亮愛(ài)心圖標(biāo),即可將食物加入“我的收藏”中,食物在加入到我的收藏界面后,用戶(hù)可進(jìn)行購(gòu)買(mǎi)操作,如用戶(hù)不喜歡該款食物直接再次點(diǎn)擊原食物上方的收藏按鈕即可取消收藏,十分方便,如圖4-6所示。圖4-6 食物收藏4.2.4推薦界面選擇最下方的推薦按鈕即可顯示推薦界面,頁(yè)面由ListView實(shí)現(xiàn),在推薦界面可看到熱門(mén)食物以及一些好評(píng)度較高的食物,為一些有選擇困難癥的同學(xué)提供了一個(gè)很好的選擇。購(gòu)買(mǎi)方式則與商鋪列表相同。下方的首頁(yè)、推薦、我的三個(gè)按鈕,是在Activity的布局文件中添加三個(gè)按鈕。圖4-7 推薦界面4.2.5填寫(xiě)訂單下單界面由一個(gè)Dialog對(duì)話(huà)框?qū)崿F(xiàn),對(duì)話(huà)框布局采用LinerLayout線(xiàn)性布局豎向排列,布局填充4個(gè)TextView和4個(gè)EditText,TextView顯示文字,EditText為輸入框10。該對(duì)話(huà)框使用分為兩種情況,一是在瀏覽食物時(shí)直接選擇購(gòu)買(mǎi)填寫(xiě)訂單使用,二是在收藏列表中將已收藏的食物進(jìn)行勾描,兩者的訂單界面是一致的。用戶(hù)下單首先需要將信息填寫(xiě)正確完整。填寫(xiě)完畢后,點(diǎn)擊確認(rèn)按鈕觸發(fā)事件,系統(tǒng)將訂單數(shù)據(jù)添加到sharedpreference數(shù)據(jù)集合中。SharedPreference是android平臺(tái)提供的一個(gè)類(lèi),它是一個(gè)輕量級(jí)的存儲(chǔ)類(lèi),這個(gè)類(lèi)可以用來(lái)保存一些應(yīng)用程序需要的配置或簡(jiǎn)單的數(shù)據(jù)。圖4-8 下單界面用戶(hù)界面即軟件中“我的”按鈕選項(xiàng),這里會(huì)顯示當(dāng)前登錄的用戶(hù),用戶(hù)當(dāng)前的訂單情況,收藏情況以及歷史訂單情況。在這里實(shí)現(xiàn)了訂餐軟件的大部分功能及售后,如圖4-9所示。圖4-9 我的界面4.2.6 我的收藏收藏界面用于顯示用戶(hù)收藏的食物,系統(tǒng)會(huì)讀取存儲(chǔ)在sharedpreference中的收藏集合列表,如果列表集合長(zhǎng)度為0,則顯示暫無(wú)訂單,若不為0,讀取集合數(shù)據(jù),將數(shù)據(jù)傳遞給listview適配器中顯示數(shù)據(jù)列表。圖4-10 我的收藏4.2.7 當(dāng)前訂單訂單是整個(gè)系統(tǒng)的核心業(yè)務(wù),用戶(hù)的訂單產(chǎn)生流程如下。圖4-11 用戶(hù)訂單用例圖用戶(hù)首先進(jìn)入我的訂單頁(yè)面中,系統(tǒng)會(huì)讀取存儲(chǔ)在sharedpreference中的訂單集合列表,如果列表集合長(zhǎng)度為0,則顯示暫無(wú)訂單,若不為0,讀取集合數(shù)據(jù),傳遞給listview列表適配器中顯示數(shù)據(jù)列表。如圖4-12所示。用戶(hù)找到自己所下的訂單,然后點(diǎn)擊付款按鈕,當(dāng)點(diǎn)擊付款時(shí)會(huì)根據(jù)點(diǎn)擊的條目所在位置position獲取該訂單信息,彈出對(duì)話(huà)框,并顯示用戶(hù)訂單信息,點(diǎn)擊確定則將該訂單中的isPay字段設(shè)為true,然后將訂單信息保存,并且刷新適配器,適配器會(huì)刷新列表,更新訂餐的當(dāng)前狀態(tài),付款成功。點(diǎn)擊取餐系統(tǒng)會(huì)同樣根據(jù)position讀取訂單對(duì)象信息,將訂單中isTake字段設(shè)為true,并且把這個(gè)訂單對(duì)象保存到sharedpreference中的已完成的訂單列表信息中,然后把當(dāng)前列表的該訂單刪除,保存兩個(gè)列表,刷新列表適配器。如果用戶(hù)想放棄訂單可點(diǎn)擊取消按鈕,該訂單即被刪除。圖4-12用戶(hù)訂單圖4-13確認(rèn)信息訂單界面功能實(shí)現(xiàn)詳細(xì)代碼如下:if (orders.getOrders().get(position).isPay()holder.buy.setText(取餐); /設(shè)置顯示為取餐holder.delete.setVisibility(View.INVISIBLE);/隱藏取消按鈕 else holder.buy.setText(付款); /設(shè)置顯示為付款/設(shè)置付款按鈕點(diǎn)擊事件holder.buy.setOnClickListener(new View.OnClickListener() Overridepublic void onClick(View v) /判斷是否已付款if (orders.getOrders().get(position).isPay() /訂單信息中設(shè)置已取餐orders.getOrders().get(position).setTake(true);/保存訂單信息SPUtil.getInstance(context).save(orders, new Gson().toJson(orders).toString();/彈出提示信息ToastUtil.showShortMessage(取餐成功);EventBus.getDefault().post(new OrderEvent(); else /未付款彈出付款對(duì)話(huà)框showDialog(position); /設(shè)置取消按鈕點(diǎn)擊事件holder.delete.setOnClickListener(new View.OnClickListener() Overridepublic void onClick(View v) /訂單集合刪除當(dāng)前訂單orders.getOrders().remove(position);/保存訂單信息SPUtil.getInstance(context).save(orders, new Gson().toJson(orders).toString();notifyDataSetChanged(); /刷新listviewToastUtil.showShortMessage(取消成功); /提示信息 4.2.8 評(píng)價(jià)訂單在歷史訂單中,用戶(hù)可以看到已完成的訂單,可以對(duì)這些訂單進(jìn)行評(píng)價(jià)。用戶(hù)點(diǎn)擊歷史訂單詳情頁(yè)面時(shí),會(huì)在開(kāi)啟頁(yè)面時(shí)傳入一個(gè)int類(lèi)型的position,它是點(diǎn)擊列表?xiàng)l目的位置值,然后進(jìn)入頁(yè)面后讀取保存的已完成訂單列表集合,通過(guò)position獲取該已完成訂單信息,然后顯示數(shù)據(jù)。圖4-14 歷史訂單已完成頁(yè)面中,系統(tǒng)讀取已完成列表信息,如果已訂單集合長(zhǎng)度為0,則顯示暫無(wú)訂單,不為0 ,將數(shù)據(jù)列表集合傳遞給listview適配器,顯示已完成訂單列表,判斷訂單中assess字符串不為空,表示該訂單已經(jīng)做出評(píng)價(jià),不顯示評(píng)價(jià)按鈕。如果assess為空則顯示評(píng)價(jià)按鈕,點(diǎn)擊評(píng)價(jià)會(huì)彈出對(duì)話(huà)框評(píng)價(jià),評(píng)價(jià)后會(huì)將評(píng)價(jià)信息保存到當(dāng)前訂單對(duì)象中,然后保存列表,刷新列表。圖4-15 評(píng)價(jià)界面下圖是一個(gè)完整訂單的主要流程及所用到的功能,用戶(hù)操作并不復(fù)雜,且各項(xiàng)功能都較為完善,詳細(xì)的下單流程如圖4-16所示。評(píng)價(jià)取餐用戶(hù)瀏覽收藏食物購(gòu)買(mǎi)食物購(gòu)買(mǎi)食物取消訂單生成訂單付款確認(rèn)圖4-16 下單流程圖4.3 商家系統(tǒng)由用戶(hù)模塊與商家模塊組成,用戶(hù)模塊的功能劃分較為細(xì)致,而商家模塊相比用戶(hù)模塊的界面就要簡(jiǎn)潔許多,但是功能卻不簡(jiǎn)潔,商家所需的功能都包含其中,能夠有效地處理用戶(hù)的訂單。商家模塊的操作都可以即時(shí)的反饋到用戶(hù)模塊,保證了用戶(hù)所得到的信息都是最新的,同時(shí)用戶(hù)模塊的操作也會(huì)及時(shí)更新在商家模塊當(dāng)中,讓商家可以根據(jù)訂單狀態(tài)來(lái)進(jìn)行食物的搭配,商家也可以看到用戶(hù)對(duì)食物的評(píng)價(jià),針對(duì)用戶(hù)的意見(jiàn)對(duì)食物作出改進(jìn)。圖4-17 商家模塊4.3.1注冊(cè)店鋪商家注冊(cè)進(jìn)入系統(tǒng)后,如果是首次使用本系統(tǒng),需要完善商鋪的信息方可進(jìn)行后續(xù)操作。商家需要填寫(xiě)店鋪的所在位置、店鋪名稱(chēng)等信息。根據(jù)選擇的食堂,在sharedpreference中讀取食堂數(shù)據(jù)列表,然后找到指定食堂的數(shù)據(jù)添加餐廳對(duì)象將餐廳的名稱(chēng)等信息保存到數(shù)據(jù)中,點(diǎn)擊確定后創(chuàng)建成功,此時(shí)用戶(hù)模塊也會(huì)刷新,在指定位置生成新的商家店鋪。圖4-18 注冊(cè)商鋪界面4.3.2 增刪食物商家創(chuàng)建成功店鋪后,還需要進(jìn)行食物的增加操作。點(diǎn)擊增加時(shí)會(huì)讀取商家是否已設(shè)置食堂和餐廳名稱(chēng),若沒(méi)有設(shè)置會(huì)提示先設(shè)置食堂和餐廳名稱(chēng)。已經(jīng)設(shè)置則彈出Dialog對(duì)話(huà)框添加食物。食物需要填寫(xiě)食物名稱(chēng)和價(jià)格信息,添加食物時(shí)系統(tǒng)會(huì)在sharedpreference中讀取商鋪的食物列表,在指定商鋪當(dāng)中創(chuàng)建一個(gè)Food食物對(duì)象,并將食物名稱(chēng)和價(jià)格保存到食物Food對(duì)象中,保存后用戶(hù)模塊同樣會(huì)刷新出新的食物。點(diǎn)擊刪除食物時(shí),會(huì)出現(xiàn)Dialog提示框用來(lái)確認(rèn),確認(rèn)后系統(tǒng)會(huì)在sharedpreference的該店鋪食物列表中刪除此食物11。然后刷新ListView,增刪食物如圖4-19和4-20所示。 圖4-19 增加食物 圖4-20 刪除食物添加食物和刪除食物核心代碼如下:/獲取商家食物信息CanteenDataDetail canteenDataDetail = localData.getCanteen().get(id).getData().get(2);/設(shè)置菜名 holder.tv_name.setText(canteenDataDetail.getFood().get(position).getName();/設(shè)置價(jià)格holder.price.setText(價(jià)格: + canteenDataDetail.getFood().get(position).getPrice() + 元);return convertView;private void showDialog(final int position) /刪除對(duì)話(huà)框AlertDialog dlg = new AlertDialog.Builder(context) .setTitle(刪除) /設(shè)置標(biāo)題.setMessage(確定要?jiǎng)h除嗎?) /設(shè)置提示信息/確定點(diǎn)擊事件.setPositiveButton(確定, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int whichButton) /刪除當(dāng)前食物信息 localData.getCanteen().get(id).getData().get(2).getFood().remove(position);/保存食物信息SPUtil.getInstance(context).save(localData,new Gson().toJson(localData).toString();/刷新Listview notifyDataSetChanged();dialog.dismiss(); 4.3.3 查看訂單狀態(tài)商家在當(dāng)前訂單中可以查看到用戶(hù)在自己商鋪中購(gòu)買(mǎi)的食品,頁(yè)面由ListView顯示,讀取用戶(hù)訂單信息,通過(guò)判斷訂單信息中isPay來(lái)顯示是否已付款,isPay為true表示已付款,isPay為false表示未付款,并能夠查看到訂單是否付款,系統(tǒng)會(huì)讀取所有的訂單,通過(guò)判斷餐廳的名字,篩選出與餐廳相同名字的訂單,查看當(dāng)前訂單的狀態(tài)。圖4-21 訂單狀態(tài)4.3.4 查看訂單評(píng)價(jià)商家在歷史訂單中可以查看到本店過(guò)往食物的下單情況,并可以看到用戶(hù)對(duì)食物的評(píng)價(jià),商家點(diǎn)擊歷史訂單,系統(tǒng)會(huì)在sharedpreferenc中拉取所有的歷史訂單并根據(jù)餐廳名稱(chēng)匹配到與之對(duì)應(yīng)的歷史訂單,點(diǎn)開(kāi)訂單即可看到用戶(hù)對(duì)食物的評(píng)價(jià)情況。圖4-22 歷史訂單詳情5 系統(tǒng)測(cè)試與性能分析系統(tǒng)測(cè)試是為了整個(gè)系統(tǒng)產(chǎn)品的測(cè)試,目的是為了驗(yàn)證是否滿(mǎn)足需求的定義找出和需求不同的地方,提出更加完善的方案。本系統(tǒng)測(cè)試表如表5-1所示。表5-1 系統(tǒng)測(cè)試項(xiàng)目名稱(chēng)基于Android平臺(tái)的校園點(diǎn)餐系統(tǒng)APP測(cè)試環(huán)境硬件:PC機(jī)一臺(tái),手機(jī)一部操作系統(tǒng):window7 64位 Android 4.2版本軟件:Android Studio作者李彬測(cè)試時(shí)間2016.4.11測(cè)試編號(hào)測(cè)試對(duì)象測(cè)試步驟預(yù)期結(jié)果實(shí)際結(jié)果1用戶(hù)注冊(cè)新用戶(hù)產(chǎn)生新用戶(hù)一致2用戶(hù)輸入用戶(hù)名和密碼進(jìn)入系統(tǒng)一致3用戶(hù)勾選記住密碼退出重新登錄進(jìn)入系統(tǒng)一致4用戶(hù)選擇一個(gè)食堂跳轉(zhuǎn)到店鋪界面一致5用戶(hù)選擇一個(gè)店鋪跳轉(zhuǎn)到食物界面一致6用戶(hù)收藏食物到我的收藏中查看收藏成功一致7用戶(hù)點(diǎn)擊購(gòu)買(mǎi)跳出訂單一致8用戶(hù)填寫(xiě)訂單信息到當(dāng)前訂單中查看下單成功一致續(xù)表5-19用戶(hù)點(diǎn)擊付款跳出訂單信息一致10用戶(hù)訂單信息點(diǎn)擊確認(rèn)訂單界面刷新一致11用戶(hù)點(diǎn)擊取餐訂單界面刷新一致12用戶(hù)歷史訂單界面點(diǎn)擊評(píng)價(jià)跳出評(píng)價(jià)界面一致13用戶(hù)填寫(xiě)評(píng)價(jià)刷新歷史訂單界面一致14商家注冊(cè)新用戶(hù)產(chǎn)生新用戶(hù)一致15商家注冊(cè)新店鋪用戶(hù)模塊產(chǎn)生新店鋪一致16商家增加食物用戶(hù)模塊增加食物一致17商家刪除食物用戶(hù)模塊刪除食物一致18商家查看當(dāng)前訂單刷新當(dāng)前訂單列表一致19商家查看歷史訂單刷新歷史訂單列表一致20商家退出登錄回到登錄頁(yè)面一
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025河南中鋼網(wǎng)集團(tuán)招聘筆試歷年參考題庫(kù)附帶答案詳解
- 2025北京通建信信息系統(tǒng)有限公司濰坊分公司招聘20人筆試歷年參考題庫(kù)附帶答案詳解
- 2025華僑大學(xué)(泉州)資產(chǎn)經(jīng)營(yíng)有限公司招聘人事主管筆試歷年參考題庫(kù)附帶答案詳解
- 行政復(fù)議法試題及答案
- 醫(yī)保宣傳課件題目設(shè)計(jì)
- PVCS膠帶項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 2025年中國(guó)巡更系統(tǒng)行業(yè)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 邏輯思維能力教學(xué)課件
- 農(nóng)村新能源與綠色農(nóng)業(yè)開(kāi)發(fā)合作協(xié)議
- 10.4日心說(shuō)與太陽(yáng)系 課件 物理蘇科版八年級(jí)下冊(cè)
- 山東醫(yī)藥技師學(xué)院招聘筆試真題2024
- GC/T 1401-2022國(guó)家物資儲(chǔ)備標(biāo)志及使用規(guī)范
- QC小組活動(dòng)記錄【范本模板】
- JJF 1334-2012混凝土裂縫寬度及深度測(cè)量?jī)x校準(zhǔn)規(guī)范
- GB/T 3683-2011橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強(qiáng)液壓型規(guī)范
- GB/T 3003-2017耐火纖維及制品
- GB/T 1094.1-2013電力變壓器第1部分:總則
- 二維動(dòng)畫(huà)課件
- 經(jīng)濟(jì)責(zé)任審計(jì)報(bào)告
- 五年級(jí)語(yǔ)文上冊(cè)各單元作文范文
- 貴港市國(guó)有建設(shè)用地改變土地使用條件方案
評(píng)論
0/150
提交評(píng)論