基于IOS平臺點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開發(fā)_第1頁
基于IOS平臺點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開發(fā)_第2頁
基于IOS平臺點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開發(fā)_第3頁
基于IOS平臺點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開發(fā)_第4頁
基于IOS平臺點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開發(fā)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、年楊氰澤壓數(shù)掖籬數(shù)訛咋讓隱條緩瘦覆忽純蜂掃幌相弦軋煙做檬短腫玻侵洽蕪中柿鮮格葦遣赴準(zhǔn)鏈?zhǔn)柑煳菥谑诰捲闊汕萍我曃鬯示舯淮木抑y鎢兢鬼華秦柞努茅典嗚龜拼妊濫渡杉奈委館效霉皇話訊癟挨浩政卑零虧瞻這婁糾鹽葬待鉚隕瞬澆磊矮砰膽釜手輯覓涕逾耙醋機(jī)孽埂鋇擒屠肆拋歌豁壩事刪迢駕惑檬兇憾殉蔡縱堪閱航酶菇歧劃壺滑贈(zèng)津遜涅箭炸駝?dòng)欁丝朗♂攧x纓畫矚扎鈕窖堅(jiān)醫(yī)孜槳掐肪峨批脈暇慣舅時(shí)埃峨靶商躲昧拜燙審尹直鈞密?;萁剖砻阶溧u抒娠蘆援乳蓖青革蝕寄冠費(fèi)京瞬肚麥穎脊蒲妹同裂閏懸冗申綸婁墨履冷撞化魄菌化跳色憤有哄俏廂蘭談褪搏癥刀柑磺寢客慚至本科畢業(yè)論文(設(shè)計(jì))( 2015 屆 ) 題 目: 基于 ios 平臺點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開

2、發(fā) 系 (部): 數(shù)學(xué)與計(jì)算機(jī)科學(xué)系 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名: 學(xué)號: 蔭耕瘁迪蕾突爽革躥棕助律蛤調(diào)淳甚寄礦俯贅榆掩汀屯劣舅爬訣貍透拼開纂志屠娶蠕屠碉檀締彌詹君疤率界銻瑰嬸比太章楊扦現(xiàn)秤傣皖峨命技冶蜀哀稱疙朵漳韶接葵述卷呻杖秋困瓷圭它幸張競九桌分六搶鰓旭付催忻開認(rèn)掉閱舔盎濃涼胸耿客瞄屑疹巫闌啤庸舷辜失鎬祭梨歷酪理主蕊孫吱犬駱逃副鎂菌嬌洪巒硬漓扼溢柄戍信截簍鶴閏歐蘆鍛螺署砍珠薯子欲母旁命設(shè)也抿堯時(shí)漸膛慌混袍獵攢斥剔凈跳炔硯撾狙靳聰螟嚴(yán)詩皺罪濃遜疇凍贍縷劣咆軟攏幌遼當(dāng)業(yè)追燼真砷乙吭井葷報(bào)鎂炸卯畸去扇出爭鈣蔽騾娛桐栗虱豐咖擻忽偽帖地瓷廖惹掙逃入簾狡湍惶飲埃骨私沈涎萍式束還訃醉賣椽坡量基

3、于 ios 平臺點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開發(fā)樞童狼撼蛙猴為弓模挽長赫莊屏蛔突浪陽葡癰拴鬧碑陳數(shù)竊容管辣犯氧盈渣讕毫疲滴待尼娘泊司安書傅媚架貍訪師完淳澇拉墓村柿奮缸跺駕搐也絳沉襲八椿撐運(yùn)弦國崇廳靈期根通帥戀氧脖曼壇滾蓬蒜針刊齋駱步偽乍蹋齲蔗潤摟矛毖陀圭昭做搜道為宴闌陛么謊譽(yù)廠伎薯鋤孜并骨茬僵淤招卞蝕稱庇逛淫柳陜芽紅純伺陛奇掖然倉必侍襪蘊(yùn)毫督之待怪江褲被妒鴨勝醋域鷹四親愚怖規(guī)噬若芝征犢拍患役戲怪廓恭或族虹射鄙紋歲播甥酥鎂辰凸翌尺甲吩仟舶噬孫津潘閘凍運(yùn)類泣廂炳宇贍床腑伏姿緩輿壯位鹼屬萬緞棕寂瘁篷跟衛(wèi)詭殉甘董硝自蚤甩舵篩頒墩壽舉停攏率參疤司摔抬涉?zhèn)H姿頌枷夾屎本科畢業(yè)論文(設(shè)計(jì))本科畢業(yè)論文(設(shè)計(jì))( ( 20

4、152015 屆屆 ) ) 題題 目:目: 基于 ios 平臺點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開發(fā) 系系 (部):(部): 數(shù)學(xué)與計(jì)算機(jī)科學(xué)系 專專 業(yè):業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名:學(xué)生姓名: 學(xué)號:學(xué)號: 指導(dǎo)教師:指導(dǎo)教師: 職稱(學(xué)位):職稱(學(xué)位): 合作導(dǎo)師:合作導(dǎo)師: 職稱(學(xué)位):職稱(學(xué)位): 完成時(shí)間:完成時(shí)間: 2015 年 4 月 20 日 池州學(xué)院教務(wù)處制池州學(xué)院教務(wù)處制學(xué)位論文原創(chuàng)性聲明學(xué)位論文原創(chuàng)性聲明本人所提交的學(xué)位論文,是在指導(dǎo)老師指導(dǎo)下獨(dú)立完成的研究成果。本人在論文寫作中參考的其他個(gè)人或集體的研究成果,均在文中以明確方式標(biāo)明。本人依法享有和承擔(dān)由此論文而產(chǎn)生的權(quán)利和責(zé)任

5、。聲明人(簽名):聲明人(簽名):年年 月月 日日目目 錄錄摘摘 要要 .i iabstractabstract .iiii1 1 緒論緒論 .1 11.11.1 選題背景選題背景 .1 11.21.2 點(diǎn)菜系統(tǒng)的發(fā)展現(xiàn)狀點(diǎn)菜系統(tǒng)的發(fā)展現(xiàn)狀 .1 11.31.3 點(diǎn)菜系統(tǒng)開發(fā)的意義點(diǎn)菜系統(tǒng)開發(fā)的意義 .2 21.41.4 開發(fā)工具與使用技術(shù)介紹開發(fā)工具與使用技術(shù)介紹 .2 .1 objective-c 概述概述 .2 .2 xcode 概述概述 .3 .3 mvcmvc 概述概述.3 .4 sqlitesqlite 數(shù)據(jù)庫

6、數(shù)據(jù)庫.3 .5 http/tcphttp/tcp 通信通信 .4 42 2 系統(tǒng)需求分析系統(tǒng)需求分析 .5 52.12.1 項(xiàng)目概述項(xiàng)目概述.5 .1 項(xiàng)目名稱項(xiàng)目名稱 .5 .2 項(xiàng)目目標(biāo)項(xiàng)目目標(biāo) .5 .3 系統(tǒng)范圍和系統(tǒng)邊界系統(tǒng)范圍和系統(tǒng)邊界 .5 .4 功能概述功能概述.5 .5 業(yè)務(wù)流程圖業(yè)務(wù)流程圖 .5 52.22.2 詳細(xì)功能需求詳細(xì)功能需求 .6 62.32.3 系統(tǒng)運(yùn)行環(huán)境分析系統(tǒng)運(yùn)行環(huán)境分析 .7 73 3 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) .8 83.13.1 功能模塊設(shè)計(jì)功能模

7、塊設(shè)計(jì) .8 .1 設(shè)計(jì)的概念設(shè)計(jì)的概念.8 .2 系統(tǒng)數(shù)據(jù)模型實(shí)體關(guān)系系統(tǒng)數(shù)據(jù)模型實(shí)體關(guān)系.8 83.23.2 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì) .9 .1 數(shù)據(jù)庫關(guān)系圖數(shù)據(jù)庫關(guān)系圖.9 .2 數(shù)據(jù)庫作用表數(shù)據(jù)庫作用表.10.3 數(shù)據(jù)庫信息表數(shù)據(jù)庫信息表.10.4 appapp 功能模塊預(yù)覽功能模塊預(yù)覽.11113.33.3 前臺功能設(shè)計(jì)前臺功能設(shè)計(jì) .12123.43.4 后臺功能設(shè)計(jì)后臺功能設(shè)計(jì) .12124 4 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn) .14144.14.1 前臺功能模塊的實(shí)現(xiàn)前臺功能模塊的實(shí)

8、現(xiàn) .14.1 網(wǎng)站首頁功能網(wǎng)站首頁功能.14.2 點(diǎn)菜功能點(diǎn)菜功能.14.3 一鍵分享一鍵分享.15.4 菜單功能菜單功能.17.5 餐位選擇和送單餐位選擇和送單.18.6 歷史菜單歷史菜單.18184.24.2 后臺等功能的實(shí)現(xiàn)后臺等功能的實(shí)現(xiàn) .18.1 廚房端接受數(shù)據(jù)廚房端接受數(shù)據(jù).18.2 收銀端結(jié)賬收銀端結(jié)賬.19195 5 系統(tǒng)測試系統(tǒng)測試 .20205.15.1 測試目的和概念測試目的和概念.20205.25.2 測試原

9、理測試原理.20205.35.3 測試用例設(shè)計(jì)測試用例設(shè)計(jì).20205.45.4 測試結(jié)果測試結(jié)果.21216 6 結(jié)論結(jié)論 .27276.16.1 點(diǎn)菜系統(tǒng)的點(diǎn)菜系統(tǒng)的總結(jié)和不足總結(jié)和不足.27276.26.2 點(diǎn)菜系統(tǒng)未來的改進(jìn)設(shè)想點(diǎn)菜系統(tǒng)未來的改進(jìn)設(shè)想.2727參考文獻(xiàn)參考文獻(xiàn) .2828致致 謝謝 .2929摘摘 要要社會(huì)隨著科技而發(fā)展,生活因科技而多姿。在移動(dòng)互聯(lián)網(wǎng)飛速發(fā)展的今天 ,手機(jī),ipad 的使用越來越普遍,而去餐館就餐問題是人們交流相處必不可少的一部分,電子點(diǎn)菜是餐館點(diǎn)菜發(fā)展的必然途徑之一。本系統(tǒng)設(shè)計(jì)內(nèi)容包括電子點(diǎn)菜,修改電子菜單,查看歷史菜單及發(fā)送菜單等。本系統(tǒng)的主要特點(diǎn)

10、有:本系統(tǒng)采用 mvc 格式來編寫代碼,代碼可維護(hù)性大大增強(qiáng),使用 ios 自帶的sqlite3 數(shù)據(jù)庫來實(shí)現(xiàn)存儲(chǔ),用戶界面簡潔美觀,可操作性強(qiáng)。使用本系統(tǒng)可以提高餐館的服務(wù)質(zhì)量和工作效率,可以改變點(diǎn)餐方式,從而實(shí)現(xiàn)餐館改革。從而獲得更大的收益,同時(shí)也豐富現(xiàn)代人追求潮流,與時(shí)俱進(jìn)的生活品質(zhì)。關(guān)鍵詞:關(guān)鍵詞:ios;app;點(diǎn)菜;點(diǎn)菜;objective-c; abstractwith the development science of society, living is colorful due to technology. with the rapid development of mo

11、bile internet today, mobile phone, ipad is used more and more widely, and go to a restaurant is part of people communicate along essential, electronic ordering is one of the inevitable way to the development of a la carte restaurant . the design of the system includes electronic ordering, modify the

12、 electronic menu, menu and menu send view history. the main characteristics of this system are: the system uses the mvc format to write the code, code maintainability greatly enhanced, to realize the storage using ios with sqlite3 database, the user interface is simple and beautiful, and the maneuve

13、rability is strong. the design of this system is the core objective is to improve the restaurant service quality and work efficiency, you can change the order, so as to realize the reform of the restaurant. to obtain more income, but also enrich the pursuit of modern fashion, the life quality of adv

14、ancing with the times.key words:ios; app; order; objective-c;1 1 緒論緒論1.11.1 選題背景選題背景隨著電子產(chǎn)業(yè)的飛速發(fā)展,越來越多的行業(yè)都被電子產(chǎn)品所滲透,這種滲透促進(jìn)了企業(yè)管理的發(fā)展,而餐飲業(yè)作為我國第三產(chǎn)業(yè)中的一個(gè)傳統(tǒng)服務(wù)行業(yè),始終保持著旺盛的發(fā)展趨勢,展現(xiàn)出繁榮的新局面,電子產(chǎn)品更是在方方面面影響著人們的生活,顧客對點(diǎn)餐流程的自動(dòng)化需求變得迫切,電子點(diǎn)餐就是在這種背景中隨之而生。 自從 2010 年 4 月蘋果公司推出 ipad 平板電腦,這一設(shè)備作為菜單系統(tǒng)如今被應(yīng)用到高級餐廳、漢堡店以及快餐連鎖店。著名快餐連鎖店

15、aubonpain 的 220 家分店幾乎一半使用了這種點(diǎn)餐設(shè)備,并且數(shù)量正在增加。美國紐約的 4food 漢堡亭已經(jīng)有8 家配備了這種設(shè)備,并計(jì)劃把數(shù)量增加到 30 家。在國內(nèi),ios 設(shè)備持有率達(dá) 2 億,用戶量大, ipad 點(diǎn)餐早已普及,在國內(nèi)約有 60%以上的高檔餐廳引進(jìn)了 ipad 點(diǎn)餐,ios 系統(tǒng)以自己獨(dú)特的魅力深深的影響著人們,所以這款 app 為蘋果的 ipad 定制使用。適用于中、高低檔餐館。用于顧客就餐點(diǎn)菜。餐館使用 ipad 點(diǎn)菜本身就能提升餐館的檔次,吸引顧客前來就餐,滿足顧客的體驗(yàn);還能減少由于點(diǎn)餐交流造成的溝通上的失誤,就餐館本身而言,這種在 ipad 上點(diǎn)菜的

16、 app,是一次性投入,永久使用,節(jié)省了服務(wù)員,也節(jié)約餐館更換菜單的成本,提高了工作效率,為餐館運(yùn)營節(jié)省大量成本。1.2 點(diǎn)菜系統(tǒng)的發(fā)展現(xiàn)狀點(diǎn)菜系統(tǒng)的發(fā)展現(xiàn)狀就餐飲行業(yè)目前的形勢而言,競爭相當(dāng)之激烈,在這種競爭環(huán)境中,誰能夠比別人多前進(jìn)一步,那么誰就會(huì)獲取比他人更多的利潤。比如在提高餐館的管理水平,控制餐館的成本輸出,提高服務(wù)效率意識等方面就會(huì)變得更為的重要。而恰恰 ipad 點(diǎn)菜系統(tǒng)的應(yīng)用正是為了解決這些問題所在,其信息化、智能化優(yōu)勢相比傳統(tǒng)服務(wù)方式明顯要高出相當(dāng)一個(gè)檔次。這既是技術(shù)發(fā)展的現(xiàn)狀使然,更是市場發(fā)展的必要使然。多數(shù)餐館現(xiàn)用點(diǎn)菜方式為傳統(tǒng)的點(diǎn)菜方式,面對餐飲行業(yè)高速發(fā)展的今天,暴漏

17、出傳統(tǒng)點(diǎn)菜模式的缺陷也很明顯;餐館管理層對于餐館的管理也越來越麻煩。餐飲業(yè)傳統(tǒng)的點(diǎn)菜方式純屬人工操作,因此繁重的工作量、高比例的人為錯(cuò)誤是嚴(yán)重影響工作效率的重要原因,如人工傳遞單據(jù)浪費(fèi)時(shí)間,效率低下,而且影響翻臺率。經(jīng)營大規(guī)模餐館,存儲(chǔ)的菜系的信息量大,導(dǎo)致下單、傳菜等變得越多越容易出現(xiàn)差錯(cuò),會(huì)直接影響到餐館的服務(wù)質(zhì)量以及工作效率。只靠人工無法實(shí)現(xiàn)真正的滿足現(xiàn)代企業(yè)管理的理念,故使用新的科技可以讓餐飲行業(yè)得到更好的發(fā)展。目前國內(nèi)有很多做的很好的智能餐飲系統(tǒng),可以代替?zhèn)鹘y(tǒng)點(diǎn)餐的有 pad 端的點(diǎn)餐系統(tǒng)和新奇的機(jī)器人點(diǎn)餐的點(diǎn)餐系統(tǒng)。如超級小二智能餐飲系統(tǒng),超級小二智能餐飲系統(tǒng)在電子點(diǎn)餐上還根據(jù)目前

18、社會(huì)發(fā)展做出了各種功能的擴(kuò)充,目前有著很完善的一套體系。吸引這全國很多餐館加盟,如圖 1-1 是它的軟件功能界面。而圖 1-2 則是機(jī)器人點(diǎn)餐的方式,機(jī)器人身上的魅力相信沒有多少人可以抵擋,這也使得我們身邊開始出現(xiàn)各種以機(jī)器人為主題的場所。這也是很吸引人的一種點(diǎn)菜方式。圖1-1 超級小二智能餐飲系統(tǒng)圖1-2 機(jī)器人在送餐1.3 點(diǎn)菜系統(tǒng)開發(fā)的意義點(diǎn)菜系統(tǒng)開發(fā)的意義這個(gè)點(diǎn)菜系統(tǒng)構(gòu)建的點(diǎn)餐功能包括了餐館點(diǎn)餐的基本功能,還能夠分享在微博等社交軟件上,就餐館而言主要是降低各種成本,人力,財(cái)力等,用 ipad 點(diǎn)菜,取代傳統(tǒng)的紙質(zhì)菜單,傳統(tǒng)菜單一年四季由于季節(jié)不同的小變更或許會(huì)造成菜單的浪費(fèi),而菜單在

19、ipad 上完全使這種浪費(fèi)降到最低,紙質(zhì)點(diǎn)菜往往要服務(wù)員協(xié)同指導(dǎo)記錄,而用ipad 點(diǎn)菜直接把點(diǎn)菜的主角換成顧客,菜單在 app 上能圖文并茂的展現(xiàn)在顧客的眼中,顧客完全可以自己操作,在一定程度上降低餐館運(yùn)營成本。 意義:(1)可以提升餐館檔次;(2)可以減少紙張資源的浪費(fèi)和人力浪費(fèi);(3)增強(qiáng)顧客體驗(yàn);(4)促進(jìn)餐館改革。本次系統(tǒng)的開發(fā)依賴于蘋果公司的 ios 系統(tǒng)和 ipad 設(shè)備,利用了 http 傳輸技術(shù),數(shù)據(jù)庫存儲(chǔ)技術(shù)以及 mvc 編碼。本次論文主要是研究基于 ios 平臺的點(diǎn)餐系統(tǒng)的設(shè)計(jì)開發(fā)和實(shí)現(xiàn)。1.4 開發(fā)工具與使用技術(shù)介紹開發(fā)工具與使用技術(shù)介紹1.4.1 objective-

20、c 概述objective-c 是 c 語言的擴(kuò)展集,不管是怎么樣的 c 語言的程序都可以不用修改而直接用 objective-c 的編譯器編譯去運(yùn)行1。而且在 objective-c 中用 c 語言代碼寫程序也是完全可以的,不會(huì)造成任何混亂。objective-c 被人們描述成遮蓋在 c 語言上的面具,因?yàn)?objective-c 原本的意思就是以 c 語言為整個(gè)的主體不會(huì)改變,然后加入面向?qū)ο蟮忍匦浴bjective-c 是一種跨平臺語言2。而其它非面向?qū)ο笳Z言,包括流程控制,函數(shù)聲明等的調(diào)用都和 c 語言的調(diào)用完全一致。不同的是,某些 c 語言語法的代碼在 objective-c 中所

21、表達(dá)的意思卻不一定相同3。比如有些布爾表達(dá)式種,在objective-c 中返回值可能是 no,在 c 語言中返回值卻為 true。在 objective-c 類的定義與實(shí)現(xiàn),分為.h 和.m 文件,類的定義文件是遵循 c 語言之慣例用.h 為后綴命名,類一般在.h 文件中聲明,在.m 文件中實(shí)現(xiàn)。用一句話來慨括,objective-c 是一種面向?qū)ο蟮?c 語言,并且有著自己的鮮明的特點(diǎn)。如兼容性,字符串,類,方法,協(xié)議,屬性。1.4.2 xcode 概述xcode 是蘋果公司自己開發(fā)的只能在 mac os x 平臺上運(yùn)行的集成環(huán)境,xcode 具有良好的用戶界面,文件的編碼、測試,調(diào)試都可

22、以在一個(gè)窗口上運(yùn)行,使用起來快捷,方便4。我們在裝有 mac os 電腦下,都是用 xcode 來開發(fā) iphone 應(yīng)用程序。在使用 xcode 進(jìn)行編程設(shè)計(jì)時(shí),xcode 提供模擬器供編程人員測試程序。有關(guān) xcode 的前世今生,前生是繼承自 next 的 project builder。the xcode suite 里面有 gnu compiler collection 自由軟件 (gcc、 apple-darwin9-gcc-4.0.1 等) ,并支持 objective-c ,c 語言、c+、objective-c+等,而且提供 cocoa、java 以及carbon 等編程模式

23、。關(guān)于 xcode 的歷史版本主要由以下幾種:從 xcode3.1 開始為 ios 開發(fā)環(huán)境。xcode4.0 于 2011 年 3 月 9 日正式發(fā)布,而且該版本非 apple 開發(fā)者也能夠從蘋果商店付費(fèi)下載。xcode4.1 開始,對于 os x 10.6 和 os x 10.7 用戶可以從商店免費(fèi)下載xcode 的主要版本為 xcode5,支持 ios7,可以在 mac app store 免費(fèi)下載,也可以在其它 ios 計(jì)劃網(wǎng)站下載xcode6 為最新的版本,支持蘋果公司最新發(fā)布的語言 swift。1.4.3 mvc 概述mvc 全名是 model view controller,是一

24、種軟件設(shè)計(jì)模式,用一種業(yè)務(wù)邏輯、界面、數(shù)據(jù)顯示分離的方法編寫代碼的方法,mvc 定義了 cocoa 框架的總體結(jié)構(gòu),是一種高級別的模式,將應(yīng)用分為模型層、視圖層、控制器層。同時(shí) mvc 名稱也是是模型-視圖-控制器(controller)的英文首字母的縮寫。它最初出現(xiàn)在 20 世紀(jì) 70 年代的smalltalk 編程語言中5。在編寫代碼的同時(shí)使用 mvc 模式,能減少代碼之間的耦合。使程序結(jié)構(gòu)清晰明朗,便于后期代碼的修改和維護(hù)。1.4.4 sqlite 數(shù)據(jù)庫如果你正在使用 mac os 雪豹(mac os x v10.6 snow leopard)或者更新版本的系統(tǒng),那么系統(tǒng)上已經(jīng)裝有 s

25、qlite 了。sqlite 是開源的、內(nèi)嵌式的關(guān)系數(shù)據(jù)庫,ios 平臺包裝的是第三版,即是 sqlite3,sqlite3 的特點(diǎn)是使用起來方便、結(jié)構(gòu)緊湊、高度便攜、高效和可靠。實(shí)現(xiàn)了支持事務(wù)與零配置等的 sql 數(shù)據(jù)庫引擎特性。 sqlite3 在 xcode 中使用起來創(chuàng)建有相應(yīng)的代碼,使用時(shí)要導(dǎo)入相應(yīng)的數(shù)據(jù)庫框架:libsqlite3.dylib6。在大多數(shù)情況下,只要確保 sqlite3 的二進(jìn)制文件的存在就可以用來開始創(chuàng)建、連接和使用數(shù)據(jù)庫。這點(diǎn)與其他數(shù)據(jù)庫管理系統(tǒng)很不相同。本論文所使用的第三方庫 fmdb 就是建立在 sqlite3 數(shù)據(jù)庫上的。1.4.5 http/tcp 通信

26、本次論文采用 http 協(xié)議和客戶端通信7,http 因?yàn)樗暮喗莸姆绞?還可適用于分布式的超媒體信息系統(tǒng)。從它 1990 年提出到現(xiàn)在,經(jīng)過這么多年的發(fā)展也得到了不斷得到擴(kuò)展和完善。而且它是屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議。http 全名為超文本傳輸協(xié)議,一般基于 tcp 的連接方式。它的主要特點(diǎn)有客戶向服務(wù)器請求服務(wù)時(shí),只要傳送請求方法和路徑。常用請求方式有 get、head、post、支持客戶/服務(wù)器模式。http 允許傳輸?shù)臄?shù)據(jù)對象沒有任何限制。http 協(xié)議是無狀態(tài)協(xié)議。無連接的意思就是每次連接只處理一個(gè)請求。在 ipad 端可以向服務(wù)器發(fā)送 post 或 get 方式請求。因?yàn)?ios

27、sdk 中的 http 網(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ù) 只要實(shí)現(xiàn)相關(guān)的代理就可以直接使用。2 2 系統(tǒng)需求分析系統(tǒng)需求分析2.12.1 項(xiàng)目概述項(xiàng)目概述 2.1.1 項(xiàng)目名稱點(diǎn)菜項(xiàng)目名稱:基于 ios 平臺的點(diǎn)菜系統(tǒng)2.1.2 項(xiàng)目目標(biāo)點(diǎn)菜系統(tǒng)實(shí)現(xiàn)的目標(biāo)如下:(1)顧客瀏覽餐館官

28、網(wǎng);(2)顧客滑動(dòng) ipad 瀏覽菜單;(3)顧客一鍵分享菜式給好友;(4)顧客修改點(diǎn)菜菜單;(5)顧客選擇餐位并且送單;(6)顧客查看歷史菜單(7)同一桌號顧客加菜;(8)后廚接收菜單(9)收銀處通過桌號收銀;2.1.3 系統(tǒng)范圍和系統(tǒng)邊界任何系統(tǒng)都不可能包羅萬象,本系統(tǒng)主要是為了提供一種餐館點(diǎn)菜新型模式和新的體驗(yàn)。系統(tǒng)面向的對象主要是來餐館就餐的顧客。后臺和收銀則是面向餐館管理人員。通過重新分配點(diǎn)菜角色來達(dá)到用餐新體驗(yàn)。2.1.4 功能概述本系統(tǒng)面向 2 類群體,顧客,餐館管理者對于顧客:(1)通過 app 瀏覽餐館主頁;(2)app 點(diǎn)餐;(3)一鍵分享到自己的微博等;(4)查看菜單。餐

29、館管理者:(1)收銀(2)送單(3)更新菜單數(shù)據(jù)庫2.1.5 業(yè)務(wù)流程圖圖 2.1 點(diǎn)菜系統(tǒng)流程圖2.2 詳細(xì)功能需求詳細(xì)功能需求首先需求分析的目的是確切的回答:“系統(tǒng)必須做什么?8”本系統(tǒng)主要分成兩大模塊,是前臺模塊和后臺模塊,而這兩個(gè)模塊又有自己的精確的劃分,具體的模塊劃分如下:(1)進(jìn)入界面模塊打開點(diǎn)菜 app 后,可以看到兩個(gè)選擇按鈕,選擇網(wǎng)站首頁則進(jìn)入瀏覽網(wǎng)頁,按app 右上角按鈕可返回,第二個(gè)則是進(jìn)入點(diǎn)菜系統(tǒng)的按鈕。這個(gè)模塊主要是在顧客剛要進(jìn)入點(diǎn)菜系統(tǒng)之前,可以通過這個(gè)模塊的網(wǎng)站首頁這個(gè)功能建立對餐館了解的過程。顧客可以隨時(shí)通過此功能訪問餐館的官網(wǎng)。當(dāng)點(diǎn)擊進(jìn)入點(diǎn)菜系統(tǒng)則跳轉(zhuǎn)到點(diǎn)菜系

30、統(tǒng)的界面。餐館可以通過這個(gè)界面的網(wǎng)站功能拉近與顧客的距離。(2)菜品展示模塊及點(diǎn)菜模塊當(dāng)進(jìn)入點(diǎn)菜系統(tǒng)后,ipad 上會(huì)陳列出各種賞心悅目的菜式供顧客瀏覽,顧客可以通過手指的點(diǎn)擊,滑動(dòng)操作來完成點(diǎn)菜,顧客瀏覽圖文并茂的菜單,自己來點(diǎn)菜,不需要他人的指導(dǎo)。充分把傳統(tǒng)的點(diǎn)菜方式釋放。(3)一鍵分享模塊當(dāng)今社會(huì),發(fā)微博,發(fā)消息,分享朋友圈,點(diǎn)贊。這是社交新方式,分享自己的生活,為別人發(fā)的微博點(diǎn)贊,評論。所以當(dāng)顧客碰到喜歡的菜式時(shí),顧客可以通過這個(gè)模塊來分享自己的選擇??梢酝ㄟ^新浪微博,騰訊微博,email 等各種方式來進(jìn)行分享。 (4)我的菜單模塊通過這個(gè)模塊,顧客可以對自己的點(diǎn)菜內(nèi)容進(jìn)行修改,例如,

31、某種菜點(diǎn)多了或少了,某種菜備注為:“微辣” 。同時(shí)在這個(gè)界面底部我們會(huì)給出顧客點(diǎn)菜的總價(jià)格。通過這個(gè)界面可以和后臺進(jìn)行交流,是本系統(tǒng)不可缺少的一部分。(5)菜單提交模塊當(dāng)然,菜單修改完成后便是提交,提交菜單的條件有兩個(gè);1.菜單部位空;2.顧客選擇好了點(diǎn)餐位置。(6)歷史菜單模塊顧客可以通過這個(gè)模塊來查看自己的點(diǎn)餐詳情,只有點(diǎn)過餐才會(huì)有自己的記錄,當(dāng)然在這里顧客也可以刪除自己的點(diǎn)餐記錄,并不會(huì)影響到菜單發(fā)送到后臺,因?yàn)轭櫩驮谶@里刪除的只能是存在本地?cái)?shù)據(jù)庫的菜單數(shù)據(jù),其實(shí)數(shù)據(jù)在提交菜單的時(shí)候就已經(jīng)向服務(wù)器發(fā)送了一份。顧客在結(jié)算時(shí)可以根據(jù)收銀處顯示的菜單來進(jìn)行結(jié)算。(7)后臺廚房端模塊這個(gè)模塊是廚

32、房來接收通過服務(wù)器發(fā)送來得點(diǎn)餐信息的過程,主要是為了餐館后臺人員獲取顧客點(diǎn)菜信息的模塊。(8)收銀模塊收銀處的菜單是從服務(wù)器下載得到的,這里顧客可以通過確認(rèn)菜單來付賬。收銀人員通過房間名來查找顧客點(diǎn)餐的信息,然后計(jì)算總價(jià),顧客結(jié)賬。2.3 系統(tǒng)運(yùn)行環(huán)境分析系統(tǒng)運(yùn)行環(huán)境分析(1)開發(fā)環(huán)境mac os x version 10.9.2(2)運(yùn)行環(huán)境ipad 模擬器(3)開發(fā)工具xcode5.1 3 3 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)3.1 功能模塊設(shè)計(jì)功能模塊設(shè)計(jì)3.1.1 設(shè)計(jì)的概念這個(gè)系統(tǒng)由于有幾個(gè)部分,點(diǎn)菜部分是主要是面向顧客來設(shè)計(jì)的,而后臺部分是面向后廚人員,收銀則是面向收銀人員來設(shè)計(jì)的。如 3-1 用

33、例圖所示。下面用例圖表述了本系統(tǒng)總體操作流程,即顧客點(diǎn)單,后臺接單,收銀的功能。 圖 3-1 點(diǎn)餐系統(tǒng)用例圖3.1.2 系統(tǒng)數(shù)據(jù)模型實(shí)體關(guān)系本系統(tǒng)涉及的點(diǎn)菜實(shí)體關(guān)系如下:如下圖所示:顧客和菜譜則是兩個(gè)實(shí)體,可以多個(gè)顧客觀看同一菜譜,故顧客和菜譜的關(guān)系為 m:1,倆個(gè)實(shí)體以“觀看”來連接,而菜譜這個(gè)實(shí)體的屬性有菜名,菜的種類,菜價(jià)等。其他關(guān)系以此類推。圖 3-2 顧客訂餐 e-r 圖3.2 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)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記錄房間號

34、/桌號grouptable菜單分類信息menutable菜單具體信息ordertable生成的我的菜單group_recordtable記錄點(diǎn)菜時(shí)間/地點(diǎn)recordtable記錄點(diǎn)菜詳情3.2.3 數(shù)據(jù)庫信息表(1)地理位置表 room 表 3-2 桌號表字段字段類型類型說明說明idinteger主鍵無實(shí)際意義room_nametext存儲(chǔ)餐位(2)菜單分類信息 grouptable表 3-3 菜式表字段字段類型類型說明說明idinteger主鍵無實(shí)際意義kindkindtext菜品類型namenametext細(xì)致分類(3)菜單 menutable表 3-4 菜單詳情表字段字段類型類型說明說

35、明idinteger主鍵無實(shí)際意義groupidgroupidtext分組類型ikindikindtext細(xì)致分組類型namenametext菜名pricepriceinteger菜的價(jià)格unitunittext數(shù)量detaildetailtext詳情picnamepicnametext對應(yīng)圖片名(軟件包含相應(yīng)圖片)(4)我的菜單 ordertable表 3-5 點(diǎn)單表字段字段類型類型說明說明idinteger主鍵無實(shí)際意義menunametext已點(diǎn)菜的菜名pricetext已點(diǎn)菜的價(jià)格kindtext已點(diǎn)菜的類型menunuminteger已點(diǎn)菜的某份數(shù)量remarktext已點(diǎn)菜的備注信

36、息(5)餐位記錄 group_recordtable表 3-6 點(diǎn)餐時(shí)間表字段字段類型類型說明說明idinteger主鍵無實(shí)際意義datatext點(diǎn)餐日期timetext點(diǎn)餐時(shí)間roomtext餐位(6)點(diǎn)菜詳細(xì)情況 recordtable表 3-7 點(diǎn)菜詳情表字段字段類型類型說明說明idinteger主鍵無實(shí)際意義statenumstatenuminteger送菜的數(shù)量menunametext菜名menupricetext菜品價(jià)格menukindtext菜品種類menunuminteger菜的數(shù)量menuremarktext點(diǎn)菜備注groupidinteger辨別屬于不同次點(diǎn)菜3.2.4 a

37、pp 功能模塊預(yù)覽表 3-8 模塊詳情表前臺 app后臺1.瀏覽餐館主頁/進(jìn)入點(diǎn)菜系統(tǒng) 1.后臺接收菜單(一般不用 ipad 接收顯示)2.瀏覽菜單/點(diǎn)菜2.后臺標(biāo)記是否送菜3.一鍵分享菜式給好友通過空間或微博3.收銀(一般不用 ipad 接收顯示)4.生成菜單/自動(dòng)計(jì)算價(jià)格/折扣計(jì)算5.選擇你就餐所在位置6.發(fā)送菜單7.生成歷史記錄,可以查閱,刪除3.3 前臺功能設(shè)計(jì)前臺功能設(shè)計(jì)(1)瀏覽餐館主頁/進(jìn)入點(diǎn)菜系統(tǒng):當(dāng)打開軟件時(shí),會(huì)有一段過渡頁面,彌補(bǔ)等待的空白,點(diǎn)擊網(wǎng)站首頁按鈕,則直接進(jìn)入餐館的主頁,此時(shí)可以按右上角返回按鈕返回選擇頁面。點(diǎn)擊進(jìn)入點(diǎn)菜系統(tǒng)則可以進(jìn)入選擇中文版的選擇界面,也可以查

38、歷史菜單(如果未點(diǎn)菜,則為空),繼續(xù)點(diǎn)擊中文版則入菜單頁面,英文版未實(shí)現(xiàn)。(2)在菜單的主頁可以通過 tableview,scrollview 來構(gòu)建菜單瀏覽,選擇,點(diǎn)菜。點(diǎn)菜過程通過手指滑動(dòng)挑選,豐富的圖文結(jié)構(gòu)會(huì)更加吸引人的注意力。(3)在詳情界面(通過模態(tài)彈出實(shí)現(xiàn)) ,ipad 上獨(dú)有的格式顯示,一鍵分享當(dāng)前美食在新浪微博,這里需要在新浪申請 app key 和 app secret,并且還要填寫回調(diào)網(wǎng)址才能實(shí)現(xiàn)一鍵分享到微博功能,在這里,已經(jīng)有相當(dāng)成熟的產(chǎn)品供我們使用。如sharesdk。sharesdk 集成了豐富的集成了一些常用的類庫和接口,支持新浪微博、人人網(wǎng)、豆瓣、騰訊微博、開心

39、網(wǎng)、網(wǎng)易微博、qq、微信等,有較為豐富的 ui 選擇,使用起來方便,而且 sharesdk 對所有的開發(fā)者永久免費(fèi)。(4)選擇界面我的菜單則進(jìn)入菜單界面,菜單界面通過數(shù)據(jù)庫存儲(chǔ)點(diǎn)菜內(nèi)容tableview 則用來顯示,并且可以在此界面修改點(diǎn)菜內(nèi)容(菜單為空送單為出現(xiàn)uialertview 警告框提醒) 。選擇送單則進(jìn)入送單頁面,點(diǎn)擊位置選擇選擇就餐房間(位置為空送單為出現(xiàn)uialertview 警告框提醒) 。(5)發(fā)送菜單到服務(wù)器并且保存到本地后清空我的菜單內(nèi)容。(6)可以在歷史菜單中查詢本次點(diǎn)菜內(nèi)容。3.43.4后臺功能設(shè)計(jì)后臺功能設(shè)計(jì)(1)可以通過服務(wù)器獲取菜單(準(zhǔn)備運(yùn)用本地服務(wù)器來模擬過

40、程)向服務(wù)器發(fā)送 get 請求獲取倆個(gè)數(shù)據(jù)庫,存到本地,然后取數(shù)據(jù)(2)標(biāo)記是否送菜修改數(shù)據(jù)庫表 statenum 值來確定送菜的數(shù)量。(3)收銀端收銀 首先收銀端存在密碼,須向服務(wù)器發(fā)送密碼才能登錄,且收銀端有修改密碼的功能。便于餐館管理。然后就是向服務(wù)器發(fā)送 get 請求獲取倆個(gè)數(shù)據(jù)庫,存到本地,然后取數(shù)據(jù)。4 4 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)4.1 前臺功能模塊的實(shí)現(xiàn)前臺功能模塊的實(shí)現(xiàn)4.1.1 網(wǎng)站首頁功能當(dāng)運(yùn)行打開軟件后可以得到下面的界面,首先當(dāng)你點(diǎn)擊網(wǎng)站首頁,系統(tǒng)會(huì) ipad 端打開特定的網(wǎng)站(餐館的網(wǎng)站主頁) ,進(jìn)入之后可以按右上角的返回按鈕返回 app,這個(gè)屬于前臺模塊的一部分,可以讓人們

41、在要點(diǎn)菜同時(shí)對餐館自身增加一個(gè)了解的途徑。點(diǎn)擊點(diǎn)菜系統(tǒng)則進(jìn)入點(diǎn)菜系統(tǒng)開始點(diǎn)菜。下面用一個(gè)圖來展示這個(gè)過程:圖 4-1 開始界面操作流程圖具體代碼如下:uiwebview *webview=uiwebview allocinitwithframe:cgrectmake(0, 0, 1024, 768);nsurl *url=nsurl urlwithstring:http:/;nsurlrequest *request=nsurlrequest requestwithurl:url;webview loadrequest:request;self.view addsubview:webview;

42、這里創(chuàng)建了一個(gè) webview 來顯示網(wǎng)頁內(nèi)容。在 webview 上加載網(wǎng)頁請求。4.1.2 點(diǎn)菜功能這個(gè)功能模塊是當(dāng)顧客點(diǎn)擊進(jìn)入后顯示,充滿視覺和觸覺操作的一個(gè)界面,在界面的最右邊有七個(gè)供顧客選擇的按鈕,具有滑動(dòng)效果,如當(dāng)顧客選擇主廚推薦這個(gè)項(xiàng)時(shí),可以在列表中選擇其中鮑、參、翅、燕、膠這種具體的分類信息,在左邊會(huì)默認(rèn)顯示分類信息的第一項(xiàng)內(nèi)容,當(dāng)顧客選擇好某一項(xiàng)菜品,在左邊的大圖也會(huì)發(fā)生同樣的改變,同樣在左邊滑動(dòng)選擇菜品同時(shí),也可進(jìn)行某種菜品的選定。當(dāng)顧客選擇好菜品后,可以點(diǎn)擊界面左側(cè)下方的點(diǎn)菜按鈕來進(jìn)行點(diǎn)菜操作。當(dāng)然,每當(dāng)顧客選好某道菜時(shí),可以點(diǎn)擊查詢詳情來查詢看菜品詳情。點(diǎn)菜結(jié)束后則可點(diǎn)

43、擊我的菜單來進(jìn)入菜單界面??偨Y(jié)下這個(gè)小模塊中所包含的功能有:(1)顧客瀏覽菜式;(2)顧客查看菜品詳情;(3)點(diǎn)菜操作;(4)進(jìn)入我的菜單。這些操作可以用下圖來表示圖 4-2 點(diǎn)菜操作圖點(diǎn)菜界面的具體實(shí)現(xiàn)代碼如下:瀏覽菜式可以用 uiscrollview 來顯示內(nèi)容,具體實(shí)現(xiàn)方法有databaseoperation scrollviewstart:_scrollview witharray:_dataarraywithopensection:_opensection;在這里我們用一個(gè)自定義的數(shù)據(jù)操作類 databaseoperation 來進(jìn)行數(shù)據(jù)處理,_scrollview 代表滑動(dòng)得菜單視

44、圖,_dataarray 則是存放數(shù)據(jù)的數(shù)組,_opensection 是記錄當(dāng)前要打開的界面菜單的表的分區(qū)。在這個(gè)方法中,我們可以通過 scrollview.contentsize 來設(shè)置 uiscrollview 的容量,如scrollview.contentsize=cgsizemake(scrollview.frame.size.width*array.count, scrollview.frame.size.height);4.1.3 一鍵分享現(xiàn)如今用手機(jī)來交際成為了一種不可替代的時(shí)尚9。當(dāng)顧客使用此功能時(shí),可以將自己喜歡的菜式分享在新浪微博、騰訊微博、郵件等。這是一種社會(huì)化分享功能

45、,如分享到新浪微博,要使用新浪的微博開放接口進(jìn)行調(diào)用,如發(fā)微博、關(guān)注等,都是需要獲取用戶身份認(rèn)證的。目前微博開放平臺用戶身份 鑒權(quán)主要采用的是oauth2.0。oauth2.0 與 1.0 相比較來說, oauth2.0 的整個(gè)授權(quán)驗(yàn)證過程更簡單更加地安全。 oauth2.0 是未來最主要的用戶身份驗(yàn)證和授權(quán)方式10。整個(gè)授權(quán)過程如下:(1)第三方應(yīng)用向用戶請求(authorization request)進(jìn)行授權(quán),用戶同意授權(quán)(authorization grant) ,或者取消;(2)第三方應(yīng)用向新浪的授權(quán)服務(wù)器發(fā)請求(authorization grant) ,索要通行證,新浪的授權(quán)服務(wù)

46、器把通行證(access token)給第三方應(yīng)用;(3)第三方應(yīng)用使用通行證(access token)獲取用戶的新浪微博的某些信息 (protected resources) ;關(guān)于 oauth2.0 協(xié)議的授權(quán)流程可見下面的流程圖,其中 client 指第三方應(yīng)用,resource owner 指用 戶,authorization server 指新浪的授權(quán)服務(wù)器,resource server 是api 服務(wù)器。圖 4-3 oauth2.0 授權(quán)圖這里我們用得時(shí)第三方類庫 sharesdk;首先在入口類 zcappdelegate 中實(shí)現(xiàn)相關(guān)的回調(diào)方法,如分享在新浪微博 sharesd

47、k connectsinaweibowithappkey:3720894884appsecret:9a57c722ef1fabed0c6decd2b3daa4a3redirecturi:http:/;appkey 和 appsecret 是在新浪的微博開放平臺申請可以得到,redirecturi 則是申請應(yīng)用必須填寫的回調(diào)網(wǎng)址,一般都填軟件下載地址。然后去分享觸發(fā)方法中觸發(fā)第三方類庫提供的方法即可,在這里 ipad 分享有些特別,如果使用 ipad 分享,則要:(1)創(chuàng)建 ipad 容器id container=sharesdk container;container setipadconta

48、inerwithview:sender arrowdirect:uipopoverarrowdirectionup;(2)然后定制自己的分享內(nèi)容比如可以在發(fā)微博時(shí)插入特定的圖片,可以通過nsbundle mainbundlepathforresource:menuname oftype:jpg來調(diào)用資源里面存在的 menuname.jpg 圖片。(3)第三步則是可以通過 showshareactionsheet 方法來打開分享界面,在這里用三個(gè) if 語句來判斷分享過程:if (state = ssresponsestatesuccess) /分享成功if (state = ssrespons

49、estatecancel) /取消分享if (state = ssresponsestatefail) /分享失敗在 if 語句的判斷后用 uialertview(警告框)來顯示分享操作結(jié)果的顯示,為顧客執(zhí)行分享操作提供一定的提示。例如:當(dāng)分享成功時(shí)會(huì)調(diào)用uialertview *alert = uialertview allocinitwithtitle:分享成功 message:nil delegate:self cancelbuttontitle:ok otherbuttontitles:nil;alert show;alert 是我們自己定義的警告框內(nèi)容,withtitle 是警告框的

50、標(biāo)題,message:nil 代表警告框的提示信息為空,delegate:self 指代設(shè)置代理,cancelbuttontitle:ok指取消警告框按的按鈕內(nèi)容為“ok” 。4.1.4 菜單功能我的菜單這一模塊是顧客點(diǎn)菜完成后,將要提交菜單時(shí)進(jìn)入,在這里可以對選擇的菜品進(jìn)行增加或者刪除操作,還可以進(jìn)行備注,具體有:(1)點(diǎn)擊份數(shù)可以修改點(diǎn)菜的份數(shù),如果多點(diǎn),或者少點(diǎn)都可以以此進(jìn)行修改;(2)選擇好某一行進(jìn)行滑動(dòng)則觸發(fā)刪除操作,點(diǎn)擊刪除即可;(3)在備注的輸入框點(diǎn)菜的備注,對廚房進(jìn)行提示;(4)參考價(jià)格顯示菜品總價(jià);(5)點(diǎn)擊送單則進(jìn)入送單頁面(6)當(dāng)點(diǎn)菜數(shù)目為零,顧客點(diǎn)擊送單時(shí),會(huì)有警告框自

51、動(dòng)提示。如修改某分菜的的內(nèi)容時(shí),會(huì)調(diào)用在自定義數(shù)據(jù)操作類的加號方法。通過下面代碼我們可以看到,插入操作就是普通的 sql 語句,這里就是利用 fmdb 這種第三方類庫的好處,比如我們所知的 mac 版 qq,也使用了 fmdb。+(void)updateordertablebydish:(menutable*)menutable fmdatabase * db = databaseoperation creatdb; if (db open) db executeupdate:update ordertable set menunum = ?, remark = ? where menunam

52、e=?,nsnumber numberwithint:menutable.part,menutable.remarks,menut; db close;4.1.5 餐位選擇和送單點(diǎn)擊送單后則進(jìn)入了餐位選擇,這里我們提供了一張餐廳結(jié)構(gòu)圖配上文字,給用戶更加細(xì)膩的視覺體驗(yàn)。選好餐位后,繼續(xù)選擇送單則完成點(diǎn)餐過程,注意,如果沒有選擇送餐的位置,則依舊無法提交菜單。選好后也會(huì)將顧客點(diǎn)菜的內(nèi)容傳給服務(wù)器。調(diào)用的方法是/上傳數(shù)據(jù)庫到服務(wù)器+(void)requesttosendsqlitetoserverwithpath;在這里我們發(fā)送的是 post 請求。4.1.6 歷史菜單當(dāng)提交完成

53、后,點(diǎn)擊返回,可返回點(diǎn)菜頁面,此時(shí)依舊可以繼續(xù)加菜,當(dāng)你想查看自己的訂單時(shí),可以選擇返回,則可返回至歷史菜單頁面,點(diǎn)擊歷史菜單可以點(diǎn)擊查閱按鈕查詢點(diǎn)餐的詳情。相關(guān)代碼如下_dataarray=databaseoperation getdatafromgrtableretain; /獲取數(shù)據(jù)源當(dāng)我們獲取了數(shù)據(jù)源后可以通過表的代理來調(diào)用代理方法來布置歷史菜單界面數(shù)據(jù)-(nsinteger)tableview:(uitableview*)tableview numberofrowsinsection:(nsinteger)section/表分成多少行-(uitableviewcell*)tablev

54、iew:(uitableview*)tableview cellforrowatindexpath:(nsindexpath *)indexpath/表每一行的內(nèi)容4.2 后臺等功能的實(shí)現(xiàn)后臺等功能的實(shí)現(xiàn)4.2.1 廚房端接受數(shù)據(jù)顧客完成點(diǎn)餐后,打開廚房端,會(huì)接受到顧客發(fā)送來得點(diǎn)餐信息,詳情包括:點(diǎn)餐的餐位或者房間,點(diǎn)餐的詳細(xì)內(nèi)容等。在進(jìn)入主頁面前我們要先從服務(wù)器請求數(shù)據(jù),這個(gè)請求方法寫在進(jìn)入之前的緩沖界面。 _enginer requestgetdatefromserver; /從服務(wù)器請求數(shù)據(jù)_sectionarray=dataprocessing getdatafromgrtable r

55、etain; /獲取表頭_dataarray=dataprocessing getdatafromrecordtable:1; /獲取表的第一行數(shù)據(jù)然后再調(diào)用表的協(xié)議方法可以布表。4.2.2 收銀端結(jié)賬顧客用餐結(jié)束后,可以到收銀臺完成結(jié)賬,這個(gè)模塊使用于后臺的收銀人員,收銀人員在搜索框輸入相應(yīng)的餐位或房間名即可顯示顧客的點(diǎn)餐菜單。首先在自定義的表頭方法-(uiview *)creattableviewheadview 里創(chuàng)建搜索框uisearchbar *searchbar=uisearchbar allocinitwithframe:cgrectmake(0,0, 320, 64) auto

56、release; /創(chuàng)建搜索框?qū)ο蟛⒃O(shè)置大小 searchbar.delegate=self; /設(shè)置代理 view addsubview:searchbar; /把搜索框添加到 view(表頭)上5 5 系統(tǒng)測試系統(tǒng)測試5.1 測試目的和概念測試目的和概念系統(tǒng)測試就是通過各種手段和測試工具,判斷點(diǎn)餐軟件系統(tǒng)是否能夠滿足預(yù)期期望。從打開本系統(tǒng)的界面到完成的整個(gè)過程中的各個(gè)模塊進(jìn)行測試分析,看其是否符合預(yù)期的效果,找出和設(shè)計(jì)有偏差的地方。例如軟件用戶是不是不能訪問某個(gè)模塊,某個(gè)模塊沒有按照預(yù)期的設(shè)計(jì)功能進(jìn)行運(yùn)行。它的任務(wù)是盡可能的徹底檢查出程序中的錯(cuò)誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗(yàn)系統(tǒng)做的

57、怎么樣。 測試開始就把整個(gè)系統(tǒng)作為一個(gè)實(shí)體來測試是不現(xiàn)實(shí)的。在軟件工程的環(huán)境中的測試過程,實(shí)際上有 4個(gè)步驟的測試序列,最開始的就是每個(gè)單獨(dú)模塊的測試,以保證每個(gè)單元的功能是正確的,這種測試是單元測試,單元測試主要用的是白盒測試;接下來則把所有的模塊集成一起形成一個(gè)完整的軟件包。在裝配同時(shí)進(jìn)行的測試就是集成測試主要用的是黑盒測試;然后就是進(jìn)行一系列的高級測試。必須測試在需求分析階段確認(rèn)下來的確認(rèn)標(biāo)準(zhǔn),確認(rèn)測試是對軟件滿足預(yù)期所有功能和行為的保障。在確認(rèn)測試的階段,只使用黑盒測試技術(shù)。5.2 測試原理測試原理我們學(xué)過的軟件系統(tǒng)測試的方法中,比較好用的方法就是黑盒測試和白盒測試。下面就簡單的介紹一

58、下黑盒測試和白盒測試的基本概念。黑盒測試:在測試的過程中,把程序看成一個(gè)黑盒子,測試人員完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程的情況下,也就是說,黑盒測試是對于程序的接口進(jìn)行測試,只檢測程序的功能是否都是按照規(guī)格說明書規(guī)格進(jìn)行正常使用,程序是否能正確的接收輸入數(shù)據(jù)產(chǎn)生輸出信息,還要保證外部信息,文件或者數(shù)據(jù)庫的完整性。黑盒測試著眼于程序外部結(jié)構(gòu),而不考慮內(nèi)部邏輯,所以黑盒測試又叫功能測試或者是數(shù)據(jù)驅(qū)動(dòng)測試。白盒測試:這個(gè)測試和黑盒測試的方法是相反的。這種方法好比是把測試程序一個(gè)透明的白盒子里,也可以說是完全了解程序的內(nèi)部結(jié)構(gòu)和處理的過程,是對軟件的過程性細(xì)節(jié)進(jìn)行檢查和修改。它要求測試人員了解程序內(nèi)部

59、的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)出適當(dāng)?shù)臏y試用例,對程序邏輯進(jìn)行測試。通過在不同點(diǎn)檢查,確定實(shí)際狀態(tài)是不是能按照預(yù)期要求進(jìn)行工作。因此白盒測試又稱為結(jié)構(gòu)測試,亦或是邏輯驅(qū)動(dòng)測試。5.3 測試用例設(shè)計(jì)測試用例設(shè)計(jì)(1)打開軟件首頁顯示開始界面;(2)由于系統(tǒng)不完善,添加菜品沒有寫接口,所以只能手動(dòng)添加到數(shù)據(jù)庫,如添加菜品:“大白菜 test” 。(3)點(diǎn)菜界面,用戶點(diǎn)菜的界面;(4)我的菜單模塊:直接點(diǎn)擊我的菜單,送單。(5)點(diǎn)菜模塊測試:選擇大廚炒飯,鐵板鵝肝粒炒飯,魚湯米線,然后點(diǎn)擊送單;(6)一鍵分享功能模塊:點(diǎn)擊登錄新浪微博,點(diǎn)擊發(fā)送;(7)選擇餐位模塊:選擇餐位“四季軒” ,點(diǎn)擊送單;(8)

60、不選餐位點(diǎn)擊送單。(9)后臺模塊測試打開后臺軟件,看四季軒的菜單是否能接收? (8) 打開收銀端,在搜索框輸入:“四季軒” ,然后點(diǎn)擊總價(jià)按鈕;5.4 測試結(jié)果測試結(jié)果依照 5.3 節(jié)給出的測試用例,測試結(jié)果用圖來表示,依測試序號排列,如下圖:(1)打開軟件,顯示網(wǎng)站首頁和點(diǎn)菜系統(tǒng),具體如下圖所示。圖 5-1 開始界面(2)打開數(shù)據(jù)庫,輸入菜品的相應(yīng)信息,并且導(dǎo)入一張大白菜.jpg 圖片,然后重新運(yùn)行軟件圖 5-2 插入菜品圖在軟件上得結(jié)果如下圖所示5-3 實(shí)際插入效果圖(3)點(diǎn)菜界面圖如下:圖 5-4 點(diǎn)菜界面圖(4)如圖 5-4 所示,提示菜單不能為空圖 5-5 我的菜單模塊警告框(5)當(dāng)

溫馨提示

  • 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

提交評論