基于IOS平臺點菜系統(tǒng)的設(shè)計與開發(fā)畢業(yè)論文_第1頁
基于IOS平臺點菜系統(tǒng)的設(shè)計與開發(fā)畢業(yè)論文_第2頁
基于IOS平臺點菜系統(tǒng)的設(shè)計與開發(fā)畢業(yè)論文_第3頁
基于IOS平臺點菜系統(tǒng)的設(shè)計與開發(fā)畢業(yè)論文_第4頁
基于IOS平臺點菜系統(tǒng)的設(shè)計與開發(fā)畢業(yè)論文_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

29/35本科畢業(yè)論文(設(shè)計)(2015屆)題目:基于IOS平臺點菜系統(tǒng)的設(shè)計與開發(fā)系(部):數(shù)學(xué)與計算機科學(xué)系專業(yè):計算機科學(xué)與技術(shù)學(xué)生:學(xué)號:指導(dǎo)教師:職稱(學(xué)位):合作導(dǎo)師:職稱(學(xué)位):完成時間:2015年4月20日池州學(xué)院教務(wù)處制學(xué)位論文原創(chuàng)性聲明本人所提交的學(xué)位論文,是在指導(dǎo)老師指導(dǎo)下獨立完成的研究成果。本人在論文寫作中參考的其他個人或集體的研究成果,均在文中以明確方式標(biāo)明。本人依法享有和承擔(dān)由此論文而產(chǎn)生的權(quán)利和責(zé)任。聲明人(簽名):年月日目錄TOC\o"1-3"摘要IAbstract II1緒論11.1選題背景11.2點菜系統(tǒng)的發(fā)展現(xiàn)狀11.3點菜系統(tǒng)開發(fā)的意義21.4開發(fā)工具與使用技術(shù)介紹21.4.1Objective-C概述21.4.2Xcode概述31.4.3MVC概述31.4.4SQLite數(shù)據(jù)庫31.4.5/TCP通信42系統(tǒng)需求分析52.1項目概述52.1.1項目名稱52.1.2項目目標(biāo)52.1.3系統(tǒng)圍和系統(tǒng)邊界52.1.4功能概述52.1.5業(yè)務(wù)流程圖52.2詳細(xì)功能需求62.3系統(tǒng)運行環(huán)境分析73系統(tǒng)設(shè)計83.1功能模塊設(shè)計83.1.1設(shè)計的概念83.1.2系統(tǒng)數(shù)據(jù)模型實體關(guān)系83.2數(shù)據(jù)庫設(shè)計93.2.1數(shù)據(jù)庫關(guān)系圖93.2.2數(shù)據(jù)庫作用表103.2.3數(shù)據(jù)庫信息表103.2.4APP功能模塊預(yù)覽113.3前臺功能設(shè)計123.4后臺功能設(shè)計124系統(tǒng)實現(xiàn)144.1前臺功能模塊的實現(xiàn)144.1.1首頁功能144.1.2點菜功能144.1.3一鍵分享154.1.4菜單功能174.1.5餐位選擇和送單184.1.6歷史菜單184.2后臺等功能的實現(xiàn)184.2.1廚房端接受數(shù)據(jù)184.2.2收銀端結(jié)賬195系統(tǒng)測試205.1測試目的和概念205.2測試原理205.3測試用例設(shè)計205.4測試結(jié)果216結(jié)論276.1點菜系統(tǒng)的總結(jié)和不足276.2點菜系統(tǒng)未來的改進(jìn)設(shè)想27參考文獻(xiàn)28致29摘要社會隨著科技而發(fā)展,生活因科技而多姿。在移動互聯(lián)網(wǎng)飛速發(fā)展的今天,手機,iPad的使用越來越普遍,而去餐館就餐問題是人們交流相處必不可少的一部分,電子點菜是餐館點菜發(fā)展的必然途徑之一。本系統(tǒng)設(shè)計容包括電子點菜,修改電子菜單,查看歷史菜單與發(fā)送菜單等。本系統(tǒng)的主要特點有:本系統(tǒng)采用MVC格式來編寫代碼,代碼可維護性大大增強,使用iOS自帶的Sqlite3數(shù)據(jù)庫來實現(xiàn)存儲,用戶界面簡潔美觀,可操作性強。使用本系統(tǒng)可以提高餐館的服務(wù)質(zhì)量和工作效率,可以改變點餐方式,從而實現(xiàn)餐館改革。從而獲得更大的收益,同時也豐富現(xiàn)代人追求潮流,與時俱進(jìn)的生活品質(zhì)。關(guān)鍵詞:iOS;app;點菜;Objective-C;AbstractWiththedevelopmentscienceofsociety,livingiscolorfulduetotechnology.WiththerapiddevelopmentofmobileInternettoday,mobilephone,iPadisusedmoreandmorewidely,andgotoarestaurantispartofpeoplecommunicatealongessential,Electronicorderingisoneoftheinevitablewaytothedevelopmentofalacarterestaurant.Thedesignofthesystemincludeselectronicordering,modifytheelectronicmenu,menuandmenusendviewhistory.Themaincharacteristicsofthissystemare:thesystemusestheMVCformattowritethecode,codeMaintainabilitygreatlyenhanced,torealizethestorageusingiOSwithSqlite3database,theuserinterfaceissimpleandbeautiful,andthemaneuverabilityisstrong.Thedesignofthissystemisthecoreobjectiveistoimprovetherestaurantservicequalityandworkefficiency,youcanchangetheorder,soastorealizethereformoftherestaurant.Toobtainmoreincome,butalsoenrichthepursuitofmodernfashion,thelifequalityofadvancingwiththetimes.Keywords:ios;app;order;objective-c;1緒論1.1選題背景隨著電子產(chǎn)業(yè)的飛速發(fā)展,越來越多的行業(yè)都被電子產(chǎn)品所滲透,這種滲透促進(jìn)了企業(yè)管理的發(fā)展,而餐飲業(yè)作為我國第三產(chǎn)業(yè)中的一個傳統(tǒng)服務(wù)行業(yè),始終保持著旺盛的發(fā)展趨勢,展現(xiàn)出繁榮的新局面,電子產(chǎn)品更是在方方面面影響著人們的生活,顧客對點餐流程的自動化需求變得迫切,電子點餐就是在這種背景中隨之而生。

自從2010年4月蘋果公司推出iPad平板電腦,這一設(shè)備作為菜單系統(tǒng)如今被應(yīng)用到高級餐廳、漢堡店以與快餐連鎖店。著名快餐連鎖店AuBonPain的220家分店幾乎一半使用了這種點餐設(shè)備,并且數(shù)量正在增加。美國紐約的4Food漢堡亭已經(jīng)有8家配備了這種設(shè)備,并計劃把數(shù)量增加到30家。在國,iOS設(shè)備持有率達(dá)2億,用戶量大,iPad點餐早已普與,在國約有60%以上的高檔餐廳引進(jìn)了iPad點餐,iOS系統(tǒng)以自己獨特的魅力深深的影響著人們,所以這款A(yù)PP為蘋果的iPad定制使用。適用于中、高低檔餐館。用于顧客就餐點菜。餐館使用iPad點菜本身就能提升餐館的檔次,吸引顧客前來就餐,滿足顧客的體驗;還能減少由于點餐交流造成的溝通上的失誤,就餐館本身而言,這種在iPad上點菜的APP,是一次性投入,永久使用,節(jié)省了服務(wù)員,也節(jié)約餐館更換菜單的成本,提高了工作效率,為餐館運營節(jié)省大量成本。1.2 點菜系統(tǒng)的發(fā)展現(xiàn)狀就餐飲行業(yè)目前的形勢而言,競爭相當(dāng)之激烈,在這種競爭環(huán)境中,誰能夠比別人多前進(jìn)一步,那么誰就會獲取比他人更多的利潤。比如在提高餐館的管理水平,控制餐館的成本輸出,提高服務(wù)效率意識等方面就會變得更為的重要。而恰恰iPad點菜系統(tǒng)的應(yīng)用正是為了解決這些問題所在,其信息化、智能化優(yōu)勢相比傳統(tǒng)服務(wù)方式明顯要高出相當(dāng)一個檔次。這既是技術(shù)發(fā)展的現(xiàn)狀使然,更是市場發(fā)展的必要使然。多數(shù)餐館現(xiàn)用點菜方式為傳統(tǒng)的點菜方式,面對餐飲行業(yè)高速發(fā)展的今天,暴漏出傳統(tǒng)點菜模式的缺陷也很明顯;餐館管理層對于餐館的管理也越來越麻煩。餐飲業(yè)傳統(tǒng)的點菜方式純屬人工操作,因此繁重的工作量、高比例的人為錯誤是嚴(yán)重影響工作效率的重要原因,如人工傳遞單據(jù)浪費時間,效率低下,而且影響翻臺率。經(jīng)營大規(guī)模餐館,存儲的菜系的信息量大,導(dǎo)致下單、傳菜等變得越多越容易出現(xiàn)差錯,會直接影響到餐館的服務(wù)質(zhì)量以與工作效率。只靠人工無法實現(xiàn)真正的滿足現(xiàn)代企業(yè)管理的理念,故使用新的科技可以讓餐飲行業(yè)得到更好的發(fā)展。目前國有很多做的很好的智能餐飲系統(tǒng),可以代替?zhèn)鹘y(tǒng)點餐的有Pad端的點餐系統(tǒng)和新奇的機器人點餐的點餐系統(tǒng)。如超級小二智能餐飲系統(tǒng),超級小二智能餐飲系統(tǒng)在電子點餐上還根據(jù)目前社會發(fā)展做出了各種功能的擴充,目前有著很完善的一套體系。吸引這全國很多餐館加盟,如圖1-1是它的軟件功能界面。而圖1-2則是機器人點餐的方式,機器人身上的魅力相信沒有多少人可以抵擋,這也使得我們身邊開始出現(xiàn)各種以機器人為主題的場所。這也是很吸引人的一種點菜方式。圖1-1超級小二智能餐飲系統(tǒng)圖1-2機器人在送餐1.3 點菜系統(tǒng)開發(fā)的意義這個點菜系統(tǒng)構(gòu)建的點餐功能包括了餐館點餐的基本功能,還能夠分享在微博等社交軟件上,就餐館而言主要是降低各種成本,人力,財力等,用iPad點菜,取代傳統(tǒng)的紙質(zhì)菜單,傳統(tǒng)菜單一年四季由于季節(jié)不同的小變更或許會造成菜單的浪費,而菜單在iPad上完全使這種浪費降到最低,紙質(zhì)點菜往往要服務(wù)員協(xié)同指導(dǎo)記錄,而用iPad點菜直接把點菜的主角換成顧客,菜單在app上能圖文并茂的展現(xiàn)在顧客的眼中,顧客完全可以自己操作,在一定程度上降低餐館運營成本。意義:(1)可以提升餐館檔次;(2)可以減少紙資源的浪費和人力浪費;(3)增強顧客體驗;(4)促進(jìn)餐館改革。本次系統(tǒng)的開發(fā)依賴于蘋果公司的iOS系統(tǒng)和iPad設(shè)備,利用了傳輸技術(shù),數(shù)據(jù)庫存儲技術(shù)以與MVC編碼。本次論文主要是研究基于iOS平臺的點餐系統(tǒng)的設(shè)計開發(fā)和實現(xiàn)。1.4 開發(fā)工具與使用技術(shù)介紹1.4.1Objective-C概述Objective-C是C語言的擴展集,不管是怎么樣的C語言的程序都可以不用修改而直接用Objective-C的編譯器編譯去運行[1]。而且在Objective-C中用C語言代碼寫程序也是完全可以的,不會造成任何混亂。Objective-C被人們描述成遮蓋在C語言上的面具,因為Objective-C原本的意思就是以C語言為整個的主體不會改變,然后加入面向?qū)ο蟮忍匦?。Objective-C是一種跨平臺語言[2]。而其它非面向?qū)ο笳Z言,包括流程控制,函數(shù)聲明等的調(diào)用都和C語言的調(diào)用完全一致。不同的是,某些C語言語法的代碼在objective-c中所表達(dá)的意思卻不一定一樣[3]。比如有些布爾表達(dá)式種,在Objective-C中返回值可能是NO,在C語言中返回值卻為true。在Objective-C類的定義與實現(xiàn),分為.h和.m文件,類的定義文件是遵循C語言之慣例用.h為后綴命名,類一般在.h文件中聲明,在.m文件中實現(xiàn)。用一句話來慨括,Objective-C是一種面向?qū)ο蟮腸語言,并且有著自己的鮮明的特點。如兼容性,字符串,類,方法,協(xié)議,屬性。1.4.2Xcode概述Xcode是蘋果公司自己開發(fā)的只能在MacOSX平臺上運行的集成環(huán)境,Xcode具有良好的用戶界面,文件的編碼、測試,調(diào)試都可以在一個窗口上運行,使用起來快捷,方便[4]。我們在裝有MacOS電腦下,都是用Xcode來開發(fā)iPhone應(yīng)用程序。在使用Xcode進(jìn)行編程設(shè)計時,Xcode提供模擬器供編程人員測試程序。有關(guān)Xcode的前世今生,前生是繼承自NEXT的ProjectBuilder。TheXcodesuite里面有GNUCompilerCollection自由軟件(GCC、apple-darwin9-gcc-4.0.1等),并支持Objective-C,C語言、C++、Objective-C++等,而且提供Cocoa、Java以與Carbon等編程模式。關(guān)于Xcode的歷史版本主要由以下幾種:從Xcode3.1開始為iOS開發(fā)環(huán)境。Xcode4.0于2011年3月9日正式發(fā)布,而且該版本非Apple開發(fā)者也能夠從蘋果商店付費下載。Xcode4.1開始,對于OSX10.6和OSX10.7用戶可以從商店免費下載Xcode的主要版本為Xcode5,支持iOS7,可以在MacAppstore免費下載,也可以在其它IOS計劃下載Xcode6為最新的版本,支持蘋果公司最新發(fā)布的語言Swift。1.4.3MVC概述MVC全名是ModelViewController,是一種軟件設(shè)計模式,用一種業(yè)務(wù)邏輯、界面、數(shù)據(jù)顯示分離的方法編寫代碼的方法,MVC定義了Cocoa框架的總體結(jié)構(gòu),是一種高級別的模式,將應(yīng)用分為模型層、視圖層、控制器層。同時MVC名稱也是是模型-視圖-控制器(controller)的英文首字母的縮寫。它最初出現(xiàn)在20世紀(jì)70年代的Smalltalk編程語言中[5]。在編寫代碼的同時使用MVC模式,能減少代碼之間的耦合。使程序結(jié)構(gòu)清晰明朗,便于后期代碼的修改和維護。1.4.4SQlite數(shù)據(jù)庫如果你正在使用MacOS雪豹(MacOSXv10.6SnowLeopard)或者更新版本的系統(tǒng),那么系統(tǒng)上已經(jīng)裝有SQLite了。SQLite是開源的、嵌式的關(guān)系數(shù)據(jù)庫,iOS平臺包裝的是第三版,即是SQLite3,SQLite3的特點是使用起來方便、結(jié)構(gòu)緊湊、高度便攜、高效和可靠。實現(xiàn)了支持事務(wù)與零配置等的SQL數(shù)據(jù)庫引擎特性。SQLite3在Xcode中使用起來創(chuàng)建有相應(yīng)的代碼,使用時要導(dǎo)入相應(yīng)的數(shù)據(jù)庫框架:libsqlite3.dylib[6]。在大多數(shù)情況下,只要確保SQLite3的二進(jìn)制文件的存在就可以用來開始創(chuàng)建、連接和使用數(shù)據(jù)庫。這點與其他數(shù)據(jù)庫管理系統(tǒng)很不一樣。本論文所使用的第三方庫FMDB就是建立在SQLite3數(shù)據(jù)庫上的。1.4.5/TCP通信本次論文采用協(xié)議和客戶端通信[7],因為它的簡捷的方式,還可適用于分布式的超媒體信息系統(tǒng)。從它1990年提出到現(xiàn)在,經(jīng)過這么多年的發(fā)展也得到了不斷得到擴展和完善。而且它是屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議。全名為超文本傳輸協(xié)議,一般基于TCP的連接方式。它的主要特點有客戶向服務(wù)器請求服務(wù)時,只要傳送請求方法和路徑。常用請求方式有GET、HEAD、POST、支持客戶/服務(wù)器模式。允許傳輸?shù)臄?shù)據(jù)對象沒有任何限制。協(xié)議是無狀態(tài)協(xié)議。無連接的意思就是每次連接只處理一個請求。在iPad端可以向服務(wù)器發(fā)送Post或GET方式請求。因為IOSSDK中的網(wǎng)絡(luò)請求API用起來根復(fù)雜,所以本次論文用到的ASI封裝了系統(tǒng)的CFNetwork框架,而且ASI是用Objective-C寫的,可以直接在Mac系統(tǒng)或IOS應(yīng)用中直接使用。ASI目前已經(jīng)不更新了,但是由于效率高,功能完善,所以現(xiàn)在使用的人也很多,我們ASI發(fā)請求有兩種方式:同步請求和異步請求,而且有相應(yīng)的回調(diào)函數(shù)只要實現(xiàn)相關(guān)的代理就可以直接使用。2系統(tǒng)需求分析2.1項目概述2.1.1項目名稱點菜項目名稱:基于iOS平臺的點菜系統(tǒng)2.1.2項目目標(biāo)點菜系統(tǒng)實現(xiàn)的目標(biāo)如下:(1)顧客瀏覽餐館官網(wǎng);(2)顧客滑動iPad瀏覽菜單;(3)顧客一鍵分享菜式給好友;(4)顧客修改點菜菜單;(5)顧客選擇餐位并且送單;(6)顧客查看歷史菜單(7)同一桌號顧客加菜;(8)后廚接收菜單(9)收銀處通過桌號收銀;2.1.3系統(tǒng)圍和系統(tǒng)邊界任何系統(tǒng)都不可能包羅萬象,本系統(tǒng)主要是為了提供一種餐館點菜新型模式和新的體驗。系統(tǒng)面向的對象主要是來餐館就餐的顧客。后臺和收銀則是面向餐館管理人員。通過重新分配點菜角色來達(dá)到用餐新體驗。2.1.4功能概述本系統(tǒng)面向2類群體,顧客,餐館管理者對于顧客:(1)通過APP瀏覽餐館主頁;(2)APP點餐;(3)一鍵分享到自己的微博等;(4)查看菜單。餐館管理者:(1)收銀(2)送單(3)更新菜單數(shù)據(jù)庫2.1.5業(yè)務(wù)流程圖圖2.1點菜系統(tǒng)流程圖2.2詳細(xì)功能需求首先需求分析的目的是確切的回答:“系統(tǒng)必須做什么?[8]”本系統(tǒng)主要分成兩大模塊,是前臺模塊和后臺模塊,而這兩個模塊又有自己的精確的劃分,具體的模塊劃分如下:(1)進(jìn)入界面模塊打開點菜APP后,可以看到兩個選擇按鈕,選擇首頁則進(jìn)入瀏覽網(wǎng)頁,按APP右上角按鈕可返回,第二個則是進(jìn)入點菜系統(tǒng)的按鈕。這個模塊主要是在顧客剛要進(jìn)入點菜系統(tǒng)之前,可以通過這個模塊的首頁這個功能建立對餐館了解的過程。顧客可以隨時通過此功能訪問餐館的官網(wǎng)。當(dāng)點擊進(jìn)入點菜系統(tǒng)則跳轉(zhuǎn)到點菜系統(tǒng)的界面。餐館可以通過這個界面的功能拉近與顧客的距離。(2)菜品展示模塊與點菜模塊當(dāng)進(jìn)入點菜系統(tǒng)后,iPad上會列出各種賞心悅目的菜式供顧客瀏覽,顧客可以通過手指的點擊,滑動操作來完成點菜,顧客瀏覽圖文并茂的菜單,自己來點菜,不需要他人的指導(dǎo)。充分把傳統(tǒng)的點菜方式釋放。(3)一鍵分享模塊當(dāng)今社會,發(fā)微博,發(fā)消息,分享朋友圈,點贊。這是社交新方式,分享自己的生活,為別人發(fā)的微博點贊,評論。所以當(dāng)顧客碰到喜歡的菜式時,顧客可以通過這個模塊來分享自己的選擇??梢酝ㄟ^新浪微博,騰訊微博,Email等各種方式來進(jìn)行分享。(4)我的菜單模塊通過這個模塊,顧客可以對自己的點菜容進(jìn)行修改,例如,某種菜點多了或少了,某種菜備注為:“微辣”。同時在這個界面底部我們會給出顧客點菜的總價格。通過這個界面可以和后臺進(jìn)行交流,是本系統(tǒng)不可缺少的一部分。(5)菜單提交模塊當(dāng)然,菜單修改完成后便是提交,提交菜單的條件有兩個;1.菜單部位空;2.顧客選擇好了點餐位置。歷史菜單模塊顧客可以通過這個模塊來查看自己的點餐詳情,只有點過餐才會有自己的記錄,當(dāng)然在這里顧客也可以刪除自己的點餐記錄,并不會影響到菜單發(fā)送到后臺,因為顧客在這里刪除的只能是存在本地數(shù)據(jù)庫的菜單數(shù)據(jù),其實數(shù)據(jù)在提交菜單的時候就已經(jīng)向服務(wù)器發(fā)送了一份。顧客在結(jié)算時可以根據(jù)收銀處顯示的菜單來進(jìn)行結(jié)算。后臺廚房端模塊這個模塊是廚房來接收通過服務(wù)器發(fā)送來得點餐信息的過程,主要是為了餐館后臺人員獲取顧客點菜信息的模塊。收銀模塊收銀處的菜單是從服務(wù)器下載得到的,這里顧客可以通過確認(rèn)菜單來付賬。收銀人員通過房間名來查找顧客點餐的信息,然后計算總價,顧客結(jié)賬。2.3系統(tǒng)運行環(huán)境分析(1)開發(fā)環(huán)境MacOSXVersion10.9.2(2)運行環(huán)境iPad模擬器(3)開發(fā)工具Xcode5.13系統(tǒng)設(shè)計3.1功能模塊設(shè)計3.1.1設(shè)計的概念這個系統(tǒng)由于有幾個部分,點菜部分是主要是面向顧客來設(shè)計的,而后臺部分是面向后廚人員,收銀則是面向收銀人員來設(shè)計的。如3-1用例圖所示。下面用例圖表述了本系統(tǒng)總體操作流程,即顧客點單,后臺接單,收銀的功能。圖3-1點餐系統(tǒng)用例圖3.1.2系統(tǒng)數(shù)據(jù)模型實體關(guān)系本系統(tǒng)涉與的點菜實體關(guān)系如下:如下圖所示:顧客和菜譜則是兩個實體,可以多個顧客觀看同一菜譜,故顧客和菜譜的關(guān)系為M:1,倆個實體以“觀看”來連接,而菜譜這個實體的屬性有菜名,菜的種類,菜價等。其他關(guān)系以此類推。圖3-2顧客訂餐E-R圖3.2數(shù)據(jù)庫設(shè)計3.2.1數(shù)據(jù)庫關(guān)系圖根據(jù)以上的對象關(guān)系,建立以下數(shù)據(jù)庫表數(shù)據(jù)庫之間各表關(guān)系如下:圖3-3數(shù)據(jù)庫之間的關(guān)系3.2.2數(shù)據(jù)庫作用表表3-1數(shù)據(jù)庫作用表數(shù)據(jù)庫作用Room記錄房間號/桌號groupTable菜單分類信息menuTable菜單具體信息orderTable生成的我的菜單group_recordTable記錄點菜時間/地點recordTable記錄點菜詳情3.2.3數(shù)據(jù)庫信息表地理位置表Room表3-2桌號表字段類型說明IdInteger主鍵無實際意義Room_nameText存儲餐位菜單分類信息groupTable表3-3菜式表字段類型說明IdInteger主鍵無實際意義kindText菜品類型nameText細(xì)致分類菜單menuTable表3-4菜單詳情表字段類型說明IdInteger主鍵無實際意義groupIDText分組類型iKindText細(xì)致分組類型nameText菜名priceInteger菜的價格unitText數(shù)量detailText詳情picNameText對應(yīng)圖片名(軟件包含相應(yīng)圖片)我的菜單orderTable表3-5點單表字段類型說明IdInteger主鍵無實際意義menuNameText已點菜的菜名PriceText已點菜的價格KindText已點菜的類型menuNumInteger已點菜的某份數(shù)量remarkText已點菜的備注信息餐位記錄group_recordTable表3-6點餐時間表字段類型說明IdInteger主鍵無實際意義dataText點餐日期timeText點餐時間roomText餐位點菜詳細(xì)情況recordTable表3-7點菜詳情表字段類型說明IdInteger主鍵無實際意義stateNumInteger送菜的數(shù)量menuNameText菜名menuPriceText菜品價格menuKindText菜品種類menuNumInteger菜的數(shù)量menuRemarkText點菜備注groupIDInteger辨別屬于不同次點菜3.2.4App功能模塊預(yù)覽表3-8模塊詳情表前臺App后臺1.瀏覽餐館主頁/進(jìn)入點菜系統(tǒng)1.后臺接收菜單(一般不用iPad接收顯示)2.瀏覽菜單/點菜2.后臺標(biāo)記是否送菜3.一鍵分享菜式給好友—通過空間或微博3.收銀(一般不用iPad接收顯示)4.生成菜單/自動計算價格/折扣計算5.選擇你就餐所在位置6.發(fā)送菜單7.生成歷史記錄,可以查閱,刪除3.3前臺功能設(shè)計(1)瀏覽餐館主頁/進(jìn)入點菜系統(tǒng):當(dāng)打開軟件時,會有一段過渡頁面,彌補等待的空白,點擊首頁按鈕,則直接進(jìn)入餐館的主頁,此時可以按右上角返回按鈕返回選擇頁面。點擊進(jìn)入點菜系統(tǒng)則可以進(jìn)入選擇中文版的選擇界面,也可以查歷史菜單(如果未點菜,則為空),繼續(xù)點擊中文版則入菜單頁面,英文版未實現(xiàn)。(2)在菜單的主頁可以通過TableView,ScrollView來構(gòu)建菜單瀏覽,選擇,點菜。點菜過程通過手指滑動挑選,豐富的圖文結(jié)構(gòu)會更加吸引人的注意力。(3)在詳情界面(通過模態(tài)彈出實現(xiàn)),iPad上獨有的格式顯示,一鍵分享當(dāng)前美食在新浪微博,這里需要在新浪申請AppKey和AppSecret,并且還要填寫回調(diào)網(wǎng)址才能實現(xiàn)一鍵分享到微博功能,在這里,已經(jīng)有相當(dāng)成熟的產(chǎn)品供我們使用。如shareSDK。shareSDK集成了豐富的集成了一些常用的類庫和接口,支持新浪微博、人人網(wǎng)、豆瓣、騰訊微博、開心網(wǎng)、網(wǎng)易微博、、微信等,有較為豐富的UI選擇,使用起來方便,而且ShareSDK對所有的開發(fā)者永久免費。(4)選擇界面我的菜單則進(jìn)入菜單界面,菜單界面通過數(shù)據(jù)庫存儲點菜容TableView則用來顯示,并且可以在此界面修改點菜容(菜單為空送單為出現(xiàn)UIAlertView警告框提醒)。選擇送單則進(jìn)入送單頁面,點擊位置選擇選擇就餐房間(位置為空送單為出現(xiàn)UIAlertView警告框提醒)。(5)發(fā)送菜單到服務(wù)器并且保存到本地后清空我的菜單容。(6)可以在歷史菜單中查詢本次點菜容。后臺功能設(shè)計(1)可以通過服務(wù)器獲取菜單(準(zhǔn)備運用本地服務(wù)器來模擬過程)向服務(wù)器發(fā)送get請求獲取倆個數(shù)據(jù)庫,存到本地,然后取數(shù)據(jù)(2)標(biāo)記是否送菜修改數(shù)據(jù)庫表stateNum值來確定送菜的數(shù)量。(3)收銀端收銀首先收銀端存在密碼,須向服務(wù)器發(fā)送密碼才能登錄,且收銀端有修改密碼的功能。便于餐館管理。然后就是向服務(wù)器發(fā)送get請求獲取倆個數(shù)據(jù)庫,存到本地,然后取數(shù)據(jù)。4系統(tǒng)實現(xiàn)4.1前臺功能模塊的實現(xiàn)4.1.1首頁功能當(dāng)運行打開軟件后可以得到下面的界面,首先當(dāng)你點擊首頁,系統(tǒng)會iPad端打開特定的(餐館的主頁),進(jìn)入之后可以按右上角的返回按鈕返回app,這個屬于前臺模塊的一部分,可以讓人們在要點菜同時對餐館自身增加一個了解的途徑。點擊點菜系統(tǒng)則進(jìn)入點菜系統(tǒng)開始點菜。下面用一個圖來展示這個過程:圖4-1開始界面操作流程圖具體代碼如下:UIWebView*webview=[[UIWebViewalloc]initWithFrame:CGRectMake(0,0,1024,768)];NSURL*url=[NSURLURLWithString:".baidu."];NSURLRequest*request=[NSURLRequestrequestWithURL:url];[webviewloadRequest:request];[self.viewaddSubview:webview];這里創(chuàng)建了一個webView來顯示網(wǎng)頁容。在webView上加載網(wǎng)頁請求。4.1.2點菜功能這個功能模塊是當(dāng)顧客點擊進(jìn)入后顯示,充滿視覺和觸覺操作的一個界面,在界面的最右邊有七個供顧客選擇的按鈕,具有滑動效果,如當(dāng)顧客選擇主廚推薦這個項時,可以在列表中選擇其中鮑、參、翅、燕、膠這種具體的分類信息,在左邊會默認(rèn)顯示分類信息的第一項容,當(dāng)顧客選擇好某一項菜品,在左邊的大圖也會發(fā)生同樣的改變,同樣在左邊滑動選擇菜品同時,也可進(jìn)行某種菜品的選定。當(dāng)顧客選擇好菜品后,可以點擊界面左側(cè)下方的點菜按鈕來進(jìn)行點菜操作。當(dāng)然,每當(dāng)顧客選好某道菜時,可以點擊查詢詳情來查詢看菜品詳情。點菜結(jié)束后則可點擊我的菜單來進(jìn)入菜單界面。總結(jié)下這個小模塊中所包含的功能有:(1)顧客瀏覽菜式;(2)顧客查看菜品詳情;(3)點菜操作;(4)進(jìn)入我的菜單。這些操作可以用下圖來表示圖4-2點菜操作圖點菜界面的具體實現(xiàn)代碼如下:瀏覽菜式可以用UIScrollView來顯示容,具體實現(xiàn)方法有[DataBaseOperationscrollViewStart:_scrollViewWithArray:_dataArrayWithopenSection:_openSection];在這里我們用一個自定義的數(shù)據(jù)操作類DataBaseOperation來進(jìn)行數(shù)據(jù)處理,_scrollView代表滑動得菜單視圖,_dataArray則是存放數(shù)據(jù)的數(shù)組,_openSection是記錄當(dāng)前要打開的界面菜單的表的分區(qū)。在這個方法中,我們可以通過scrollView.contentSize來設(shè)置UIScrollView的容量,如scrollView.contentSize=CGSizeMake(scrollView.frame.size.width*array.count,scrollView.frame.size.height);4.1.3一鍵分享現(xiàn)如今用手機來交際成為了一種不可替代的時尚[9]。當(dāng)顧客使用此功能時,可以將自己喜歡的菜式分享在新浪微博、騰訊微博、等。這是一種社會化分享功能,如分享到新浪微博,要使用新浪的微博開放接口進(jìn)行調(diào)用,如發(fā)微博、關(guān)注等,都是需要獲取用戶身份認(rèn)證的。目前微博開放平臺用戶身份鑒權(quán)主要采用的是OAuth2.0。OAuth2.0與1.0相比較來說,OAuth2.0的整個授權(quán)驗證過程更簡單更加地安全。OAuth2.0是未來最主要的用戶身份驗證和授權(quán)方式[10]。整個授權(quán)過程如下:(1)第三方應(yīng)用向用戶請求(AuthorizationRequest)進(jìn)行授權(quán),用戶同意授權(quán)(AuthorizationGrant),或者取消;(2)第三方應(yīng)用向新浪的授權(quán)服務(wù)器發(fā)請求(AuthorizationGrant),索要通行證,新浪的授權(quán)服務(wù)器把通行證(AccessToken)給第三方應(yīng)用;(3)第三方應(yīng)用使用通行證(AccessToken)獲取用戶的新浪微博的某些信息(ProtectedResources);關(guān)于OAuth2.0協(xié)議的授權(quán)流程可見下面的流程圖,其中Client指第三方應(yīng)用,ResourceOwner指用戶,AuthorizationServer指新浪的授權(quán)服務(wù)器,ResourceServer是API服務(wù)器。圖4-3OAuth2.0授權(quán)圖這里我們用得時第三方類庫shareSDK;首先在入口類ZCAppDelegate中實現(xiàn)相關(guān)的回調(diào)方法,如分享在新浪微博[ShareSDKconnectSinaWeiboWithAppKey:"3720894884"appSecret:"9a57c722ef1fabed0c6decd2b3daa4a3"redirectUri:".baidu."];AppKey和APPSecret是在新浪的微博開放平臺申請可以得到,redirectUri則是申請應(yīng)用必須填寫的回調(diào)網(wǎng)址,一般都填軟件下載地址。然后去分享觸發(fā)方法中觸發(fā)第三方類庫提供的方法即可,在這里iPad分享有些特別,如果使用iPad分享,則要:(1)創(chuàng)建iPad容器idcontainer=[ShareSDKcontainer];[containersetIPadContainerWithView:senderarrowDirect:UIPopoverArrowDirectionUp];(2)然后定制自己的分享容比如可以在發(fā)微博時插入特定的圖片,可以通過[[NSBundlemainBundle]pathForResource:menuNameofType:"jpg"]來調(diào)用資源里面存在的menuName.jpg圖片。(3)第三步則是可以通過showShareActionSheet方法來打開分享界面,在這里用三個if語句來判斷分享過程:if(state==SSResponseStateSuccess){}//分享成功if(state==SSResponseStateCancel){}//取消分享if(state==SSResponseStateFail){}//分享失敗在if語句的判斷后用UIAlertView(警告框)來顯示分享操作結(jié)果的顯示,為顧客執(zhí)行分享操作提供一定的提示。例如:當(dāng)分享成功時會調(diào)用UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:"分享成功"message:nildelegate:selfcancelButtonTitle:"OK"otherButtonTitles:nil];[alertshow];alert是我們自己定義的警告框容,WithTitle是警告框的標(biāo)題,message:nil代表警告框的提示信息為空,delegate:self指代設(shè)置代理,cancelButtonTitle:"OK"指取消警告框按的按鈕容為“OK”。4.1.4菜單功能我的菜單這一模塊是顧客點菜完成后,將要提交菜單時進(jìn)入,在這里可以對選擇的菜品進(jìn)行增加或者刪除操作,還可以進(jìn)行備注,具體有:(1)點擊份數(shù)可以修改點菜的份數(shù),如果多點,或者少點都可以以此進(jìn)行修改;(2)選擇好某一行進(jìn)行滑動則觸發(fā)刪除操作,點擊刪除即可;(3)在備注的輸入框點菜的備注,對廚房進(jìn)行提示;(4)參考價格顯示菜品總價;(5)點擊送單則進(jìn)入送單頁面(6)當(dāng)點菜數(shù)目為零,顧客點擊送單時,會有警告框自動提示。如修改某分菜的的容時,會調(diào)用在自定義數(shù)據(jù)操作類的加號方法。通過下面代碼我們可以看到,插入操作就是普通的SQL語句,這里就是利用FMDB這種第三方類庫的好處,比如我們所知的MAC版,也使用了FMDB。+(void)updateOrderTableByDish:(MenuTable*)menuTable{FMDatabase*db=[DataBaseOperationcreatDB];if([dbopen]){[dbexecuteUpdate:"updateorderTablesetmenuNum=?,remark=?wheremenuName=?",[NSNumbernumberWithInt:menuTable.part],menuTable.reMarks,menuT];}[dbclose];}4.1.5餐位選擇和送單點擊送單后則進(jìn)入了餐位選擇,這里我們提供了一餐廳結(jié)構(gòu)圖配上文字,給用戶更加細(xì)膩的視覺體驗。選好餐位后,繼續(xù)選擇送單則完成點餐過程,注意,如果沒有選擇送餐的位置,則依舊無法提交菜單。選好后也會將顧客點菜的容傳給服務(wù)器。調(diào)用的方法是//上傳數(shù)據(jù)庫到服務(wù)器+(void)requestToSendSqliteToServerWithPath;在這里我們發(fā)送的是post請求。4.1.6歷史菜單當(dāng)提交完成后,點擊返回,可返回點菜頁面,此時依舊可以繼續(xù)加菜,當(dāng)你想查看自己的訂單時,可以選擇返回,則可返回至歷史菜單頁面,點擊歷史菜單可以點擊查閱按鈕查詢點餐的詳情。相關(guān)代碼如下_dataArray=[[DataBaseOperationgetDataFromGRTable]retain];//獲取數(shù)據(jù)源當(dāng)我們獲取了數(shù)據(jù)源后可以通過表的代理來調(diào)用代理方法來布置歷史菜單界面數(shù)據(jù)-(NSInteger)tableView:(UITableView*)tableViewnumberOfRowsInSection:(NSInteger)section//表分成多少行-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath//表每一行的容4.2后臺等功能的實現(xiàn)4.2.1廚房端接受數(shù)據(jù)顧客完成點餐后,打開廚房端,會接受到顧客發(fā)送來得點餐信息,詳情包括:點餐的餐位或者房間,點餐的詳細(xì)容等。在進(jìn)入主頁面前我們要先從服務(wù)器請求數(shù)據(jù),這個請求方法寫在進(jìn)入之前的緩沖界面。[_enginerrequestGetDateFromServer];//從服務(wù)器請求數(shù)據(jù)_sectionArray=[[DataProcessinggetDataFromGRTable]retain];//獲取表頭_dataArray=[[DataProcessinggetDataFromRecordTable:1];//獲取表的第一行數(shù)據(jù)然后再調(diào)用表的協(xié)議方法可以布表。4.2.2收銀端結(jié)賬顧客用餐結(jié)束后,可以到收銀臺完成結(jié)賬,這個模塊使用于后臺的收銀人員,收銀人員在搜索框輸入相應(yīng)的餐位或房間名即可顯示顧客的點餐菜單。首先在自定義的表頭方法-(UIView*)creatTableViewHeadView里創(chuàng)建搜索框UISearchBar*searchBar=[[[UISearchBaralloc]initWithFrame:CGRectMake(0,0,320,64)]autorelease];//創(chuàng)建搜索框?qū)ο蟛⒃O(shè)置大小searchBar.delegate=self;//設(shè)置代理[viewaddSubview:searchBar];//把搜索框添加到View(表頭)上5系統(tǒng)測試5.1測試目的和概念系統(tǒng)測試就是通過各種手段和測試工具,判斷點餐軟件系統(tǒng)是否能夠滿足預(yù)期期望。從打開本系統(tǒng)的界面到完成的整個過程中的各個模塊進(jìn)行測試分析,看其是否符合預(yù)期的效果,找出和設(shè)計有偏差的地方。例如軟件用戶是不是不能訪問某個模塊,某個模塊沒有按照預(yù)期的設(shè)計功能進(jìn)行運行。它的任務(wù)是盡可能的徹底檢查出程序中的錯誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗系統(tǒng)做的怎么樣。測試開始就把整個系統(tǒng)作為一個實體來測試是不現(xiàn)實的。在軟件工程的環(huán)境中的測試過程,實際上有4個步驟的測試序列,最開始的就是每個單獨模塊的測試,以保證每個單元的功能是正確的,這種測試是單元測試,單元測試主要用的是白盒測試;接下來則把所有的模塊集成一起形成一個完整的軟件包。在裝配同時進(jìn)行的測試就是集成測試主要用的是黑盒測試;然后就是進(jìn)行一系列的高級測試。必須測試在需求分析階段確認(rèn)下來的確認(rèn)標(biāo)準(zhǔn),確認(rèn)測試是對軟件滿足預(yù)期所有功能和行為的保障。在確認(rèn)測試的階段,只使用黑盒測試技術(shù)。5.2測試原理我們學(xué)過的軟件系統(tǒng)測試的方法中,比較好用的方法就是黑盒測試和白盒測試。下面就簡單的介紹一下黑盒測試和白盒測試的基本概念。黑盒測試:在測試的過程中,把程序看成一個黑盒子,測試人員完全不考慮程序部結(jié)構(gòu)和處理過程的情況下,也就是說,黑盒測試是對于程序的接口進(jìn)行測試,只檢測程序的功能是否都是按照規(guī)格說明書規(guī)格進(jìn)行正常使用,程序是否能正確的接收輸入數(shù)據(jù)產(chǎn)生輸出信息,還要保證外部信息,文件或者數(shù)據(jù)庫的完整性。黑盒測試著眼于程序外部結(jié)構(gòu),而不考慮部邏輯,所以黑盒測試又叫功能測試或者是數(shù)據(jù)驅(qū)動測試。白盒測試:這個測試和黑盒測試的方法是相反的。這種方法好比是把測試程序一個透明的白盒子里,也可以說是完全了解程序的部結(jié)構(gòu)和處理的過程,是對軟件的過程性細(xì)節(jié)進(jìn)行檢查和修改。它要求測試人

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論