




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 餐飲大眾點(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)論,好則
2、譽(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)功能分析1. 對(duì)菜品(餐館名稱、菜系、菜名)進(jìn)行管理2. 進(jìn)行評(píng)分管理-計(jì)算分值、添加評(píng)分、添加評(píng)價(jià)和建議3. 給各種菜打分,包括評(píng)分,寫評(píng)語,寫建議4. 菜品排名2.2 系統(tǒng)設(shè)計(jì)目標(biāo)1. 對(duì)菜品(餐館名稱、菜系、菜名)進(jìn)行管理,根據(jù)用戶選擇,輸出當(dāng)前餐廳的菜系菜名2. 進(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)中3. 給
3、各種菜打分,包括評(píng)分,寫評(píng)語,寫建議4. 給餐廳打分,包括對(duì)總體評(píng)價(jià),口味,服務(wù),環(huán)境的星級(jí)打分5. 菜品排名,給所有餐廳根據(jù)其總體評(píng)價(jià)的星級(jí)排名,并給餐廳內(nèi)每道菜按照其評(píng)分排名6. 添加商戶,在原有餐廳的基礎(chǔ)上,添加新的餐廳菜系菜名,并可以對(duì)其進(jìn)行點(diǎn)評(píng),排名7. 餐廳查找,根據(jù)用戶輸入的餐廳名稱,輸出對(duì)應(yīng)餐廳的菜系菜名3 系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)功能設(shè)計(jì) 1.逛一逛模塊 功能:查看各個(gè)餐館的菜系菜品,即菜品管理 1.1店家模塊 功能:依次顯示所有餐館名 2.查找模塊 功能:根據(jù)輸入的餐館名稱查找相應(yīng)的餐館并輸出菜品信息 3.熱門餐廳模塊 功能:根據(jù)總體評(píng)價(jià)的排名依次顯示餐廳星級(jí),即餐廳排名 4.
4、添加商戶模塊 功能:添加商戶,即添加餐館及其菜系菜名 5.菜系模塊 功能:顯示所選餐廳菜系 5.1菜名模塊 功能:顯示所選餐廳菜系的所有菜名 5.1.1寫點(diǎn)評(píng)模塊 功能:給單道菜以及其所在餐廳評(píng)分 5.1.2查看評(píng)價(jià)模塊 功能:顯示菜的評(píng)價(jià) 5.1.3查看建議模塊 功能:顯示菜的建議 5.1.4查看在店中排名模塊 功能:顯示菜在餐廳中的排名 5.1.5退出模塊 功能:退出對(duì)單道菜的操作,返回主界面 3.2 系統(tǒng)工作流程3.3 類設(shè)計(jì)與類結(jié)構(gòu)(小四號(hào)宋體加粗)class Menu /菜品類public:Menu();int Restaurant(); /輸出餐館int StyOfCooking(
5、int); /輸出菜系void addRestaurant(); /添加商戶string getRestaurant(int); /得到餐館名稱int getRest(int); /得到餐館所有菜數(shù)目int getStyoc(int); /得到餐館所有菜系數(shù)目int getNamoc(int,int); /得到餐館某一菜系所有菜數(shù)目int geta(); /得到astring getnam(int,int,int); /得到菜名int getNumOfNam(int,int,int); /得到菜的編號(hào)int getBeforNam(int); /得到某一餐館之前所有餐館共有的菜數(shù)目privat
6、e:static int a; /餐館個(gè)數(shù)int b,c; /菜系菜名數(shù)目int restaurant,styoc; /餐館,菜系編號(hào)static string rest100; /餐館數(shù)組static string sty100100; /菜系數(shù)組static string nam100100100; /菜名數(shù)組;class Remark /評(píng)分類public:Remark();void Choose(int i); /選擇操作void Refectory(); /餐館點(diǎn)評(píng)int getrr(); /得到rrint getall(); /得到allint gettaste(); /得到tas
7、teint getenvironment(); /得到 environmentint getserve(); /得到 servevoid Mark(); /菜點(diǎn)評(píng)void Evaluate(); /顯示評(píng)價(jià)void Advice(); /顯示建議double getRemark(); /得到 Remarkprotected: int aa,bb,cc,x,rr; /非常好,很好,好,一般,差的評(píng)價(jià)次數(shù),總評(píng)分,餐廳評(píng)價(jià)次數(shù)double mark; /菜的分?jǐn)?shù)int all,taste,environment,serve; /總體評(píng)價(jià),口味,環(huán)境,服務(wù)總分?jǐn)?shù)string goodComment1
8、00,mediumComment100,badComment100,advice100; /好評(píng)數(shù)組,中評(píng)數(shù)組,差評(píng)數(shù)組;class Review /點(diǎn)評(píng)類public:Review();void Hot(); /熱門餐廳void out(int); /輸出星級(jí)int allall(int); /餐廳總體評(píng)價(jià)分?jǐn)?shù)int alltaste(int); /餐廳口味分?jǐn)?shù)int allserve(int); /餐廳服務(wù)分?jǐn)?shù)int allenvironment(int); /餐廳環(huán)境分?jǐn)?shù)void Add(); /添加商戶int NamOfCooking(); /顯示菜名void Find(); /查找v
9、oid remark(); /點(diǎn)評(píng) void Ranking(); /排名private:int xx,yy,zz; /餐館,菜系,菜名編號(hào)Menu myMenu; /菜品類對(duì)象 myMenu Remark myRemark100; /評(píng)分類對(duì)象數(shù)組 myRemark100;3.4 開發(fā)與運(yùn)行環(huán)境(小四號(hào)宋體加粗)Microsoft Visual C+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ì)單道菜操作的退出界面:(
10、2) 設(shè)計(jì)每個(gè)模塊的算法和流程【Review類】private: int xx,yy,zz; /【注釋】 Menu myMenu; /菜單類的對(duì)象 Remark myRemark100; /評(píng)分類的對(duì)象數(shù)組,一個(gè)對(duì)象對(duì)應(yīng)一道菜public:【構(gòu)造函數(shù)】Review():進(jìn)入界面進(jìn)行各種操作1.輸出標(biāo)題,提醒用戶已進(jìn)入大眾點(diǎn)評(píng)。 2.用“while(1)”做一個(gè)無限循環(huán)來包含函數(shù)中其余的內(nèi)容,在循環(huán)的末尾處詢 問用戶是否退出(是 否),根據(jù)用戶的輸入“cin>>j;”來判斷是否退出循環(huán)“if(j=1)break;”以此實(shí)現(xiàn)多次評(píng)價(jià),查看,添加商戶等功能。 3.循環(huán)開頭處輸出主界面的四
11、個(gè)選項(xiàng)“1.逛一逛 2.查找 3.熱門餐廳 4.添加商 戶”。然后執(zhí)行一個(gè)“switch”多分支選擇語句。 “case 1”即選擇了主界面中的“逛一逛”,執(zhí)行私有成員中的Menu類的對(duì)象myMenu(以后將直接用myMenu,不再做解釋說明)中的兩個(gè)函數(shù)和“NamOfCooking()”函數(shù)【注釋】,并將返回值分別賦值給私有成員中的xx,yy,zz【注釋】.然后執(zhí)行“remark()”函數(shù),進(jìn)行單個(gè)菜的評(píng)價(jià)等功能。 “case 2”即選擇了主界面中的“查找”,執(zhí)行“Find()”函數(shù),對(duì)用戶輸入的餐廳進(jìn)行查找。 “case 3”即選擇了主界面中的“熱門餐廳”,執(zhí)行“Hot()”函數(shù),按餐廳評(píng)分
12、排名輸出熱門餐廳以供用戶選。 “case 4”即選擇了主界面中的“添加商戶”,執(zhí)行“Add()”函數(shù),進(jìn)行餐廳的添加?!境蓡T函數(shù)】:remark():對(duì)所選的菜進(jìn)行評(píng)價(jià)等功能1. 用“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à),多種操作的功能2.在循環(huán)內(nèi)輸出“.寫點(diǎn)評(píng) .查看評(píng)價(jià) .查看建議 .查看在店中排名 .退出”以供用戶選擇3.將用戶的選擇存在d中,如果d小于等于3,則執(zhí)行“myRemarkmyMenu.getN
13、umOfNam(xx,yy,zz)-1.Choose(d)” 【注釋】,即根據(jù)用戶所選,調(diào)用評(píng)分類中的函數(shù)進(jìn)行選項(xiàng)中的操作 4.如果d等于4,則調(diào)用Ranking()函數(shù) 5.如果d等于5,則break,退出循環(huán)Find():對(duì)用戶輸入的餐廳進(jìn)行查找 1.讓用戶輸入想要查找的餐廳,將其賦值給refectory 2.執(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.get
14、a()”【注釋】,則將i+1賦值給xx,之后再執(zhí)行“yy=myMenu.StyOfCooking(xx);zz=NamOfCooking();”,【注釋】。 4.如果沒有滿足if的條件,則執(zhí)行else語句,告訴用戶沒有他要查找的餐廳。NamOfCooking():輸出所選餐廳菜系的菜名單目,返回值為用戶所選的菜名1.用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,
15、i)<<""<<myRemarkp.getRemrk()<<"分"”【注釋】Hot():按餐廳的評(píng)分排名輸出熱門餐廳以供用戶選擇 1.執(zhí)行for循環(huán)語句,將所有餐廳的評(píng)分依次放在rank數(shù)組里“ranki=allall(i)”(allall(x):根據(jù)參數(shù)x的值返回餐廳評(píng)分) 2.運(yùn)用for循環(huán)套嵌,把上述rank數(shù)組中的評(píng)分?jǐn)?shù)從大到小進(jìn)行排序 3.再運(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ù)值相等
16、,就將數(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à)”
17、的總評(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ù)是否為零,若為
18、零,則返回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ù)x個(gè),5-x個(gè)1. 運(yùn)用兩個(gè)for循環(huán),輸出x個(gè),5-x個(gè)。Add():添加商戶1. 用“while(1)”做一個(gè)無限循環(huán)來包含函數(shù)中其余的內(nèi)容,在循環(huán)的末尾處詢問用戶是否繼續(xù)添加商戶(繼續(xù)添加商戶 否),根據(jù)用戶的輸入“cin>&g
19、t;i;”來判斷是否退出循環(huán)“if(i=2)break;”2. 循環(huán)內(nèi)執(zhí)行myMenu.addRestaurant()函數(shù)【注釋】 Ranking():菜排名 1.將c數(shù)組用for循環(huán)語句賦初值后(為了在之后的操作中判定c數(shù)組中的元素是否已賦值),執(zhí)行for循環(huán)語句,將當(dāng)前根據(jù)xx的值得到的餐廳的所有菜的評(píng)分依次放在a數(shù)組里“ai=myRemarkz-1+i.getRemark()”【注釋】 2.運(yùn)用for循環(huán)套嵌,把上述a數(shù)組中的評(píng)分?jǐn)?shù)從大到小進(jìn)行排序 3.再運(yùn)用for循環(huán)套嵌,實(shí)現(xiàn)c數(shù)組中第x個(gè)元素的值等于當(dāng)前餐廳內(nèi)第x道菜的排名。算法及思路同Hot()函數(shù)中第4步類似 4.輸出當(dāng)前菜的排
20、名【注釋】:1.xx:用戶所選餐廳編號(hào) yy:用戶所選菜系編號(hào) zz:用戶所選菜名編號(hào) 2.myMenu.Restaurant():輸出餐廳單目,返回值為用戶所選的餐廳編號(hào)myMenu.StyOfCooking(x):輸出所選餐廳菜系單目,返回值為用戶所選的菜系NamOfCooking():輸出所選餐廳菜系的菜名單目,返回值為用戶所選的菜名 3.myMenu.getRestaurant(x):根據(jù)參數(shù)x,返回對(duì)應(yīng)編號(hào)的餐廳名 myMenu.geta():得到myMenu對(duì)象中所有餐廳的總數(shù)量 myMenu.getBeforNam(x):返回編號(hào)為x的餐廳之前所有菜名的數(shù)目 myMenu.get
21、Rest(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) 4.myRemarki.getall():返回在評(píng)價(jià)當(dāng)前菜時(shí)評(píng)價(jià)所在餐廳的“總體評(píng)價(jià)”的分?jǐn)?shù) myRemarki.getrr():返回在評(píng)價(jià)當(dāng)前菜時(shí)評(píng)價(jià)所在餐廳的次數(shù) myRemarki.Choos
22、e(x):根據(jù)用戶的選擇進(jìn)行寫點(diǎn)評(píng)、查看評(píng)價(jià)等操作(3) 測試與運(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)分,將
23、評(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)都是在編程的
24、過程中獲得的寶貴財(cái)富。這些經(jīng)驗(yàn)對(duì)我以后的編程會(huì)有很大的幫助的,我要好好利用。參考文獻(xiàn)1 劉佳敏,馬廣焜,常燕等.C+面向?qū)ο蟪绦蛟O(shè)計(jì)雙語教程(第2版).北京:國防工業(yè)出版社 2 錢能.C+程序設(shè)計(jì)教程(修訂版).北京:清華大學(xué)出版社34 大眾點(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 - -/- - - - - - - - - -
25、 - - - - - - - - - - - - - - - - - - - - - -Menu.h /菜品類Remark.h /評(píng)價(jià)類Review.cpp /點(diǎn)評(píng)類和測試函數(shù)/* * * * * * * * * * * * * * * * * * * * * * * * * /* * Menu.h * */* * * * * * * * * * * * * * * * * * * * * * * *# include <iostream># include <string>using namespace std;class Menu /菜品類public:Menu()
26、 int Restaurant() /輸出餐館cout<<"n 店家 nn "for(int i=0;i<a;i+)cout<<"§"<<i+1<<". "<<resti<<" "cout<<endl;cin>>restaurant;return restaurant;int StyOfCooking(int x) /輸出菜系cout<<"n 菜系 nn "for(int
27、j=0;j<100;j+)if(styx-1j="") break;for(int i=0;i<j;i+)cout<<"§"<<i+1<<". "<<styx-1i<<" "cout<<endl;cin>>styoc;return styoc;void addRestaurant() /添加商戶a+;cout<<" 商戶名稱:"cin>>resta-1;cout<
28、;<"n菜系數(shù)目(填數(shù)字哦_):"cin>>b;for(int i=0;i<b;i+)cout<<"n菜系"<<i+1<<":"cin>>stya-1i;cout<<"n菜名數(shù)目(填數(shù)字哦_):"cin>>c;for(int j=0;j<c;j+)cout<<"n菜名"<<j+1<<":"cin>>nama-1ij;cout&l
29、t;<"n商戶:"<<resta-1<<" 添加完畢"<<endl;string getRestaurant(int x) /得到餐館名稱return restx;int getRest(int x) /得到餐館所有菜數(shù)目int all=0;for(int i=0;i<100;i+)if(styx-1i="")break;for(int j=0;j<100;j+)if(namx-1ij="")break;all+=j;return all;int getStyo
30、c(int x) /得到餐館所有菜系數(shù)目for(int i=0;i<100;i+)if(styx-1i="") break;return i;int getNamoc(int x,int y) /得到餐館某一菜系所有菜數(shù)目for(int i=0;i<100;i+)if(namx-1y-1i="") break;return i;int geta() /得到areturn a;string getnam(int x,int y,int z) /得到菜名return namxyz;int getNumOfNam(int x,int y,int z
31、) /得到菜的編號(hào)int rank=0;for(int i=1;i<x;i+)rank+=getRest(i);for(int j=1;j<y;j+)rank+=getNamoc(x,j);rank+=z;return rank;int getBeforNam(int x) /得到某一餐館之前所有餐館共有的菜數(shù)目int all=0;for(int i=0;i<x;i+)all+=getRest(i+1);return all;private:static int a; /餐館個(gè)數(shù)int b,c; /菜系菜名數(shù)目int restaurant,styoc; /餐館,菜系編號(hào)sta
32、tic string rest100; /餐館數(shù)組static string sty100100; /菜系數(shù)組static string nam100100100; /菜名數(shù)組;string Menu:rest100="蟹堡王","糖糖小家","福記"string Menu:sty100100="魯菜","川菜","湘菜","飲品","東北菜","粵菜","飲品","閩菜",&
33、quot;蘇菜"string Menu:nam100100100="一品豆腐","香酥雞","魚香肉絲","回鍋肉","臘味合蒸","橙汁","雪碧","小雞燉蘑菇","鍋包肉","豬肉燉粉條","梅菜扣肉","白斬雞","辣白菜湯","牛肉蘿卜湯","青椒炒肉絲","三杯雞&q
34、uot;,"貴妃雞翅","金玉滿堂"int Menu:a=3;/* * * * * * * * * * * * * * * * * * * * * * * * * /* * Remark.h * */* * * * * * * * * * * * * * * * * * * * * * * *# include <iostream># include <iomanip># include <string>class Remark /評(píng)分類public:Remark() all=0;taste=0;environment
35、=0;serve=0;mark=0;aa=0;bb=0;cc=0;rr=0;x=0;void Choose(int i) /選擇操作switch(i)case 1:Mark();break;case 2:Evaluate();break;case 3:Advice();break;void Refectory() /餐館點(diǎn)評(píng)int a,b,c,d;cout<<"n 店鋪評(píng)價(jià) nn"cout<<" _親,5星好評(píng),您打算給我們幾顆星呢?n"cout<<"n總體評(píng)價(jià):"cin>>a;all+
36、=a;cout<<"口味:"cin>>b;taste+=b;cout<<"環(huán)境:"cin>>c;environment+=c;cout<<"服務(wù):"cin>>d;serve+=d;rr+;int getrr() /得到rr return rr;int getall() /得到allreturn all;int gettaste() /得到tastereturn taste;int getenvironment() /得到 environmentreturn env
37、ironment;int getserve() /得到 servereturn serve;void Mark() /菜點(diǎn)評(píng)int b,s;if(x!=0) mark=(double)x/(double)(aa+bb+cc);cout<<" 這道菜的評(píng)分 : "<<setiosflags(ios:fixed)<<setprecision(1)<<mark<<"分n"<<endl;cout<<"1.非常好: 10分 2.很好: 8分 3.好: 6分 4.一般: 4
38、分 5.很差: 2分"<<endl;cin>>b;switch(b)case 1:x+=10;aa+;mark=x/(aa+bb+cc);break;case 2:x+=8;aa+;mark=x/(aa+bb+cc);break;case 3:x+=6;aa+;mark=x/(aa+bb+cc);break; case 4:x+=4;bb+;mark=x/(aa+bb+cc);break;case 5:x+=2;cc+;mark=x/(aa+bb+cc);break;cout<<"n _親,您對(duì)這道菜的評(píng)價(jià)如何,口味滿意嗎?nn評(píng)價(jià):&q
39、uot;switch(b)case 1:case 2:case 3:cin>>goodCommentaa-1;break;case 4:cin>>mediumCommentbb-1;break;case 5:cin>>badCommentcc-1;break;cout<<"n _親,請(qǐng)給我們一些建議,更好的為您服務(wù)吧!nn建議:"cin>>adviceaa+bb+cc-1;cout<<endl;cout<<" 進(jìn)行餐廳評(píng)分nn 是 否n"cin>>s;if(s
40、=1) Refectory(); void Evaluate() /顯示評(píng)價(jià)cout<<" 好評(píng)("<<aa<<"條):n"<<endl;for(int h=0;h<aa;h+)cout<<" "<<h+1<<"."<<goodCommenth<<endl;cout<<"n 中評(píng)("<<bb<<"條):n"<<end
41、l;for(int j=0;j<bb;j+)cout<<" "<<j+1<<"."<<mediumCommentj<<endl;cout<<"n 差評(píng)("<<cc<<"條):n"<<endl;for(int k=0;k<cc;k+)cout<<" "<<k+1<<"."<<badCommentk<<
42、endl;cout<<endl;void Advice() /顯示建議cout<<" 建議("<<aa+bb+cc<<"條):n"<<endl;for(int i=0;i<(aa+bb+cc);i+)cout<<" "<<i+1<<"."<<advicei<<endl;cout<<endl;double getRemark() /得到 Remarkreturn mark;prot
43、ected:int aa,bb,cc,x,rr; /非常好,很好,好,一般,差的評(píng)價(jià)次數(shù),總評(píng)分,餐廳評(píng)價(jià)次數(shù)double mark; /菜的分?jǐn)?shù)int all,taste,environment,serve; /總體評(píng)價(jià),口味,環(huán)境,服務(wù)總分?jǐn)?shù)string goodComment100,mediumComment100,badComment100,advice100; /好評(píng)數(shù)組,中評(píng)數(shù)組,差評(píng)數(shù)組;/* * * * * * * * * * * * * * * * * * * * * * * * * /* * Review.cpp * */* * * * * * * * * * * * *
44、* * * * * * * * * * *# include <iostream># include <iomanip># include <string># include "Menu.h"# include "Remark.h"class Review /點(diǎn)評(píng)類public:Review()int i,j;cout<<" *"<<endl;cout<<" *大眾點(diǎn)評(píng)*"<<endl;cout<<" *&qu
45、ot;<<endl;while(1)cout<<"nn 1 逛一逛 2 查找 3 熱門餐廳 4 添加商戶"<<endl;cin>>i;switch(i)case 1:xx=myMenu.Restaurant();yy=myMenu.StyOfCooking(xx);zz=NamOfCooking();remark();break;case 2:Find();break;case 3:Hot();break;case 4:Add();break;cout<<"n _親,真的要拋棄點(diǎn)點(diǎn)嗎?nn 是 否n&qu
46、ot;cin>>j;if(j=1) break;cout<<"n"<<endl;void Hot() /熱門餐廳int choose=0,e=0;int c100,rank100;int x=myMenu.geta();int temp=0;for(int q=0;q<101;q+)cq=101;for(int i=0;i<x;i+)ranki=allall(i);for(int m=0;m<x;m+)for(int n=0;n<x-1;n+)if(rankn<rankn+1)temp=rankn;rankn
47、=rankn+1;rankn+1=temp;for(int j=0;j<x;j+)e=0;for(int k=0;k<x;k+)if(rankj=allall(k)for(int w=0;w<x;w+)if(cw=k) break;if(w>=x) cj=k;e=9;if(e=9) break;for(int p=0;p<x;p+)cout<<""<<p+1<<" "<<myMenu.getRestaurant(cp);cout<<"n總體評(píng)價(jià):"
48、;out(allall(cp);cout<<"n 口味:"out(alltaste(cp);cout<<"n 環(huán)境:"out(allenvironment(cp);cout<<"n 服務(wù):"out(allserve(cp);cout<<endl;cin>>choose;xx=cchoose-1+1;yy=myMenu.StyOfCooking(xx);zz=NamOfCooking();remark();void out(int x) /輸出星級(jí)for(int i=0;i&l
49、t;x;i+)cout<<""for(int j=0;j<5-x;j+)cout<<""int allall(int x) /餐廳總體評(píng)價(jià)分?jǐn)?shù)int all=0;int rr=0;for(int i=myMenu.getBeforNam(x);i<(myMenu.getBeforNam(x)+myMenu.getRest(x+1);i+)all+=myRemarki.getall(); rr+=myRemarki.getrr();if(rr=0) return 0;else all=all/rr;return all;int alltaste(int x) /餐廳口味分?jǐn)?shù)int all=0;int rr=0;for(int i=myMenu.getBeforNam(x);i<=(myMenu.getBeforNam(x)+myMenu.getRest(x+1);i+)all+=myRemarki.gettaste();rr+=myRemarki.getrr(); if(rr=0) return 0;else all/=rr;return all;int alls
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一情商活動(dòng)方案
- 六一暑期活動(dòng)方案
- 六一活動(dòng)暨書香活動(dòng)方案
- 六一活動(dòng)電影院活動(dòng)方案
- 六一活動(dòng)餐飲店活動(dòng)方案
- 六一溫情活動(dòng)方案
- 六一美容院活動(dòng)方案
- 六一野餐會(huì)活動(dòng)方案
- 藥膳考試試題及答案
- 蘭州市紀(jì)念活動(dòng)方案
- 鄉(xiāng)村醫(yī)生從業(yè)管理?xiàng)l例
- 圓錐體積公式的推導(dǎo)(動(dòng)畫演示)
- 北京第八十中學(xué)英語新初一分班試卷
- 酒店OTA學(xué)習(xí)三部曲(側(cè)重?cái)y程)
- 潮汕方言語音的內(nèi)部差異及其成因
- 人教版小學(xué)語文一年級(jí)到六年級(jí)課本古詩
- 天然食品防腐劑應(yīng)用
- 股權(quán)轉(zhuǎn)讓及代持協(xié)議
- 勞動(dòng)節(jié)主題-《勞動(dòng)精神》致敬業(yè)的你PPT模板
- 分包工程驗(yàn)收?qǐng)?bào)告
- 武漢市江岸區(qū)2023年五年級(jí)數(shù)學(xué)第二學(xué)期期末調(diào)研試題含解析
評(píng)論
0/150
提交評(píng)論