餐飲大眾點(diǎn)評(píng)_第1頁
餐飲大眾點(diǎn)評(píng)_第2頁
餐飲大眾點(diǎn)評(píng)_第3頁
餐飲大眾點(diǎn)評(píng)_第4頁
餐飲大眾點(diǎn)評(píng)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

餐飲大眾點(diǎn)評(píng)1引言本課程是基于廣受好評(píng)的獨(dú)立第三方消費(fèi)點(diǎn)評(píng)網(wǎng)站——大眾點(diǎn)評(píng)網(wǎng)中的餐飲點(diǎn)評(píng)系統(tǒng)設(shè)計(jì)的。大眾點(diǎn)評(píng)網(wǎng)于2003年4月成立于上海。其一直致力于城市消費(fèi)體驗(yàn)的溝通和聚合。首創(chuàng)并領(lǐng)導(dǎo)的第三方評(píng)論模式已成為互聯(lián)網(wǎng)的一個(gè)新熱點(diǎn)。大眾點(diǎn)評(píng)移動(dòng)客戶端通過移動(dòng)互聯(lián)網(wǎng),結(jié)合地理位置以及網(wǎng)友的個(gè)性化消費(fèi)需求,為網(wǎng)友隨時(shí)隨地提供餐飲、購物、休閑娛樂及生活服務(wù)等領(lǐng)域的商戶信息、消費(fèi)優(yōu)惠以及發(fā)布消費(fèi)評(píng)價(jià)的互動(dòng)平臺(tái),這種貼心的設(shè)計(jì)使其已成為人們本地生活必備的工具。而其中大眾點(diǎn)評(píng)網(wǎng)主要致力的餐飲點(diǎn)評(píng)服務(wù)類尤為大眾所喜愛。它做到了使商戶中所有的評(píng)價(jià)信息都來源于大眾,服務(wù)于大眾。每個(gè)人都可以自由發(fā)表對(duì)商戶的評(píng)論,好則譽(yù)之,差則貶之,以此來向大家分享自己的消費(fèi)心得。它的種種優(yōu)點(diǎn)使我們對(duì)這個(gè)評(píng)價(jià)系統(tǒng)非常感興趣,所以我們決定選用大眾點(diǎn)評(píng)網(wǎng)中的餐飲評(píng)價(jià)模塊來作為我們這次課程設(shè)計(jì)的題目。2需求分析2.1系統(tǒng)功能分析對(duì)菜品(餐館名稱、菜系、菜名)進(jìn)行管理進(jìn)行評(píng)分管理-計(jì)算分值、添加評(píng)分、添加評(píng)價(jià)和建議給各種菜打分,包括評(píng)分,寫評(píng)語,寫建議菜品排名2.2系統(tǒng)設(shè)計(jì)目標(biāo)對(duì)菜品(餐館名稱、菜系、菜名)進(jìn)行管理,根據(jù)用戶選擇,輸出當(dāng)前餐廳的菜系菜名進(jìn)行評(píng)分管理-計(jì)算分值、添加評(píng)分、添加評(píng)價(jià)和建議,根據(jù)評(píng)分的次數(shù)和總數(shù)計(jì)算評(píng)分,并根據(jù)用戶的評(píng)分,選擇性將評(píng)價(jià)放入好評(píng),中評(píng)或差評(píng)中給各種菜打分,包括評(píng)分,寫評(píng)語,寫建議給餐廳打分,包括對(duì)總體評(píng)價(jià),口味,服務(wù),環(huán)境的星級(jí)打分菜品排名,給所有餐廳根據(jù)其總體評(píng)價(jià)的星級(jí)排名,并給餐廳內(nèi)每道菜按照其評(píng)分排名添加商戶,在原有餐廳的基礎(chǔ)上,添加新的餐廳菜系菜名,并可以對(duì)其進(jìn)行點(diǎn)評(píng),排名餐廳查找,根據(jù)用戶輸入的餐廳名稱,輸出對(duì)應(yīng)餐廳的菜系菜名3系統(tǒng)設(shè)計(jì)3.1系統(tǒng)功能設(shè)計(jì)逛一逛模塊功能:查看各個(gè)餐館的菜系菜品,即菜品管理1.1店家模塊功能:依次顯示所有餐館名查找模塊功能:根據(jù)輸入的餐館名稱查找相應(yīng)的餐館并輸出菜品信息熱門餐廳模塊功能:根據(jù)總體評(píng)價(jià)的排名依次顯示餐廳星級(jí),即餐廳排名添加商戶模塊功能:添加商戶,即添加餐館及其菜系菜名5..菜系模塊功能:顯示所選餐廳菜系5.1菜名模塊功能:顯示所選餐廳菜系的所有菜名功能:給單道菜以及其所在餐廳評(píng)分功能:顯示菜的評(píng)價(jià)功能:顯示菜的建議功能:顯示菜在餐廳中的排名功能:退出對(duì)單道菜的操作,返回主界面3.2系統(tǒng)工作流程3.3類設(shè)計(jì)與類結(jié)構(gòu)(小四號(hào)宋體加粗)classMenu//菜品類{public:Menu();intRestaurant();〃輸出餐館intStyOfCooking(int);〃輸出菜系voidaddRestaurant();〃添加商戶stringgetRestaurant(int);〃得到餐館名稱intgetRest(int);//得到餐館所有菜數(shù)目intgetStyoc(int);//得到餐館所有菜系數(shù)目intgetNamoc(int,int);//得到餐館某一菜系所有菜數(shù)目intgeta();〃得到astringgetnam(int,int,int);〃得至U菜名intgetNumOfNam(int,int,int);〃得到菜的編號(hào)intgetBeforNam(int); //得到某一餐館之前所有餐館共有的菜數(shù)目private:staticinta;//餐館個(gè)數(shù)intb,c;〃菜系菜名數(shù)目intrestaurant,styoc;〃餐館,菜系編號(hào)staticstringrest[100];〃餐館數(shù)組staticstringsty[100][100];〃菜系數(shù)組staticstringnam[100][100][100];〃菜名數(shù)組};classRemark//評(píng)分類{public:Remark();voidChoose(inti);〃選擇操作voidRefectory();//餐館點(diǎn)評(píng)intgetrr();//得到rrintgetall();//得到allintgettaste();//得到tasteintgetenvironment();//得到environmentintgetserve();//得到servevoidMark();//菜點(diǎn)評(píng)voidEvaluate();//顯示評(píng)價(jià)voidAdvice();//顯示建議doublegetRemark();//得到Remarkprotected:intaa,bb,cc,x,rr;〃非常好,很好,好,一般,差的評(píng)價(jià)次數(shù),總評(píng)分,餐廳評(píng)價(jià)次數(shù)doublemark;//菜的分?jǐn)?shù)intall,taste,environment,serve;〃總體評(píng)價(jià),口味,環(huán)境,服務(wù)總分?jǐn)?shù)stringgoodComment[100],mediumComment[100],badComment[100],advice[100];//好評(píng)數(shù)組,中評(píng)數(shù)組,差評(píng)數(shù)組};classReview//點(diǎn)評(píng)類{public:Review();voidHot();//熱門餐廳voidout(int);//輸出星級(jí)intallall(int);//餐廳總體評(píng)價(jià)分?jǐn)?shù)intalltaste(int);//餐廳口味分?jǐn)?shù)intallserve(int);//餐廳服務(wù)分?jǐn)?shù)intallenvironment(int);//餐廳環(huán)境分?jǐn)?shù)voidAdd();//添加商戶intNamOfCooking();//顯示菜名voidFind();//查找voidremark();〃點(diǎn)評(píng)voidRanking();〃排名private:intxx,yy,zz;〃餐館,菜系,菜名編號(hào)MenumyMenu;//菜品類對(duì)象myMenuRemarkmyRemark[100];〃評(píng)分類對(duì)象數(shù)組myRemark[100]};3.4開發(fā)與運(yùn)行環(huán)境(小四號(hào)宋體加粗)MicrosoftVisualC++6.04設(shè)計(jì)與實(shí)現(xiàn)(1) 界面設(shè)計(jì)主界面:“逛一逛”界面:“查找”界面:“熱門餐廳”界面:“添加商戶”界面:單道菜寫點(diǎn)評(píng)以及對(duì)當(dāng)前菜所在餐廳的評(píng)價(jià)界面:單道菜的查看評(píng)價(jià)與建議界面(點(diǎn)評(píng)前):單道菜的排名界面(點(diǎn)評(píng)前):對(duì)單道菜操作的退出界面:(2) 設(shè)計(jì)每個(gè)模塊的算法和流程【Review類】private:intxx,yy,zz;//【注釋①】MenumyMenu;//菜單類的對(duì)象RemarkmyRemark[100];//評(píng)分類的對(duì)象數(shù)組,一個(gè)對(duì)象對(duì)應(yīng)一道菜public:【構(gòu)造函數(shù)】Review。:進(jìn)入界面進(jìn)行各種操作輸出標(biāo)題,提醒用戶已進(jìn)入大眾點(diǎn)評(píng)。用“while(l)”做一個(gè)無限循環(huán)來包含函數(shù)中其余的內(nèi)容,在循環(huán)的末尾處詢問用戶是否退出(①是②否),根據(jù)用戶的輸入“cin?j;”來判斷是否退出循環(huán)“if(j==1)break;”以此實(shí)現(xiàn)多次評(píng)價(jià),查看,添加商戶等功能。循環(huán)開頭處輸出主界面的四個(gè)選項(xiàng)“1.逛一逛2.查找3.熱門餐廳4.添加商戶”。然后執(zhí)行一個(gè)“switch”多分支選擇語句?!癳asel”即選擇了主界面中的“逛一逛”,執(zhí)行私有成員中的Menu類的對(duì)象myMenu(以后將直接用myMenu,不再做解釋說明)中的兩個(gè)函數(shù)和“NamOfCookingO"函數(shù)【注釋②】,并將返回值分別賦值給私有成員中的xx,yy,zz【注釋①】?然后執(zhí)行“remark?!焙瘮?shù),進(jìn)行單個(gè)菜的評(píng)價(jià)等功能?!癱ase2”即選擇了主界面中的“查找”,執(zhí)行“Find()”函數(shù),對(duì)用戶輸入的餐廳進(jìn)行查找?!癱ase3”即選擇了主界面中的“熱門餐廳”,執(zhí)行“Hot()”函數(shù),按餐廳評(píng)分排名輸出熱門餐廳以供用戶選。“case4”即選擇了主界面中的“添加商戶”,執(zhí)行“Add()”函數(shù),進(jìn)行餐廳的添加?!境蓡T函數(shù)】:remark():對(duì)所選的菜進(jìn)行評(píng)價(jià)等功能用“while(1)”做一個(gè)無限循環(huán)來包含函數(shù)中其余的內(nèi)容,在循環(huán)的末尾處詢問用戶是否退出(①后退②退出),根據(jù)用戶的輸入“cin?s;”來判斷是否退出循環(huán)“if(s==2)break;”以此實(shí)現(xiàn)對(duì)一道菜多次評(píng)價(jià),多種操作的功能在循環(huán)內(nèi)輸出“①.寫點(diǎn)評(píng)②.查看評(píng)價(jià)③.查看建議④.查看在店中排名⑤.退出”以供用戶選擇3?將用戶的選擇存在d中,如果d小于等于3,則執(zhí)行“myRemark[myMenu.getNumOfNam(xx,yy,zz)-1].Choose(d)”【注釋③④】,即根據(jù)用戶所選,調(diào)用評(píng)分類中的函數(shù)進(jìn)行選項(xiàng)中的操作如果d等于4,則調(diào)用Ranking()函數(shù)如果d等于5,則break,退出循環(huán)Find():對(duì)用戶輸入的餐廳進(jìn)行查找讓用戶輸入想要查找的餐廳,將其賦值給refectory執(zhí)行for循環(huán)語句,初始時(shí)i=0每循環(huán)一次i+1,當(dāng)輸入的餐廳與已有餐廳名字相同時(shí)退出循環(huán)。即當(dāng)"myMenu.getRestaurant(i)二二refectory"時(shí)【注釋③】,執(zhí)行“break”3?執(zhí)行if語句,如果上一步中的i小于餐廳的數(shù)量“if(i<myMenu.geta())”【注釋③】,則將i+1賦值給xx,之后再執(zhí)行“yy二myMenu.StyOfCooking(xx);zz=NamOfCooking();”,【注釋①②】。4?如果沒有滿足if的條件,則執(zhí)行else語句,告訴用戶沒有他要查找的餐廳。NamOfCooking():輸出所選餐廳菜系的菜名單目,返回值為用戶所選的菜名用for循環(huán)語句判斷當(dāng)前這家餐廳所有菜系中共有多少道菜即j的大小2?用for循環(huán)語句循環(huán)j次,輸出這家餐廳的所有菜名及其評(píng)分。循環(huán)內(nèi)執(zhí)行“p=myMenu.getNumOfNam(xx,yy,i+1)-1;cout<<myMenu.getnam(xx-1,yy-1,i)<<""<<myRemark[p].getRemrk()<<"分""【注釋③④】Hot():按餐廳的評(píng)分排名輸出熱門餐廳以供用戶選擇執(zhí)行for循環(huán)語句,將所有餐廳的評(píng)分依次放在rank數(shù)組里“rank[i]二allall(i)"(allall(x):根據(jù)參數(shù)x的值返回餐廳評(píng)分)運(yùn)用for循環(huán)套嵌,把上述rank數(shù)組中的評(píng)分?jǐn)?shù)從大到小進(jìn)行排序再運(yùn)用for循環(huán)套嵌,實(shí)現(xiàn)按照評(píng)分的排序?qū)⒉蛷d排序,再把排名放在c數(shù)組里。實(shí)現(xiàn)方法:在循環(huán)中加入if語句,如判斷排序后的rank數(shù)組中的第一個(gè)數(shù)值與第二家餐廳的評(píng)分?jǐn)?shù)值相等,就將數(shù)字2放在c數(shù)組的第一個(gè)成員中。另外,在執(zhí)行的過程中會(huì)存在多家餐廳評(píng)分相同的情況,故在執(zhí)行的if語句中加入一個(gè)for循環(huán),判斷當(dāng)前這家餐廳的序號(hào)是否已經(jīng)放入過c數(shù)組中,如果已存在過,則不執(zhí)行上述過程,繼續(xù)進(jìn)行循環(huán)。如果沒存在過,則執(zhí)行,并跳出單層循環(huán)。4?運(yùn)用單層for循環(huán),根據(jù)c數(shù)組中的餐廳編號(hào)的排名,用“out(x)”函數(shù),依次輸出餐廳的星級(jí)評(píng)分,并將所選的餐廳序號(hào)賦值給xx,再執(zhí)行“yy=myMenu.StyOfCooking(xx)zz=NamOfCooking()”,【注釋①②】。allall(x):返回編號(hào)為x的餐廳的“總體評(píng)價(jià)”的分?jǐn)?shù)1?運(yùn)用for循環(huán),得到餐廳“總體評(píng)價(jià)”的總評(píng)分和總評(píng)價(jià)次數(shù)【注釋④】2?運(yùn)用if語句,判斷總評(píng)價(jià)次數(shù)是否為零,若為零,則返回0,即餐廳“總體評(píng)價(jià)”評(píng)分為零。若不為零,則返回總評(píng)分除以總評(píng)價(jià)次數(shù)以后的值。alltaste(x):返回編號(hào)為x的餐廳的“口味”的分?jǐn)?shù)1?運(yùn)用for循環(huán),得到餐廳“口味”的總評(píng)分和總評(píng)價(jià)次數(shù)【注釋④】2?運(yùn)用if語句,判斷評(píng)分次數(shù)是否為零,若為零,則返回0,即餐廳“口味”評(píng)分為零。若不為零,則返回總評(píng)分除以總評(píng)價(jià)次數(shù)以后的值。allenvironment(x):返回編號(hào)為x的餐廳的“環(huán)境”的分?jǐn)?shù)1?運(yùn)用for循環(huán),得到餐廳“環(huán)境”的總評(píng)分和總評(píng)價(jià)次數(shù)【注釋④】2?運(yùn)用if語句,判斷評(píng)分次數(shù)是否為零,若為零,則返回0,即餐廳“環(huán)境”評(píng)分為零。若不為零,則返回總評(píng)分除以總評(píng)價(jià)次數(shù)以后的值。allserve(x):返回編號(hào)為x的餐廳的“服務(wù)”的分?jǐn)?shù)1?運(yùn)用for循環(huán),得到餐廳“服務(wù)”的總評(píng)分和總評(píng)價(jià)次數(shù)【注釋④】2?運(yùn)用if語句,判斷評(píng)分次數(shù)是否為零,若為零,則返回0,即餐廳“服務(wù)”評(píng)分為零。若不為零,則返回總評(píng)分除以總評(píng)價(jià)次數(shù)以后的值。out(x):輸出參數(shù)乂個(gè)^,5-x個(gè)^運(yùn)用兩個(gè)for循環(huán),輸出x個(gè)^,5-x個(gè)Add():添加商戶用“while(1)"做一個(gè)無限循環(huán)來包含函數(shù)中其余的內(nèi)容,在循環(huán)的末尾處詢問用戶是否繼續(xù)添加商戶(①繼續(xù)添加商戶②否),根據(jù)用戶的輸入“cin?i;”來判斷是否退出循環(huán)“if(i==2)break;”循環(huán)內(nèi)執(zhí)行myMenu.addRestaurant()函數(shù)【注釋③】Ranking。:菜排名將c數(shù)組用for循環(huán)語句賦初值后(為了在之后的操作中判定c數(shù)組中的元素是否已賦值),執(zhí)行for循環(huán)語句,將當(dāng)前根據(jù)xx的值得到的餐廳的所有菜的評(píng)分依次放在a數(shù)組里“a[i]=myRemark[z-1+i].getRemark()"【注釋④】運(yùn)用for循環(huán)套嵌,把上述a數(shù)組中的評(píng)分?jǐn)?shù)從大到小進(jìn)行排序再運(yùn)用for循環(huán)套嵌,實(shí)現(xiàn)c數(shù)組中第x個(gè)元素的值等于當(dāng)前餐廳內(nèi)第x道菜的排名。算法及思路同Hot()函數(shù)中第4步類似輸出當(dāng)前菜的排名【注釋】:l.xx:用戶所選餐廳編號(hào)yy:用戶所選菜系編號(hào)zz:用戶所選菜名編號(hào)myMenu.Restaurant():輸出餐廳單目,返回值為用戶所選的餐廳編號(hào)myMenu.StyOfCooking(x):輸出所選餐廳菜系單目,返回值為用戶所選的菜系NamOfCooking():輸出所選餐廳菜系的菜名單目,返回值為用戶所選的菜名myMenu.geta():得到myMenu對(duì)象中所有餐廳的總數(shù)量myMenu.getBeforNam(x):返回編號(hào)為x的餐廳之前所有菜名的數(shù)目myMenu.getRest(x):返回編號(hào)為x的餐廳擁有菜名的數(shù)目myMenu.addRestaurant():添加商戶myMenu.getnam(x,y,z):返回編號(hào)為x的餐廳中編號(hào)為y的菜系中編號(hào)為z的菜的名稱myMenu.getNumOfNam(x,y,z):返回值為編號(hào)為x的餐廳中編號(hào)為y的菜系中編號(hào)為z的菜在所有菜中的序號(hào),即在Remark類中擁有100個(gè)成員的myRemark對(duì)象數(shù)組中的成元序號(hào)myRemark[i].getall():返回在評(píng)價(jià)當(dāng)前菜時(shí)評(píng)價(jià)所在餐廳的“總體評(píng)價(jià)”的分?jǐn)?shù)myRemark[i].getrr():返回在評(píng)價(jià)當(dāng)前菜時(shí)評(píng)價(jià)所在餐廳的次數(shù)myRemark[i].Choose(x):根據(jù)用戶的選擇進(jìn)行寫點(diǎn)評(píng)、查看評(píng)價(jià)等操作測試與運(yùn)行結(jié)果測試菜品管理功能(逛一逛):測試查找功能(查找):查找到:未查找到:測試添加商戶功能(添加商戶):添加“甜甜屋”商戶后:測試對(duì)單道菜的操作功能(寫點(diǎn)評(píng)、查看評(píng)價(jià)、查看建議、查看排名)寫點(diǎn)評(píng):添加評(píng)價(jià)后查看評(píng)價(jià),查看建議:添加評(píng)價(jià)后,查看在店中排名:測試對(duì)單道菜操作的退出功能(退出):選擇,否:選擇,是:測試對(duì)餐廳進(jìn)行評(píng)分:對(duì)餐廳評(píng)價(jià):評(píng)價(jià)后餐廳的星級(jí)與排名5結(jié)語5.1結(jié)論與討論為了完成這次大眾點(diǎn)評(píng)餐飲類點(diǎn)評(píng)系統(tǒng)的設(shè)計(jì),我們查閱了很多資料,并參考了大眾點(diǎn)評(píng)網(wǎng)的界面,從最開始的只有點(diǎn)評(píng)功能增加到可以添加商戶、餐廳評(píng)分,將評(píng)價(jià)歸類等許多功能,這個(gè)過程讓我們受益良多,也漸漸發(fā)現(xiàn)了程序?qū)崿F(xiàn)功能時(shí)的趣味性,讓我們擁有了想要實(shí)現(xiàn)更多功能的想法,比如對(duì)單道菜和餐廳同時(shí)賦予分?jǐn)?shù)和星級(jí)的形式。最開始將所有類聯(lián)系在一起我們采取的是繼承的方式,之后經(jīng)過討論發(fā)現(xiàn)這種做法并不能很好的實(shí)現(xiàn)聯(lián)系,所以我們采取了做成私有成員的形式,基本實(shí)現(xiàn)了這次課設(shè)的目標(biāo)。5.2設(shè)計(jì)體會(huì)通過課程設(shè)計(jì)的訓(xùn)練,我進(jìn)一步學(xué)習(xí)和掌握了對(duì)程序的設(shè)計(jì)和編寫,加強(qiáng)了對(duì)類的認(rèn)識(shí),從中體會(huì)到了面向?qū)ο蟪绦蛟O(shè)計(jì)的方便和巧妙。懂得了在進(jìn)行編寫一個(gè)程序之前,要有明確的目標(biāo)和整體的設(shè)計(jì)思想。另外某些具體的細(xì)節(jié)內(nèi)容也是相當(dāng)?shù)闹匾?。這些寶貴的編程思想和從中摸索到的經(jīng)驗(yàn)都是在編程的過程中獲得的寶貴財(cái)富。這些經(jīng)驗(yàn)對(duì)我以后的編程會(huì)有很大的幫助的,我要好好利用。參考文獻(xiàn)劉佳敏,馬廣焜,常燕等.C++面向?qū)ο蟪绦蛟O(shè)計(jì)雙語教程(第2版)?北京:國防工業(yè)出版社錢能.C++程序設(shè)計(jì)教程(修訂版).北京:清華大學(xué)出版社[3]大眾點(diǎn)評(píng):《計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐》課程設(shè)計(jì)任務(wù)劃分課程設(shè)計(jì)題目:姓名設(shè)計(jì)職務(wù)任務(wù)工作量比例馬一尤組長點(diǎn)評(píng)類40%曲思潔組員評(píng)分類30%常浩組員菜品類30%附錄// //--餐飲大眾點(diǎn)評(píng).prj--// Menu.h//菜品類Remark.h//評(píng)價(jià)類Review.cpp//點(diǎn)評(píng)類和測試函數(shù)////彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、//**Menu.h**//彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、#include<iostream>#include<string>usingnamespacestd;classMenu//菜品類{public:Menu(){}intRestaurant()〃輸出餐館{cout<<"\n^^☆☆店家☆☆☆☆'□'『;for(inti=0;i<a;i++){cout<<"§"<<i+1<<"."<<rest[i]<<"";}cout<<endl;cin>>restaurant;returnrestaurant;}intStyOfCooking(intx)//輸出菜系{cout<<"\n^^☆☆菜系☆☆☆for(intj=0;j<100;j++){if(sty[x-1][j]=="")break;}for(inti=0;i<j;i++){cout<<"§"<<i+1<<"."<<sty[x-1][i]<<"";}cout<<endl;cin>>styoc;returnstyoc;}voidaddRestaurant()〃添加商戶{a++;coutvv"★商戶名稱:";cin>>rest[a-1];coutvv"\n菜系數(shù)目(填數(shù)字哦O_O):";cin>>b;for(inti=0;i<b;i++){coutvv"\n★菜系"vvi+lvv":";cin>>sty[a-1][i];coutvv"\n菜名數(shù)目(填數(shù)字哦O_O):";cin>>c;for(intj=0;j<c;j++){coutvv"\n★菜名"vvj+lvv":";cin>>nam[a-l][i][j];}}coutvv"\n★商戶:"vvrest[a-1]vv"添加完畢"vvendl;}stringgetRestaurant(intx)//得到餐館名稱returnrest[x];}intgetRest(intx)//得到餐館所有菜數(shù)目{intall=0;for(inti=0;i<100;i++){if(sty[x-1][i]=="")break;for(intj=0;j<100;j++){if(nam[x-1][i][j]=="")break;}all+=j;}returnall;}intgetStyoc(intx)//得到餐館所有菜系數(shù)目{for(inti=0;i<100;i++){if(sty[x-1][i]=="")break;}returni;}intgetNamoc(intx,inty)〃得到餐館某一菜系所有菜數(shù)目{for(inti=0;i<100;i++){if(nam[x-1][y-1][i]=="")break;}returni;intgeta()〃得到a{returna;}stringgetnam(intx,inty,intz)/得至U菜名{returnnam[x][y][z];}intgetNumOfNam(intx,inty,intz)/得到菜的編號(hào){intrank=0;for(inti=1;i<x;i++){rank+=getRest(i);}for(intj=1;j<y;j++){rank+=getNamoc(x,j);}rank+=z;returnrank;}intgetBeforNam(intx)//得到某一餐館之前所有餐館共有的菜數(shù)目{intall=0;for(inti=0;i<x;i++){all+=getRest(i+1);}returnall;}private:staticinta;//餐館個(gè)數(shù)intb,c;〃菜系菜名數(shù)目intrestaurant,styoc;〃餐館,菜系編號(hào)staticstringrest[100];//餐館數(shù)組staticstringsty[100][100];//菜系數(shù)組staticstringnam[100][100][100];//菜名數(shù)組};stringMenu::rest[100]={"蟹堡王","糖糖小家","福記"};stringMenu::sty[100][100]={{"魯菜","川菜","湘菜打飲品"},「東北菜","粵菜","飲品"},{"閩菜","蘇菜"}};stringMenu::nam[100][100][100]={{{"一品豆腐","香酥雞"},{"魚香肉絲","回鍋肉"},{"臘味合蒸"},{"橙汁","雪碧"}},{{"小雞燉蘑菇","鍋包肉","豬肉燉粉條"},{"梅菜扣肉","白斬雞"},{"辣白菜湯","牛肉蘿卜湯"}},{{"青椒炒肉絲","三杯雞"},{"貴妃雞翅","金玉滿堂"}}};intMenu::a=3;//**Remark.h**#include<iostream>#include<iomanip>#include<string>classRemark//評(píng)分類{public:Remark(){all=0;taste=0;environment=0;serve=0;mark=0;aa=0;bb=0;cc=0;rr=0;x=0;}voidChoose(inti)//選擇操作{switch(i){case1:Mark();break;case2:Evaluate();break;case3:Advice();break;}}voidRefectory()〃餐館點(diǎn)評(píng){inta,b,c,d;cout<<"\n^^☆☆店鋪評(píng)價(jià)☆☆☆cout<<"O_O親,5星好評(píng),您打算給我們幾顆星呢?\n";coutvv"\n★總體評(píng)價(jià):";cin>>a;all+=a;coutvv"★口味:";cin>>b;taste+=b;coutvv"*環(huán)境:";cin>>c;environment+=c;coutvv"★服務(wù):";cin>>d;serve+=d;rr++;}intgetrr()〃得到rr{returnrr;}intgetall()〃得至【」all{returnall;}intgettaste()〃得到taste{returntaste;}intgetenvironment()〃得到environmentreturnenvironment;}intgetserve()〃得到serve{returnserve;}voidMark()〃菜點(diǎn)評(píng){intb,s;if(x!=0)mark=(double)x/(double)(aa+bb+cc);cout<<" ★ 這 道 菜 的 評(píng)分:"vvsetiosflags(ios::fixed)vvsetprecision(l)vvmarkvv"分\n"vvendl;coutvv"l.非常好:10分2.很好:8分3.好:6分4.一般:4分5.很差:2分"vvendl;cin>>b;switch(b){case1:x+=10;aa++;mark=x/(aa+bb+cc);break;case2:x+=8;aa++;mark=x/(aa+bb+cc);break;case3:x+=6;aa++;mark=x/(aa+bb+cc);break;case4:x+=4;bb++;mark=x/(aa+bb+cc);break;case5:x+=2;cc++;mark=x/(aa+bb+cc);break;}coutvv"\nO_O親,您對(duì)這道菜的評(píng)價(jià)如何,口味滿意嗎?\n\n★評(píng)價(jià):";switch(b){case1:case2:case3:cin>>goodComment[aa-1];break;case4:cin>>mediumComment[bb-1];break;case5:cin>>badComment[cc-1];break;}coutvv"\nO_O親,請給我們一些建議,更好的為您服務(wù)吧!\n\n★建議:";cin>>advice[aa+bb+cc-1];cout<<endl;coutvv"*進(jìn)行餐廳評(píng)分\n\n①是②否\n";cin>>s;if(s==1)Refectory();}voidEvaluate()〃顯示評(píng)價(jià){coutvv"☆好評(píng)("vvaavv"條):\n"vvendl;for(inth=0;h<aa;h++)cout<<""<<h+1<<"."<<goodComment[h]<<endl;coutvv"\n☆中評(píng)("vvbbvv"條):\n"vvendl;for(intj=0;j<bb;j++)cout<<""<<j+1<<"."<<mediumComment[j]<<endl;coutvv"\n☆差評(píng)("vvccvv"條):\n"vvendl;for(intk=0;k<cc;k++)cout<<""<<k+1<<"."<<badComment[k]<<endl;cout<<endl;}voidAdvice()〃顯示建議{coutvv"☆建議("vvaa+bb+ccvv"條):\n"vvendl;for(inti=0;i<(aa+bb+cc);i++){coutvv""vvi+1vv"."vvadvice[i]vvendl;}coutvvendl;}doublegetRemark()〃得到Remark{returnmark;}protected:intaa,bb,cc,x,rr;〃非常好,很好,好,一般,差的評(píng)價(jià)次數(shù),總評(píng)分,餐廳評(píng)價(jià)次數(shù)doublemark;//菜的分?jǐn)?shù)intall,taste,environment,serve;〃總體評(píng)價(jià),口味,環(huán)境,服務(wù)總分?jǐn)?shù)stringgoodComment[100],mediumComment[100],badComment[100],advice[100];//好評(píng)數(shù)組,中評(píng)數(shù)組,差評(píng)數(shù)組};//**Review.cpp**#include<iostream>#include<iomanip>#include<string>#include"Menu.h"#include"Remark.h"classReview//點(diǎn)評(píng)類{public:Review(){inti,j;cout<<"**********"<<endl;coutvv"*大眾點(diǎn)評(píng)*"vvendl;cout<<"**********"<<endl;while(1){coutvv"\n\n*l逛一逛*2查找*3熱門餐廳*4添加商戶"vvendl;cin>>i;switch(i){casel:xx=myMenu.Restaurant();yy=myMenu.StyOfCooking(xx);zz=NamOfCooking();remark();break;case2:Find();break;case3:Hot();break;case4:Add();break;}coutvv"\n?_?親,真的要拋棄點(diǎn)點(diǎn)嗎\n\n①是②否\n";cin>>j;if(j==1)break;????????????"vvendl;}}voidHot()〃熱門餐廳{intchoose=0,e=0;intc[100],rank[100];intx=myMenu.geta();inttemp=0;for(intq=0;qv101;q++){c[q]=101;}for(inti=0;ivx;i++){rank[i]=allall(i);}for(intm=0;mvx;m++){for(intn=0;nvx-1;n++){if(rank[n]vrank[n+1]){temp=rank[n];rank[n]=rank[n+1];rank[n+1]=temp;}}}for(intj=0;jvx;j++){e=0;for(intk=0;k<x;k++){if(rank[j]==allall(k)){for(intw=0;w<x;w++){if(c[w]==k)break;}if(w>=x){c[j]=k;e=9;}}if(e==9)break;}}for(intp=0;p<x;p++){coutvv"◎"vvp+lvv""vvmyMenu.getRestaurant(c[p]);coutvv"\n總體評(píng)價(jià):";out(allall(c[p]));coutvv"\n口味:";out(alltaste(c[p]));coutvv"\n環(huán)境:";out(allenvironment(c[p]));cout<<"\n服務(wù):";out(allserve(c[p]));cout<<endl;}cin>>choose;xx=c[choose-l]+l;yy=myMenu.StyOfCooking(xx);zz=NamOfCooking();remark();}voidout(intx)//輸出星級(jí){for(inti=0;i<x;i++)coutvv"★”;for(intj=0;j<5-x;j++)coutvv"☆“;}intallall(intx)//餐廳總體評(píng)價(jià)分?jǐn)?shù){intall=0;intrr=0;for(inti=myMenu.getBeforNam(x);i<(myMenu.getBeforNam(x)+myMenu.getRest(x+1));i++){all+=myRemark[i].getall();rr+=myRemark[i].getrr();}if(rr==0)return0;else{all=all/rr;returnall;}}intalltaste(intx)//餐廳口味分?jǐn)?shù){intall=0;intrr=0;for(inti=myMenu.getBeforNam(x);i<=(myMenu.getBeforNam(x)+myMenu.getRest(x+1));i++){all+=myRemark[i].gettaste();rr+=myRemark[i].getrr();if(rr==0)return0;else{all/=rr;returnall;}}intallserve(intx)//餐廳服務(wù)分?jǐn)?shù){intall=0;intrr=0;for(inti=myMenu.getBeforNam(x);i<=(myMenu.getBeforNam(x)+myMenu.getRest(x+1));i++){all+=myRemark[i].getserve();rr+=myRemark[i].getrr();}if(rr==0)return0;else{all/=rr;returnall;}}intallenvironment(intx)//餐廳環(huán)境分?jǐn)?shù){intall=0;intrr=0;for(inti=myMenu.getBeforNam(x);i<=(myMenu.getBeforNam(x)+myMenu.getRest(x+1));i++){all+=myRemark[i].getenvironment();rr+=myRemark[i].getrr();}if(rr==0)return0;else{all/=rr;returnall;}}voidAdd()〃添加商戶{inti=0;while(1){myMenu.addRestaurant();coutvv"\n①繼續(xù)添加商戶②退出"vvendl;cin>>i;if(i==2)break;}}intNamOfCooking()〃顯示菜名{in

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論