![基于IOS平臺(tái)點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/274e36ef-1eb3-42c8-9897-17effff9bafe/274e36ef-1eb3-42c8-9897-17effff9bafe1.gif)
![基于IOS平臺(tái)點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/274e36ef-1eb3-42c8-9897-17effff9bafe/274e36ef-1eb3-42c8-9897-17effff9bafe2.gif)
![基于IOS平臺(tái)點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/274e36ef-1eb3-42c8-9897-17effff9bafe/274e36ef-1eb3-42c8-9897-17effff9bafe3.gif)
![基于IOS平臺(tái)點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/274e36ef-1eb3-42c8-9897-17effff9bafe/274e36ef-1eb3-42c8-9897-17effff9bafe4.gif)
![基于IOS平臺(tái)點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/274e36ef-1eb3-42c8-9897-17effff9bafe/274e36ef-1eb3-42c8-9897-17effff9bafe5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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 平臺(tái)點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開(kāi)
2、發(fā) 系 (部): 數(shù)學(xué)與計(jì)算機(jī)科學(xué)系 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名: 學(xué)號(hào): 蔭耕瘁迪蕾突爽革躥棕助律蛤調(diào)淳甚寄礦俯贅榆掩汀屯劣舅爬訣貍透拼開(kāi)纂志屠娶蠕屠碉檀締彌詹君疤率界銻瑰嬸比太章楊扦現(xiàn)秤傣皖峨命技冶蜀哀稱疙朵漳韶接葵述卷呻杖秋困瓷圭它幸張競(jìng)九桌分六搶鰓旭付催忻開(kāi)認(rèn)掉閱舔盎濃涼胸耿客瞄屑疹巫闌啤庸舷辜失鎬祭梨歷酪理主蕊孫吱犬駱逃副鎂菌嬌洪巒硬漓扼溢柄戍信截簍鶴閏歐蘆鍛螺署砍珠薯子欲母旁命設(shè)也抿堯時(shí)漸膛慌混袍獵攢斥剔凈跳炔硯撾狙靳聰螟嚴(yán)詩(shī)皺罪濃遜疇凍贍縷劣咆軟攏幌遼當(dāng)業(yè)追燼真砷乙吭井葷報(bào)鎂炸卯畸去扇出爭(zhēng)鈣蔽騾娛桐栗虱豐咖擻忽偽帖地瓷廖惹掙逃入簾狡湍惶飲埃骨私沈涎萍式束還訃醉賣椽坡量基
3、于 ios 平臺(tái)點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)樞童狼撼蛙猴為弓模挽長(zhǎng)赫莊屏蛔突浪陽(yáng)葡癰拴鬧碑陳數(shù)竊容管辣犯氧盈渣讕毫疲滴待尼娘泊司安書傅媚架貍訪師完淳澇拉墓村柿奮缸跺駕搐也絳沉襲八椿撐運(yùn)弦國(guó)崇廳靈期根通帥戀氧脖曼壇滾蓬蒜針刊齋駱步偽乍蹋齲蔗潤(rùn)摟矛毖陀圭昭做搜道為宴闌陛么謊譽(yù)廠伎薯鋤孜并骨茬僵淤招卞蝕稱庇逛淫柳陜芽紅純伺陛奇掖然倉(cāng)必侍襪蘊(yùn)毫督之待怪江褲被妒鴨勝醋域鷹四親愚怖規(guī)噬若芝征犢拍患役戲怪廓恭或族虹射鄙紋歲播甥酥鎂辰凸翌尺甲吩仟舶噬孫津潘閘凍運(yùn)類泣廂炳宇贍床腑伏姿緩輿壯位鹼屬萬(wàn)緞棕寂瘁篷跟衛(wèi)詭殉甘董硝自蚤甩舵篩頒墩壽舉停攏率參疤司摔抬涉?zhèn)H姿頌枷夾屎本科畢業(yè)論文(設(shè)計(jì))本科畢業(yè)論文(設(shè)計(jì))( ( 20
4、152015 屆屆 ) ) 題題 目:目: 基于 ios 平臺(tái)點(diǎn)菜系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā) 系系 (部):(部): 數(shù)學(xué)與計(jì)算機(jī)科學(xué)系 專專 業(yè):業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名:學(xué)生姓名: 學(xué)號(hào):學(xué)號(hào): 指導(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)開(kāi)發(fā)的意義點(diǎn)菜系統(tǒng)開(kāi)發(fā)的意義 .2 21.41.4 開(kāi)發(fā)工具與使用技術(shù)介紹開(kāi)發(fā)工具與使用技術(shù)介紹 .2 .1 objective-c 概述概述 .2 .2 xcode 概述概述 .3 .3 mvcmvc 概述概述.3 .4 sqlitesqlite 數(shù)據(jù)庫(kù)
6、數(shù)據(jù)庫(kù).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ù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì) .9 .1 數(shù)據(jù)庫(kù)關(guān)系圖數(shù)據(jù)庫(kù)關(guān)系圖.9 .2 數(shù)據(jù)庫(kù)作用表數(shù)據(jù)庫(kù)作用表.10.3 數(shù)據(jù)庫(kù)信息表數(shù)據(jù)庫(kù)信息表.10.4 appapp 功能模塊預(yù)覽功能模塊預(yù)覽.11113.33.3 前臺(tái)功能設(shè)計(jì)前臺(tái)功能設(shè)計(jì) .12123.43.4 后臺(tái)功能設(shè)計(jì)后臺(tái)功能設(shè)計(jì) .12124 4 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn) .14144.14.1 前臺(tái)功能模塊的實(shí)現(xiàn)前臺(tái)功能模塊的實(shí)
8、現(xiàn) .14.1 網(wǎng)站首頁(yè)功能網(wǎng)站首頁(yè)功能.14.2 點(diǎn)菜功能點(diǎn)菜功能.14.3 一鍵分享一鍵分享.15.4 菜單功能菜單功能.17.5 餐位選擇和送單餐位選擇和送單.18.6 歷史菜單歷史菜單.18184.24.2 后臺(tái)等功能的實(shí)現(xiàn)后臺(tái)等功能的實(shí)現(xiàn) .18.1 廚房端接受數(shù)據(jù)廚房端接受數(shù)據(jù).18.2 收銀端結(jié)賬收銀端結(jié)賬.19195 5 系統(tǒng)測(cè)試系統(tǒng)測(cè)試 .20205.15.1 測(cè)試目的和概念測(cè)試目的和概念.20205.25.2 測(cè)試原
9、理測(cè)試原理.20205.35.3 測(cè)試用例設(shè)計(jì)測(cè)試用例設(shè)計(jì).20205.45.4 測(cè)試結(jié)果測(cè)試結(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)未來(lái)的改進(jìn)設(shè)想點(diǎn)菜系統(tǒng)未來(lái)的改進(jìn)設(shè)想.2727參考文獻(xiàn)參考文獻(xiàn) .2828致致 謝謝 .2929摘摘 要要社會(huì)隨著科技而發(fā)展,生活因科技而多姿。在移動(dòng)互聯(lián)網(wǎng)飛速發(fā)展的今天 ,手機(jī),ipad 的使用越來(lái)越普遍,而去餐館就餐問(wèn)題是人們交流相處必不可少的一部分,電子點(diǎn)菜是餐館點(diǎn)菜發(fā)展的必然途徑之一。本系統(tǒng)設(shè)計(jì)內(nèi)容包括電子點(diǎn)菜,修改電子菜單,查看歷史菜單及發(fā)送菜單等。本系統(tǒng)的主要特點(diǎn)
10、有:本系統(tǒng)采用 mvc 格式來(lái)編寫代碼,代碼可維護(hù)性大大增強(qiáng),使用 ios 自帶的sqlite3 數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)存儲(chǔ),用戶界面簡(jiǎn)潔美觀,可操作性強(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ā)展,越來(lái)越多的行業(yè)都被電子產(chǎn)品所滲透,這種滲透促進(jìn)了企業(yè)管理的發(fā)展,而餐飲業(yè)作為我國(guó)第三產(chǎn)業(yè)中的一個(gè)傳統(tǒng)服務(wù)行業(yè),始終保持著旺盛的發(fā)展趨勢(shì),展現(xiàn)出繁榮的新局面,電子產(chǎn)品更是在方方面面影響著人們的生活,顧客對(duì)點(diǎn)餐流程的自動(dòng)化需求變得迫切,電子點(diǎn)餐就是在這種背景中隨之而生。 自從 2010 年 4 月蘋果公司推出 ipad 平板電腦,這一設(shè)備作為菜單系統(tǒng)如今被應(yīng)用到高級(jí)餐廳、漢堡店以及快餐連鎖店。著名快餐連鎖店
15、aubonpain 的 220 家分店幾乎一半使用了這種點(diǎn)餐設(shè)備,并且數(shù)量正在增加。美國(guó)紐約的 4food 漢堡亭已經(jīng)有8 家配備了這種設(shè)備,并計(jì)劃把數(shù)量增加到 30 家。在國(guó)內(nèi),ios 設(shè)備持有率達(dá) 2 億,用戶量大, ipad 點(diǎn)餐早已普及,在國(guó)內(nèi)約有 60%以上的高檔餐廳引進(jìn)了 ipad 點(diǎn)餐,ios 系統(tǒng)以自己獨(dú)特的魅力深深的影響著人們,所以這款 app 為蘋果的 ipad 定制使用。適用于中、高低檔餐館。用于顧客就餐點(diǎn)菜。餐館使用 ipad 點(diǎn)菜本身就能提升餐館的檔次,吸引顧客前來(lái)就餐,滿足顧客的體驗(yàn);還能減少由于點(diǎn)餐交流造成的溝通上的失誤,就餐館本身而言,這種在 ipad 上點(diǎn)菜的
16、 app,是一次性投入,永久使用,節(jié)省了服務(wù)員,也節(jié)約餐館更換菜單的成本,提高了工作效率,為餐館運(yùn)營(yíng)節(jié)省大量成本。1.2 點(diǎn)菜系統(tǒng)的發(fā)展現(xiàn)狀點(diǎn)菜系統(tǒng)的發(fā)展現(xiàn)狀就餐飲行業(yè)目前的形勢(shì)而言,競(jìng)爭(zhēng)相當(dāng)之激烈,在這種競(jìng)爭(zhēng)環(huán)境中,誰(shuí)能夠比別人多前進(jìn)一步,那么誰(shuí)就會(huì)獲取比他人更多的利潤(rùn)。比如在提高餐館的管理水平,控制餐館的成本輸出,提高服務(wù)效率意識(shí)等方面就會(huì)變得更為的重要。而恰恰 ipad 點(diǎn)菜系統(tǒng)的應(yīng)用正是為了解決這些問(wèn)題所在,其信息化、智能化優(yōu)勢(shì)相比傳統(tǒng)服務(wù)方式明顯要高出相當(dāng)一個(gè)檔次。這既是技術(shù)發(fā)展的現(xiàn)狀使然,更是市場(chǎng)發(fā)展的必要使然。多數(shù)餐館現(xiàn)用點(diǎn)菜方式為傳統(tǒng)的點(diǎn)菜方式,面對(duì)餐飲行業(yè)高速發(fā)展的今天,暴漏
17、出傳統(tǒng)點(diǎn)菜模式的缺陷也很明顯;餐館管理層對(duì)于餐館的管理也越來(lái)越麻煩。餐飲業(yè)傳統(tǒng)的點(diǎn)菜方式純屬人工操作,因此繁重的工作量、高比例的人為錯(cuò)誤是嚴(yán)重影響工作效率的重要原因,如人工傳遞單據(jù)浪費(fèi)時(shí)間,效率低下,而且影響翻臺(tái)率。經(jīng)營(yíng)大規(guī)模餐館,存儲(chǔ)的菜系的信息量大,導(dǎo)致下單、傳菜等變得越多越容易出現(xiàn)差錯(cuò),會(huì)直接影響到餐館的服務(wù)質(zhì)量以及工作效率。只靠人工無(wú)法實(shí)現(xiàn)真正的滿足現(xiàn)代企業(yè)管理的理念,故使用新的科技可以讓餐飲行業(yè)得到更好的發(fā)展。目前國(guó)內(nèi)有很多做的很好的智能餐飲系統(tǒng),可以代替?zhèn)鹘y(tǒng)點(diǎn)餐的有 pad 端的點(diǎn)餐系統(tǒng)和新奇的機(jī)器人點(diǎn)餐的點(diǎn)餐系統(tǒng)。如超級(jí)小二智能餐飲系統(tǒng),超級(jí)小二智能餐飲系統(tǒng)在電子點(diǎn)餐上還根據(jù)目前
18、社會(huì)發(fā)展做出了各種功能的擴(kuò)充,目前有著很完善的一套體系。吸引這全國(guó)很多餐館加盟,如圖 1-1 是它的軟件功能界面。而圖 1-2 則是機(jī)器人點(diǎn)餐的方式,機(jī)器人身上的魅力相信沒(méi)有多少人可以抵擋,這也使得我們身邊開(kāi)始出現(xiàn)各種以機(jī)器人為主題的場(chǎng)所。這也是很吸引人的一種點(diǎn)菜方式。圖1-1 超級(jí)小二智能餐飲系統(tǒng)圖1-2 機(jī)器人在送餐1.3 點(diǎn)菜系統(tǒng)開(kāi)發(fā)的意義點(diǎn)菜系統(tǒng)開(kāi)發(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)營(yíng)成本。 意義:(1)可以提升餐館檔次;(2)可以減少紙張資源的浪費(fèi)和人力浪費(fèi);(3)增強(qiáng)顧客體驗(yàn);(4)促進(jìn)餐館改革。本次系統(tǒng)的開(kāi)發(fā)依賴于蘋果公司的 ios 系統(tǒng)和 ipad 設(shè)備,利用了 http 傳輸技術(shù),數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù)以及 mvc 編碼。本次論文主要是研究基于 ios 平臺(tái)的點(diǎn)餐系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)和實(shí)現(xiàn)。1.4 開(kāi)發(fā)工具與使用技術(shù)介紹開(kāi)發(fā)工具與使用技術(shù)介紹1.4.1 objective-
20、c 概述objective-c 是 c 語(yǔ)言的擴(kuò)展集,不管是怎么樣的 c 語(yǔ)言的程序都可以不用修改而直接用 objective-c 的編譯器編譯去運(yùn)行1。而且在 objective-c 中用 c 語(yǔ)言代碼寫程序也是完全可以的,不會(huì)造成任何混亂。objective-c 被人們描述成遮蓋在 c 語(yǔ)言上的面具,因?yàn)?objective-c 原本的意思就是以 c 語(yǔ)言為整個(gè)的主體不會(huì)改變,然后加入面向?qū)ο蟮忍匦浴bjective-c 是一種跨平臺(tái)語(yǔ)言2。而其它非面向?qū)ο笳Z(yǔ)言,包括流程控制,函數(shù)聲明等的調(diào)用都和 c 語(yǔ)言的調(diào)用完全一致。不同的是,某些 c 語(yǔ)言語(yǔ)法的代碼在 objective-c 中所
21、表達(dá)的意思卻不一定相同3。比如有些布爾表達(dá)式種,在objective-c 中返回值可能是 no,在 c 語(yǔ)言中返回值卻為 true。在 objective-c 類的定義與實(shí)現(xiàn),分為.h 和.m 文件,類的定義文件是遵循 c 語(yǔ)言之慣例用.h 為后綴命名,類一般在.h 文件中聲明,在.m 文件中實(shí)現(xiàn)。用一句話來(lái)慨括,objective-c 是一種面向?qū)ο蟮?c 語(yǔ)言,并且有著自己的鮮明的特點(diǎn)。如兼容性,字符串,類,方法,協(xié)議,屬性。1.4.2 xcode 概述xcode 是蘋果公司自己開(kāi)發(fā)的只能在 mac os x 平臺(tái)上運(yùn)行的集成環(huán)境,xcode 具有良好的用戶界面,文件的編碼、測(cè)試,調(diào)試都可
22、以在一個(gè)窗口上運(yùn)行,使用起來(lái)快捷,方便4。我們?cè)谘b有 mac os 電腦下,都是用 xcode 來(lái)開(kāi)發(fā) iphone 應(yīng)用程序。在使用 xcode 進(jìn)行編程設(shè)計(jì)時(shí),xcode 提供模擬器供編程人員測(cè)試程序。有關(guān) xcode 的前世今生,前生是繼承自 next 的 project builder。the xcode suite 里面有 gnu compiler collection 自由軟件 (gcc、 apple-darwin9-gcc-4.0.1 等) ,并支持 objective-c ,c 語(yǔ)言、c+、objective-c+等,而且提供 cocoa、java 以及carbon 等編程模式
23、。關(guān)于 xcode 的歷史版本主要由以下幾種:從 xcode3.1 開(kāi)始為 ios 開(kāi)發(fā)環(huán)境。xcode4.0 于 2011 年 3 月 9 日正式發(fā)布,而且該版本非 apple 開(kāi)發(fā)者也能夠從蘋果商店付費(fèi)下載。xcode4.1 開(kāi)始,對(duì)于 os x 10.6 和 os x 10.7 用戶可以從商店免費(fèi)下載xcode 的主要版本為 xcode5,支持 ios7,可以在 mac app store 免費(fèi)下載,也可以在其它 ios 計(jì)劃網(wǎng)站下載xcode6 為最新的版本,支持蘋果公司最新發(fā)布的語(yǔ)言 swift。1.4.3 mvc 概述mvc 全名是 model view controller,是一
24、種軟件設(shè)計(jì)模式,用一種業(yè)務(wù)邏輯、界面、數(shù)據(jù)顯示分離的方法編寫代碼的方法,mvc 定義了 cocoa 框架的總體結(jié)構(gòu),是一種高級(jí)別的模式,將應(yīng)用分為模型層、視圖層、控制器層。同時(shí) mvc 名稱也是是模型-視圖-控制器(controller)的英文首字母的縮寫。它最初出現(xiàn)在 20 世紀(jì) 70 年代的smalltalk 編程語(yǔ)言中5。在編寫代碼的同時(shí)使用 mvc 模式,能減少代碼之間的耦合。使程序結(jié)構(gòu)清晰明朗,便于后期代碼的修改和維護(hù)。1.4.4 sqlite 數(shù)據(jù)庫(kù)如果你正在使用 mac os 雪豹(mac os x v10.6 snow leopard)或者更新版本的系統(tǒng),那么系統(tǒng)上已經(jīng)裝有 s
25、qlite 了。sqlite 是開(kāi)源的、內(nèi)嵌式的關(guān)系數(shù)據(jù)庫(kù),ios 平臺(tái)包裝的是第三版,即是 sqlite3,sqlite3 的特點(diǎn)是使用起來(lái)方便、結(jié)構(gòu)緊湊、高度便攜、高效和可靠。實(shí)現(xiàn)了支持事務(wù)與零配置等的 sql 數(shù)據(jù)庫(kù)引擎特性。 sqlite3 在 xcode 中使用起來(lái)創(chuàng)建有相應(yīng)的代碼,使用時(shí)要導(dǎo)入相應(yīng)的數(shù)據(jù)庫(kù)框架:libsqlite3.dylib6。在大多數(shù)情況下,只要確保 sqlite3 的二進(jìn)制文件的存在就可以用來(lái)開(kāi)始創(chuàng)建、連接和使用數(shù)據(jù)庫(kù)。這點(diǎn)與其他數(shù)據(jù)庫(kù)管理系統(tǒng)很不相同。本論文所使用的第三方庫(kù) fmdb 就是建立在 sqlite3 數(shù)據(jù)庫(kù)上的。1.4.5 http/tcp 通信
26、本次論文采用 http 協(xié)議和客戶端通信7,http 因?yàn)樗暮?jiǎn)捷的方式,還可適用于分布式的超媒體信息系統(tǒng)。從它 1990 年提出到現(xiàn)在,經(jīng)過(guò)這么多年的發(fā)展也得到了不斷得到擴(kuò)展和完善。而且它是屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議。http 全名為超文本傳輸協(xié)議,一般基于 tcp 的連接方式。它的主要特點(diǎn)有客戶向服務(wù)器請(qǐng)求服務(wù)時(shí),只要傳送請(qǐng)求方法和路徑。常用請(qǐng)求方式有 get、head、post、支持客戶/服務(wù)器模式。http 允許傳輸?shù)臄?shù)據(jù)對(duì)象沒(méi)有任何限制。http 協(xié)議是無(wú)狀態(tài)協(xié)議。無(wú)連接的意思就是每次連接只處理一個(gè)請(qǐng)求。在 ipad 端可以向服務(wù)器發(fā)送 post 或 get 方式請(qǐng)求。因?yàn)?ios
27、sdk 中的 http 網(wǎng)絡(luò)請(qǐng)求 api 用起來(lái)根復(fù)雜,所以本次論文用到的 asi 封裝了系統(tǒng)的 cfnetwork 框架,而且 asi 是用 objective-c 寫的,可以直接在 mac 系統(tǒng)或 ios 應(yīng)用中直接使用。asi 目前已經(jīng)不更新了,但是由于效率高,功能完善,所以現(xiàn)在使用的人也很多,我們 asi 發(fā)請(qǐng)求有兩種方式:同步請(qǐng)求和異步請(qǐng)求,而且有相應(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 平臺(tái)的點(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)同一桌號(hào)顧客加菜;(8)后廚接收菜單(9)收銀處通過(guò)桌號(hào)收銀;2.1.3 系統(tǒng)范圍和系統(tǒng)邊界任何系統(tǒng)都不可能包羅萬(wàn)象,本系統(tǒng)主要是為了提供一種餐館點(diǎn)菜新型模式和新的體驗(yàn)。系統(tǒng)面向的對(duì)象主要是來(lái)餐館就餐的顧客。后臺(tái)和收銀則是面向餐館管理人員。通過(guò)重新分配點(diǎn)菜角色來(lái)達(dá)到用餐新體驗(yàn)。2.1.4 功能概述本系統(tǒng)面向 2 類群體,顧客,餐館管理者對(duì)于顧客:(1)通過(guò) app 瀏覽餐館主頁(yè);(2)app 點(diǎn)餐;(3)一鍵分享到自己的微博等;(4)查看菜單。餐
29、館管理者:(1)收銀(2)送單(3)更新菜單數(shù)據(jù)庫(kù)2.1.5 業(yè)務(wù)流程圖圖 2.1 點(diǎn)菜系統(tǒng)流程圖2.2 詳細(xì)功能需求詳細(xì)功能需求首先需求分析的目的是確切的回答:“系統(tǒng)必須做什么?8”本系統(tǒng)主要分成兩大模塊,是前臺(tái)模塊和后臺(tái)模塊,而這兩個(gè)模塊又有自己的精確的劃分,具體的模塊劃分如下:(1)進(jìn)入界面模塊打開(kāi)點(diǎn)菜 app 后,可以看到兩個(gè)選擇按鈕,選擇網(wǎng)站首頁(yè)則進(jìn)入瀏覽網(wǎng)頁(yè),按app 右上角按鈕可返回,第二個(gè)則是進(jìn)入點(diǎn)菜系統(tǒng)的按鈕。這個(gè)模塊主要是在顧客剛要進(jìn)入點(diǎn)菜系統(tǒng)之前,可以通過(guò)這個(gè)模塊的網(wǎng)站首頁(yè)這個(gè)功能建立對(duì)餐館了解的過(guò)程。顧客可以隨時(shí)通過(guò)此功能訪問(wèn)餐館的官網(wǎng)。當(dāng)點(diǎn)擊進(jìn)入點(diǎn)菜系統(tǒng)則跳轉(zhuǎn)到點(diǎn)菜系
30、統(tǒng)的界面。餐館可以通過(guò)這個(gè)界面的網(wǎng)站功能拉近與顧客的距離。(2)菜品展示模塊及點(diǎn)菜模塊當(dāng)進(jìn)入點(diǎn)菜系統(tǒng)后,ipad 上會(huì)陳列出各種賞心悅目的菜式供顧客瀏覽,顧客可以通過(guò)手指的點(diǎn)擊,滑動(dòng)操作來(lái)完成點(diǎn)菜,顧客瀏覽圖文并茂的菜單,自己來(lái)點(diǎn)菜,不需要他人的指導(dǎo)。充分把傳統(tǒng)的點(diǎn)菜方式釋放。(3)一鍵分享模塊當(dāng)今社會(huì),發(fā)微博,發(fā)消息,分享朋友圈,點(diǎn)贊。這是社交新方式,分享自己的生活,為別人發(fā)的微博點(diǎn)贊,評(píng)論。所以當(dāng)顧客碰到喜歡的菜式時(shí),顧客可以通過(guò)這個(gè)模塊來(lái)分享自己的選擇??梢酝ㄟ^(guò)新浪微博,騰訊微博,email 等各種方式來(lái)進(jìn)行分享。 (4)我的菜單模塊通過(guò)這個(gè)模塊,顧客可以對(duì)自己的點(diǎn)菜內(nèi)容進(jìn)行修改,例如,
31、某種菜點(diǎn)多了或少了,某種菜備注為:“微辣” 。同時(shí)在這個(gè)界面底部我們會(huì)給出顧客點(diǎn)菜的總價(jià)格。通過(guò)這個(gè)界面可以和后臺(tái)進(jìn)行交流,是本系統(tǒng)不可缺少的一部分。(5)菜單提交模塊當(dāng)然,菜單修改完成后便是提交,提交菜單的條件有兩個(gè);1.菜單部位空;2.顧客選擇好了點(diǎn)餐位置。(6)歷史菜單模塊顧客可以通過(guò)這個(gè)模塊來(lái)查看自己的點(diǎn)餐詳情,只有點(diǎn)過(guò)餐才會(huì)有自己的記錄,當(dāng)然在這里顧客也可以刪除自己的點(diǎn)餐記錄,并不會(huì)影響到菜單發(fā)送到后臺(tái),因?yàn)轭櫩驮谶@里刪除的只能是存在本地?cái)?shù)據(jù)庫(kù)的菜單數(shù)據(jù),其實(shí)數(shù)據(jù)在提交菜單的時(shí)候就已經(jīng)向服務(wù)器發(fā)送了一份。顧客在結(jié)算時(shí)可以根據(jù)收銀處顯示的菜單來(lái)進(jìn)行結(jié)算。(7)后臺(tái)廚房端模塊這個(gè)模塊是廚
32、房來(lái)接收通過(guò)服務(wù)器發(fā)送來(lái)得點(diǎn)餐信息的過(guò)程,主要是為了餐館后臺(tái)人員獲取顧客點(diǎn)菜信息的模塊。(8)收銀模塊收銀處的菜單是從服務(wù)器下載得到的,這里顧客可以通過(guò)確認(rèn)菜單來(lái)付賬。收銀人員通過(guò)房間名來(lái)查找顧客點(diǎn)餐的信息,然后計(jì)算總價(jià),顧客結(jié)賬。2.3 系統(tǒng)運(yùn)行環(huán)境分析系統(tǒng)運(yùn)行環(huán)境分析(1)開(kāi)發(fā)環(huán)境mac os x version 10.9.2(2)運(yùn)行環(huán)境ipad 模擬器(3)開(kāi)發(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)菜部分是主要是面向顧客來(lái)設(shè)計(jì)的,而后臺(tái)部分是面向后廚人員,收銀則是面向收銀人員來(lái)設(shè)計(jì)的。如 3-1 用
33、例圖所示。下面用例圖表述了本系統(tǒng)總體操作流程,即顧客點(diǎn)單,后臺(tái)接單,收銀的功能。 圖 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í)體以“觀看”來(lái)連接,而菜譜這個(gè)實(shí)體的屬性有菜名,菜的種類,菜價(jià)等。其他關(guān)系以此類推。圖 3-2 顧客訂餐 e-r 圖3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)3.2.1 數(shù)據(jù)庫(kù)關(guān)系圖根據(jù)以上的對(duì)象關(guān)系,建立以下數(shù)據(jù)庫(kù)表數(shù)據(jù)庫(kù)之間各表關(guān)系如下:圖 3-3 數(shù)據(jù)庫(kù)之間的關(guān)系3.2.2 數(shù)據(jù)庫(kù)作用表表 3-1 數(shù)據(jù)庫(kù)作用表數(shù)據(jù)庫(kù)作用room記錄房間號(hào)
34、/桌號(hào)grouptable菜單分類信息menutable菜單具體信息ordertable生成的我的菜單group_recordtable記錄點(diǎn)菜時(shí)間/地點(diǎn)recordtable記錄點(diǎn)菜詳情3.2.3 數(shù)據(jù)庫(kù)信息表(1)地理位置表 room 表 3-2 桌號(hào)表字段字段類型類型說(shuō)明說(shuō)明idinteger主鍵無(wú)實(shí)際意義room_nametext存儲(chǔ)餐位(2)菜單分類信息 grouptable表 3-3 菜式表字段字段類型類型說(shuō)明說(shuō)明idinteger主鍵無(wú)實(shí)際意義kindkindtext菜品類型namenametext細(xì)致分類(3)菜單 menutable表 3-4 菜單詳情表字段字段類型類型說(shuō)明說(shuō)
35、明idinteger主鍵無(wú)實(shí)際意義groupidgroupidtext分組類型ikindikindtext細(xì)致分組類型namenametext菜名pricepriceinteger菜的價(jià)格unitunittext數(shù)量detaildetailtext詳情picnamepicnametext對(duì)應(yīng)圖片名(軟件包含相應(yīng)圖片)(4)我的菜單 ordertable表 3-5 點(diǎn)單表字段字段類型類型說(shuō)明說(shuō)明idinteger主鍵無(wú)實(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í)間表字段字段類型類型說(shuō)明說(shuō)明idinteger主鍵無(wú)實(shí)際意義datatext點(diǎn)餐日期timetext點(diǎn)餐時(shí)間roomtext餐位(6)點(diǎn)菜詳細(xì)情況 recordtable表 3-7 點(diǎn)菜詳情表字段字段類型類型說(shuō)明說(shuō)明idinteger主鍵無(wú)實(shí)際意義statenumstatenuminteger送菜的數(shù)量menunametext菜名menupricetext菜品價(jià)格menukindtext菜品種類menunuminteger菜的數(shù)量menuremarktext點(diǎn)菜備注groupidinteger辨別屬于不同次點(diǎn)菜3.2.4 a
37、pp 功能模塊預(yù)覽表 3-8 模塊詳情表前臺(tái) app后臺(tái)1.瀏覽餐館主頁(yè)/進(jìn)入點(diǎn)菜系統(tǒng) 1.后臺(tái)接收菜單(一般不用 ipad 接收顯示)2.瀏覽菜單/點(diǎn)菜2.后臺(tái)標(biāo)記是否送菜3.一鍵分享菜式給好友通過(guò)空間或微博3.收銀(一般不用 ipad 接收顯示)4.生成菜單/自動(dòng)計(jì)算價(jià)格/折扣計(jì)算5.選擇你就餐所在位置6.發(fā)送菜單7.生成歷史記錄,可以查閱,刪除3.3 前臺(tái)功能設(shè)計(jì)前臺(tái)功能設(shè)計(jì)(1)瀏覽餐館主頁(yè)/進(jìn)入點(diǎn)菜系統(tǒng):當(dāng)打開(kāi)軟件時(shí),會(huì)有一段過(guò)渡頁(yè)面,彌補(bǔ)等待的空白,點(diǎn)擊網(wǎng)站首頁(yè)按鈕,則直接進(jìn)入餐館的主頁(yè),此時(shí)可以按右上角返回按鈕返回選擇頁(yè)面。點(diǎn)擊進(jìn)入點(diǎn)菜系統(tǒng)則可以進(jìn)入選擇中文版的選擇界面,也可以查
38、歷史菜單(如果未點(diǎn)菜,則為空),繼續(xù)點(diǎn)擊中文版則入菜單頁(yè)面,英文版未實(shí)現(xiàn)。(2)在菜單的主頁(yè)可以通過(guò) tableview,scrollview 來(lái)構(gòu)建菜單瀏覽,選擇,點(diǎn)菜。點(diǎn)菜過(guò)程通過(guò)手指滑動(dòng)挑選,豐富的圖文結(jié)構(gòu)會(huì)更加吸引人的注意力。(3)在詳情界面(通過(guò)模態(tài)彈出實(shí)現(xiàn)) ,ipad 上獨(dú)有的格式顯示,一鍵分享當(dāng)前美食在新浪微博,這里需要在新浪申請(qǐng) app key 和 app secret,并且還要填寫回調(diào)網(wǎng)址才能實(shí)現(xiàn)一鍵分享到微博功能,在這里,已經(jīng)有相當(dāng)成熟的產(chǎn)品供我們使用。如sharesdk。sharesdk 集成了豐富的集成了一些常用的類庫(kù)和接口,支持新浪微博、人人網(wǎng)、豆瓣、騰訊微博、開(kāi)心
39、網(wǎng)、網(wǎng)易微博、qq、微信等,有較為豐富的 ui 選擇,使用起來(lái)方便,而且 sharesdk 對(duì)所有的開(kāi)發(fā)者永久免費(fèi)。(4)選擇界面我的菜單則進(jìn)入菜單界面,菜單界面通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)點(diǎn)菜內(nèi)容tableview 則用來(lái)顯示,并且可以在此界面修改點(diǎn)菜內(nèi)容(菜單為空送單為出現(xiàn)uialertview 警告框提醒) 。選擇送單則進(jìn)入送單頁(yè)面,點(diǎn)擊位置選擇選擇就餐房間(位置為空送單為出現(xiàn)uialertview 警告框提醒) 。(5)發(fā)送菜單到服務(wù)器并且保存到本地后清空我的菜單內(nèi)容。(6)可以在歷史菜單中查詢本次點(diǎn)菜內(nèi)容。3.43.4后臺(tái)功能設(shè)計(jì)后臺(tái)功能設(shè)計(jì)(1)可以通過(guò)服務(wù)器獲取菜單(準(zhǔn)備運(yùn)用本地服務(wù)器來(lái)模擬過(guò)
40、程)向服務(wù)器發(fā)送 get 請(qǐng)求獲取倆個(gè)數(shù)據(jù)庫(kù),存到本地,然后取數(shù)據(jù)(2)標(biāo)記是否送菜修改數(shù)據(jù)庫(kù)表 statenum 值來(lái)確定送菜的數(shù)量。(3)收銀端收銀 首先收銀端存在密碼,須向服務(wù)器發(fā)送密碼才能登錄,且收銀端有修改密碼的功能。便于餐館管理。然后就是向服務(wù)器發(fā)送 get 請(qǐng)求獲取倆個(gè)數(shù)據(jù)庫(kù),存到本地,然后取數(shù)據(jù)。4 4 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)4.1 前臺(tái)功能模塊的實(shí)現(xiàn)前臺(tái)功能模塊的實(shí)現(xiàn)4.1.1 網(wǎng)站首頁(yè)功能當(dāng)運(yùn)行打開(kāi)軟件后可以得到下面的界面,首先當(dāng)你點(diǎn)擊網(wǎng)站首頁(yè),系統(tǒng)會(huì) ipad 端打開(kāi)特定的網(wǎng)站(餐館的網(wǎng)站主頁(yè)) ,進(jìn)入之后可以按右上角的返回按鈕返回 app,這個(gè)屬于前臺(tái)模塊的一部分,可以讓人們
41、在要點(diǎn)菜同時(shí)對(duì)餐館自身增加一個(gè)了解的途徑。點(diǎn)擊點(diǎn)菜系統(tǒng)則進(jìn)入點(diǎn)菜系統(tǒng)開(kāi)始點(diǎn)菜。下面用一個(gè)圖來(lái)展示這個(gè)過(guò)程:圖 4-1 開(kāi)始界面操作流程圖具體代碼如下: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 來(lái)顯示網(wǎng)頁(yè)內(nèi)容。在 webview 上加載網(wǎng)頁(yè)請(qǐng)求。4.1.2 點(diǎn)菜功能這個(gè)功能模塊是當(dāng)顧客點(diǎn)擊進(jìn)入后顯示,充滿視覺(jué)和觸覺(jué)操作的一個(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)菜按鈕來(lái)進(jìn)行點(diǎn)菜操作。當(dāng)然,每當(dāng)顧客選好某道菜時(shí),可以點(diǎn)擊查詢?cè)斍閬?lái)查詢看菜品詳情。點(diǎn)菜結(jié)束后則可點(diǎn)
43、擊我的菜單來(lái)進(jìn)入菜單界面。總結(jié)下這個(gè)小模塊中所包含的功能有:(1)顧客瀏覽菜式;(2)顧客查看菜品詳情;(3)點(diǎn)菜操作;(4)進(jìn)入我的菜單。這些操作可以用下圖來(lái)表示圖 4-2 點(diǎn)菜操作圖點(diǎn)菜界面的具體實(shí)現(xiàn)代碼如下:瀏覽菜式可以用 uiscrollview 來(lái)顯示內(nèi)容,具體實(shí)現(xiàn)方法有databaseoperation scrollviewstart:_scrollview witharray:_dataarraywithopensection:_opensection;在這里我們用一個(gè)自定義的數(shù)據(jù)操作類 databaseoperation 來(lái)進(jìn)行數(shù)據(jù)處理,_scrollview 代表滑動(dòng)得菜單視
44、圖,_dataarray 則是存放數(shù)據(jù)的數(shù)組,_opensection 是記錄當(dāng)前要打開(kāi)的界面菜單的表的分區(qū)。在這個(gè)方法中,我們可以通過(guò) scrollview.contentsize 來(lái)設(shè)置 uiscrollview 的容量,如scrollview.contentsize=cgsizemake(scrollview.frame.size.width*array.count, scrollview.frame.size.height);4.1.3 一鍵分享現(xiàn)如今用手機(jī)來(lái)交際成為了一種不可替代的時(shí)尚9。當(dāng)顧客使用此功能時(shí),可以將自己喜歡的菜式分享在新浪微博、騰訊微博、郵件等。這是一種社會(huì)化分享功能
45、,如分享到新浪微博,要使用新浪的微博開(kāi)放接口進(jìn)行調(diào)用,如發(fā)微博、關(guān)注等,都是需要獲取用戶身份認(rèn)證的。目前微博開(kāi)放平臺(tái)用戶身份 鑒權(quán)主要采用的是oauth2.0。oauth2.0 與 1.0 相比較來(lái)說(shuō), oauth2.0 的整個(gè)授權(quán)驗(yàn)證過(guò)程更簡(jiǎn)單更加地安全。 oauth2.0 是未來(lái)最主要的用戶身份驗(yàn)證和授權(quán)方式10。整個(gè)授權(quán)過(guò)程如下:(1)第三方應(yīng)用向用戶請(qǐng)求(authorization request)進(jìn)行授權(quán),用戶同意授權(quán)(authorization grant) ,或者取消;(2)第三方應(yīng)用向新浪的授權(quán)服務(wù)器發(fā)請(qǐng)求(authorization grant) ,索要通行證,新浪的授權(quán)服務(wù)
46、器把通行證(access token)給第三方應(yīng)用;(3)第三方應(yīng)用使用通行證(access token)獲取用戶的新浪微博的某些信息 (protected resources) ;關(guān)于 oauth2.0 協(xié)議的授權(quán)流程可見(jiàn)下面的流程圖,其中 client 指第三方應(yīng)用,resource owner 指用 戶,authorization server 指新浪的授權(quán)服務(wù)器,resource server 是api 服務(wù)器。圖 4-3 oauth2.0 授權(quán)圖這里我們用得時(shí)第三方類庫(kù) sharesdk;首先在入口類 zcappdelegate 中實(shí)現(xiàn)相關(guān)的回調(diào)方法,如分享在新浪微博 sharesd
47、k connectsinaweibowithappkey:3720894884appsecret:9a57c722ef1fabed0c6decd2b3daa4a3redirecturi:http:/;appkey 和 appsecret 是在新浪的微博開(kāi)放平臺(tái)申請(qǐng)可以得到,redirecturi 則是申請(qǐng)應(yīng)用必須填寫的回調(diào)網(wǎng)址,一般都填軟件下載地址。然后去分享觸發(fā)方法中觸發(fā)第三方類庫(kù)提供的方法即可,在這里 ipad 分享有些特別,如果使用 ipad 分享,則要:(1)創(chuàng)建 ipad 容器id container=sharesdk container;container setipadconta
48、inerwithview:sender arrowdirect:uipopoverarrowdirectionup;(2)然后定制自己的分享內(nèi)容比如可以在發(fā)微博時(shí)插入特定的圖片,可以通過(guò)nsbundle mainbundlepathforresource:menuname oftype:jpg來(lái)調(diào)用資源里面存在的 menuname.jpg 圖片。(3)第三步則是可以通過(guò) showshareactionsheet 方法來(lái)打開(kāi)分享界面,在這里用三個(gè) if 語(yǔ)句來(lái)判斷分享過(guò)程:if (state = ssresponsestatesuccess) /分享成功if (state = ssrespons
49、estatecancel) /取消分享if (state = ssresponsestatefail) /分享失敗在 if 語(yǔ)句的判斷后用 uialertview(警告框)來(lái)顯示分享操作結(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)入,在這里可以對(duì)選擇的菜品進(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)菜的備注,對(duì)廚房進(jìn)行提示;(4)參考價(jià)格顯示菜品總價(jià);(5)點(diǎn)擊送單則進(jìn)入送單頁(yè)面(6)當(dāng)點(diǎn)菜數(shù)目為零,顧客點(diǎn)擊送單時(shí),會(huì)有警告框自
51、動(dòng)提示。如修改某分菜的的內(nèi)容時(shí),會(huì)調(diào)用在自定義數(shù)據(jù)操作類的加號(hào)方法。通過(guò)下面代碼我們可以看到,插入操作就是普通的 sql 語(yǔ)句,這里就是利用 fmdb 這種第三方類庫(kù)的好處,比如我們所知的 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ì)膩的視覺(jué)體驗(yàn)。選好餐位后,繼續(xù)選擇送單則完成點(diǎn)餐過(guò)程,注意,如果沒(méi)有選擇送餐的位置,則依舊無(wú)法提交菜單。選好后也會(huì)將顧客點(diǎn)菜的內(nèi)容傳給服務(wù)器。調(diào)用的方法是/上傳數(shù)據(jù)庫(kù)到服務(wù)器+(void)requesttosendsqlitetoserverwithpath;在這里我們發(fā)送的是 post 請(qǐng)求。4.1.6 歷史菜單當(dāng)提交完成
53、后,點(diǎn)擊返回,可返回點(diǎn)菜頁(yè)面,此時(shí)依舊可以繼續(xù)加菜,當(dāng)你想查看自己的訂單時(shí),可以選擇返回,則可返回至歷史菜單頁(yè)面,點(diǎn)擊歷史菜單可以點(diǎn)擊查閱按鈕查詢點(diǎn)餐的詳情。相關(guān)代碼如下_dataarray=databaseoperation getdatafromgrtableretain; /獲取數(shù)據(jù)源當(dāng)我們獲取了數(shù)據(jù)源后可以通過(guò)表的代理來(lái)調(diào)用代理方法來(lái)布置歷史菜單界面數(shù)據(jù)-(nsinteger)tableview:(uitableview*)tableview numberofrowsinsection:(nsinteger)section/表分成多少行-(uitableviewcell*)tablev
54、iew:(uitableview*)tableview cellforrowatindexpath:(nsindexpath *)indexpath/表每一行的內(nèi)容4.2 后臺(tái)等功能的實(shí)現(xiàn)后臺(tái)等功能的實(shí)現(xiàn)4.2.1 廚房端接受數(shù)據(jù)顧客完成點(diǎn)餐后,打開(kāi)廚房端,會(huì)接受到顧客發(fā)送來(lái)得點(diǎn)餐信息,詳情包括:點(diǎn)餐的餐位或者房間,點(diǎn)餐的詳細(xì)內(nèi)容等。在進(jìn)入主頁(yè)面前我們要先從服務(wù)器請(qǐng)求數(shù)據(jù),這個(gè)請(qǐng)求方法寫在進(jìn)入之前的緩沖界面。 _enginer requestgetdatefromserver; /從服務(wù)器請(qǐng)求數(shù)據(jù)_sectionarray=dataprocessing getdatafromgrtable r
55、etain; /獲取表頭_dataarray=dataprocessing getdatafromrecordtable:1; /獲取表的第一行數(shù)據(jù)然后再調(diào)用表的協(xié)議方法可以布表。4.2.2 收銀端結(jié)賬顧客用餐結(jié)束后,可以到收銀臺(tái)完成結(jié)賬,這個(gè)模塊使用于后臺(tái)的收銀人員,收銀人員在搜索框輸入相應(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)測(cè)試系統(tǒng)測(cè)試5.1 測(cè)試目的和概念測(cè)試目的和概念系統(tǒng)測(cè)試就是通過(guò)各種手段和測(cè)試工具,判斷點(diǎn)餐軟件系統(tǒng)是否能夠滿足預(yù)期期望。從打開(kāi)本系統(tǒng)的界面到完成的整個(gè)過(guò)程中的各個(gè)模塊進(jìn)行測(cè)試分析,看其是否符合預(yù)期的效果,找出和設(shè)計(jì)有偏差的地方。例如軟件用戶是不是不能訪問(wèn)某個(gè)模塊,某個(gè)模塊沒(méi)有按照預(yù)期的設(shè)計(jì)功能進(jìn)行運(yùn)行。它的任務(wù)是盡可能的徹底檢查出程序中的錯(cuò)誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗(yàn)系統(tǒng)做的
57、怎么樣。 測(cè)試開(kāi)始就把整個(gè)系統(tǒng)作為一個(gè)實(shí)體來(lái)測(cè)試是不現(xiàn)實(shí)的。在軟件工程的環(huán)境中的測(cè)試過(guò)程,實(shí)際上有 4個(gè)步驟的測(cè)試序列,最開(kāi)始的就是每個(gè)單獨(dú)模塊的測(cè)試,以保證每個(gè)單元的功能是正確的,這種測(cè)試是單元測(cè)試,單元測(cè)試主要用的是白盒測(cè)試;接下來(lái)則把所有的模塊集成一起形成一個(gè)完整的軟件包。在裝配同時(shí)進(jìn)行的測(cè)試就是集成測(cè)試主要用的是黑盒測(cè)試;然后就是進(jìn)行一系列的高級(jí)測(cè)試。必須測(cè)試在需求分析階段確認(rèn)下來(lái)的確認(rèn)標(biāo)準(zhǔn),確認(rèn)測(cè)試是對(duì)軟件滿足預(yù)期所有功能和行為的保障。在確認(rèn)測(cè)試的階段,只使用黑盒測(cè)試技術(shù)。5.2 測(cè)試原理測(cè)試原理我們學(xué)過(guò)的軟件系統(tǒng)測(cè)試的方法中,比較好用的方法就是黑盒測(cè)試和白盒測(cè)試。下面就簡(jiǎn)單的介紹一
58、下黑盒測(cè)試和白盒測(cè)試的基本概念。黑盒測(cè)試:在測(cè)試的過(guò)程中,把程序看成一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過(guò)程的情況下,也就是說(shuō),黑盒測(cè)試是對(duì)于程序的接口進(jìn)行測(cè)試,只檢測(cè)程序的功能是否都是按照規(guī)格說(shuō)明書規(guī)格進(jìn)行正常使用,程序是否能正確的接收輸入數(shù)據(jù)產(chǎn)生輸出信息,還要保證外部信息,文件或者數(shù)據(jù)庫(kù)的完整性。黑盒測(cè)試著眼于程序外部結(jié)構(gòu),而不考慮內(nèi)部邏輯,所以黑盒測(cè)試又叫功能測(cè)試或者是數(shù)據(jù)驅(qū)動(dòng)測(cè)試。白盒測(cè)試:這個(gè)測(cè)試和黑盒測(cè)試的方法是相反的。這種方法好比是把測(cè)試程序一個(gè)透明的白盒子里,也可以說(shuō)是完全了解程序的內(nèi)部結(jié)構(gòu)和處理的過(guò)程,是對(duì)軟件的過(guò)程性細(xì)節(jié)進(jìn)行檢查和修改。它要求測(cè)試人員了解程序內(nèi)部
59、的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)出適當(dāng)?shù)臏y(cè)試用例,對(duì)程序邏輯進(jìn)行測(cè)試。通過(guò)在不同點(diǎn)檢查,確定實(shí)際狀態(tài)是不是能按照預(yù)期要求進(jìn)行工作。因此白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試,亦或是邏輯驅(qū)動(dòng)測(cè)試。5.3 測(cè)試用例設(shè)計(jì)測(cè)試用例設(shè)計(jì)(1)打開(kāi)軟件首頁(yè)顯示開(kāi)始界面;(2)由于系統(tǒng)不完善,添加菜品沒(méi)有寫接口,所以只能手動(dòng)添加到數(shù)據(jù)庫(kù),如添加菜品:“大白菜 test” 。(3)點(diǎn)菜界面,用戶點(diǎn)菜的界面;(4)我的菜單模塊:直接點(diǎn)擊我的菜單,送單。(5)點(diǎn)菜模塊測(cè)試:選擇大廚炒飯,鐵板鵝肝粒炒飯,魚湯米線,然后點(diǎn)擊送單;(6)一鍵分享功能模塊:點(diǎn)擊登錄新浪微博,點(diǎn)擊發(fā)送;(7)選擇餐位模塊:選擇餐位“四季軒” ,點(diǎn)擊送單;(8)
60、不選餐位點(diǎn)擊送單。(9)后臺(tái)模塊測(cè)試打開(kāi)后臺(tái)軟件,看四季軒的菜單是否能接收? (8) 打開(kāi)收銀端,在搜索框輸入:“四季軒” ,然后點(diǎn)擊總價(jià)按鈕;5.4 測(cè)試結(jié)果測(cè)試結(jié)果依照 5.3 節(jié)給出的測(cè)試用例,測(cè)試結(jié)果用圖來(lái)表示,依測(cè)試序號(hào)排列,如下圖:(1)打開(kāi)軟件,顯示網(wǎng)站首頁(yè)和點(diǎn)菜系統(tǒng),具體如下圖所示。圖 5-1 開(kāi)始界面(2)打開(kāi)數(shù)據(jù)庫(kù),輸入菜品的相應(yīng)信息,并且導(dǎo)入一張大白菜.jpg 圖片,然后重新運(yùn)行軟件圖 5-2 插入菜品圖在軟件上得結(jié)果如下圖所示5-3 實(shí)際插入效果圖(3)點(diǎn)菜界面圖如下:圖 5-4 點(diǎn)菜界面圖(4)如圖 5-4 所示,提示菜單不能為空?qǐng)D 5-5 我的菜單模塊警告框(5)當(dāng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 助產(chǎn)師復(fù)習(xí)試題含答案
- 2025年度智能電網(wǎng)規(guī)劃設(shè)計(jì)合同
- 醫(yī)保協(xié)議合同范本
- 農(nóng)村硅藻泥采購(gòu)合同范本
- 儀器 借用合同范本
- cng纏繞氣瓶合同范本
- 2024年半導(dǎo)體分立器件項(xiàng)目評(píng)估報(bào)告
- 北京辦公裝修合同范本
- 樓地面找平工程合同范本
- 會(huì)議室使用合同范本
- 杭州市淳安縣國(guó)有企業(yè)招聘筆試真題2024
- 2024政府采購(gòu)評(píng)審專家考試真題庫(kù)及答案
- 2025年道路貨運(yùn)駕駛員從業(yè)資格證模擬考試題
- 數(shù)學(xué)-安徽省皖南八校2025屆高三上學(xué)期12月第二次大聯(lián)考試題和答案
- 退市新規(guī)解讀-上海證券交易所、大同證券
- 融資報(bào)告范文模板
- 桃李面包盈利能力探析案例11000字
- GB/Z 30966.71-2024風(fēng)能發(fā)電系統(tǒng)風(fēng)力發(fā)電場(chǎng)監(jiān)控系統(tǒng)通信第71部分:配置描述語(yǔ)言
- 腦梗死的護(hù)理查房
- 2025高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):概率與統(tǒng)計(jì)的綜合應(yīng)用(十八大題型)含答案
- 2024-2030年中國(guó)紫蘇市場(chǎng)深度局勢(shì)分析及未來(lái)5發(fā)展趨勢(shì)報(bào)告
評(píng)論
0/150
提交評(píng)論