餐饮大众点评c++_第1页
餐饮大众点评c++_第2页
餐饮大众点评c++_第3页
餐饮大众点评c++_第4页
餐饮大众点评c++_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

餐饮大众点评C++餐饮大众点评1引言本课程是基于广受好评的独立第三方消费点评网站——大众点评网中的餐饮点评系统设计的。大众点评网于2003年4月成立于上海。其一直致力于城市消费体验的沟通和聚合。首创并领导的第三方评论模式已成为互联网的一个新热点。大众点评移动客户端通过移动互联网,结合地理位置以及网友的个性化消费需求,为网友随时随地提供餐饮、购物、休闲娱乐及生活服务等领域的商户信息、消费优惠以及发布消费评价的互动平台,这种贴心的设计使其已成为人们本地生活必备的工具。而其中大众点评网主要致力的餐饮点评服务类尤为大众所喜爱。它做到了使商户中所有的评价信息都来源于大众,服务于大众。每个人都可以自由发表对商户的评论,好则誉之,差则贬之,以此来向大家分享自己的消费心得。它的种种优点使我们对这个评价系统非常感兴趣,所以我们决定选用大众点评网中的餐饮评价模块来作为我们这次课程设计的题目。2需求分析系统功能分析对菜品(餐馆名称、菜系、菜名)进行管理进行评分管理-计算分值、添加评分、添加评价和建议给各种菜打分,包括评分,写评语,写建议菜品排名系统设计目标对菜品(餐馆名称、菜系、菜名)进行管理,根据用户选择,输出当前餐厅的菜系菜名进行评分管理-计算分值、添加评分、添加评价和建议,根据评分的次数和总数计算评分,并根据用户的评分,选择性将评价放入好评,中评或差评中给各种菜打分,包括评分,写评语,写建议给餐厅打分,包括对总体评价,口味,服务,环境的星级打分菜品排名,给所有餐厅根据其总体评价的星级排名,并给餐厅内每道菜按照其评分排名添加商户,在原有餐厅的基础上,添加新的餐厅菜系菜名,并可以对其进行点评,排名餐厅查找,根据用户输入的餐厅名称,输出对应餐厅的菜系菜名3系统设计系统功能设计逛一逛模块功能:查看各个餐馆的菜系菜品,即菜品管理店家模块功能:依次显示所有餐馆名查找模块功能:根据输入的餐馆名称查找相应的餐馆并输出菜品信息热门餐厅模块功能:根据总体评价的排名依次显示餐厅星级,即餐厅排名添加商户模块功能:添加商户,即添加餐馆及其菜系菜名5..菜系模块功能:显示所选餐厅菜系菜名模块功能:显示所选餐厅菜系的所有菜名写点评模块功能:给单道菜以及其所在餐厅评分查看评价模块功能:显示菜的评价查看建议模块功能:显示菜的建议查看在店中排名模块功能:显示菜在餐厅中的排名退出模块功能:退出对单道菜的操作,返回主界面

系统工作流程类设计与类结构(小四号宋体加粗)classMenu卄丈众贞评*Al進一進A2查找*3懑厂餐尸盒4添力口商户★1逛一逛*查找如热门餐厅 *4添加商户☆☆☆☆店家☆☆☆☆紅.蟹堡王 §2.榔創痞 福记注.鲁菜 §2.川菜 §3.湘菜 §4.饮品☆☆☆☆菜单☆☆☆☆§1-—品豆腐。分 §2・香酥鸡0分★1诳一诳 *2杳找g热门卷厅 添加商户Q.Qit^i入您想要的餐厅:■★1逛一艇*2査找*3热门餐厅★坤添加商户3@1蟹堡王总体评价:負★★負★口味:★★★☆☆环境:★★☆☆☆2福记总体评价:★★★★☆口味:环境:★★★★★3糖糖小家总体惮彳介:★★★☆☆口味:环境:月存务:★☆☆☆☆★1逛一逛 杳找*3热门餐厅 添加商户★商户名称:甜甜屋菜系数目(填数字哦0.0):2菜名数目(填数字哦©Q:2★菜名2:双翊菜名数目(填数宇哦©・<D):2★菜名1:咖啡★咼户:議甜屋添加完毕①继续添加商尸 ②退岀定犬餐餐犬餐关奚共关冥兴奚冥兴奚冥餐奚餐餐奚餐餐奖兴冥冥兴餐冥兴奚餐餐奚餐餐奚餐关浜兴奚浜兴冥关餐犬餐关奚餐餐奚兴奚冥兴奚浜兴奚餐餐奚餐餐奚餐关冥兴餐冥兴奚冥〕①•写点评②•杳看评价③•杳若建议④•杳若在店中排名⑤•退出KXXXXXXXXXXHXXHXXXXXXXXXXHXXHXXHXXXXXXXXXXHXXHXXXXXXXXXXXXXHXXHXXXXXMXXXXHXXHXXi★这道菜的评分:0.®分非常好:10分 2.很好:8分3-好:6分 取一般:4分 5•很差:2分20-0亲,您对这道菜的评价如何,口味满盍吗?★评价:还不错,送的也很快0-0亲,请给我们一些建议,更好的为您服务吧!★建议:味道不错,就是菜有点少,下次多一点就好了★进行餐厅评分①是 ②否☆☆☆☆店铺评价☆☆☆☆0.0亲.5星好评,您打算绐我们几颗屋呢?仔仔354评 怵味境务总口环服①后頂■■■.中评3衆):決差评2条);吠塗诃(0吳):☆好评(。条):①三皿3詰①一写点评②-査看评价③一査看建谏④一査看在店中排名⑤-退■出①•写点评②■査看评价③•査看建湮④•査看在店中排名⑤.退■出><KKMMXMMXKMKXMMKKMMXMMXKMKXMMKKMMXMMXKMKXMMKKMMXMMXKMKXMMKKMMXMMXKMKXMMKKMMXMM★这道菜在店中的排名为:鄴名0分戏餐来捉餐关关算餐来捉毎关关算餐来捉毎关关算餐来捉毎关关算餐来捉毎关关算餐来捉毎关关算餐来捉共关关算餐来捉共关关算餐来捉其关兰理餐来捉其关兰寰餐ae捉①心②-仝石半价③-仝石建国 竺石齐店厂拦£ 3.直已黑純算基涎毎咄法畫時粧买彰狭买撐弼黑持疋黑涎共畔狭算輛隧算蜒弼罢摒其耀持弼峯注算時逹算蜒吴罢鮭共罢蚌共褪涎奖崇從畫輛逹算蜒共黑摒弭弼餐柴强進奖輛逑算蜒狭算将刖⑪写点评②.査看评价③.査看建议④.査看在店申排名⑤.退出5、亍|是①卫亲,真的要拋弃点点吗¥、亍|是出标题,提醒用户已进入大众点评。用“while(1)”做一个无限循环来包含函数中其余的内容,在循环的末尾处询问用户是否退出(①是②否),根据用户的输入“cin»j;”来判断是否退出循环“if(j==1)break;”以此实现多次评价,查看,添加商户等功能。循环开头处输出主界面的四个选项“1.逛一逛2.查找3.热门餐厅4.添加商户”。然后执行一个“switch”多分支选择语句。“case1”即选择了主界面中的“逛一逛”,执行私有成员中的Menu类的对象myMenu(以后将直接用myMenu,不再做解释说明)中的两个函数和“NamOfCooking()”函数【注释②】,并将返回值分别赋值给私有成员中的xx,yy,zz【注释①】.然后执行“remark。”函数,进行单个菜的评价等功能。“case2”即选择了主界面中的“查找”,执行“Find()”函数,对用户输入的餐厅进行查找。“case3”即选择了主界面中的“热门餐厅”,执行“Hot()”函数,按餐厅评分排名输出热门餐厅以供用户选。“case4”即选择了主界面中的“添加商户”,执行“Add()”函数,进行餐厅的添加。【成员函数】:remark():对所选的菜进行评价等功能用“while(1)”做一个无限循环来包含函数中其余的内容,在循环的末尾处询问用户是否退出(①后退②退出),根据用户的输入“cin>>s;”来判断是否退出循环“if(s==2)break;”以此实现对一道菜多次评价,多种操作的功能在循环内输出“①.写点评②.查看评价③.查看建议④.查看在店中排名⑤.退出”以供用户选择将用户的选择存在d中,如果d小于等于3,则执行"myRemark[NumOfNam(xx,yy,zz)-1].Choose(d)”【注释③④】,即根据用户所选,调用评分类中的函数进行选项中的操作如果d等于4,则调用Ranking()函数如果d等于5,则break,退出循环Find():对用户输入的餐厅进行查找让用户输入想要查找的餐厅,将其赋值给refectory执行for循环语句,初始时i=0每循环一次i+1,当输入的餐厅与已有餐厅名字相同时退出循环。即当“(i)==refectory”时【注释③】,执行“break”执行if语句,如果上一步中的i小于餐厅的数量“if(i<())”【注释③】,贝U将i+1赋值给xx,之后再执行“yy=(xx);zz=NamOfCooking();”,【注释①②】。如果没有满足if的条件,则执行else语句,告诉用户没有他要查找的餐厅。NamOfCooking():输出所选餐厅菜系的菜名单目,返回值为用户所选的菜名用for循环语句判断当前这家餐厅所有菜系中共有多少道菜,即j的大小用for循环语句循环j次,输出这家餐厅的所有菜名及其评分。循环内执行“p=(xx,yy,i+1)-1;coutvv(xx-1,yy-1,i)<v""vvmyRemark[p].getRemrk()vv"分"”【注释③④】Hot():按餐厅的评分排名输出热门餐厅以供用户选择执行for循环语句,将所有餐厅的评分依次放在rank数组里“rank[i]=allall(i)”(allall(x):根据参数x的值返回餐厅评分)运用for循环套嵌,把上述rank数组中的评分数从大到小进行排序再运用for循环套嵌,实现按照评分的排序将餐厅排序,再把排名放在c数组里。实现方法:在循环中加入if语句,如判断排序后的rank数组中的第一个数值与第二家餐厅的评分数值相等,就将数字2放在c数组的第一个成员中。另外,在执行的过程中会存在多家餐厅评分相同的情况,故在执行的if语句中加入一个for循环,判断当前这家餐厅的序号是否已经放入过c数组中,如果已存在过,则不执行上述过程,继续进行循环。如果没存在过,则执行,并跳出单层循环。运用单层for循环,根据c数组中的餐厅编号的排名,用“out(x)”函数,依次输出餐厅的星级评分,并将所选的餐厅序号赋值给xx,再执行“yy=(xx)zz=NamOfCooking()”,【注释①②】。allall(x):返回编号为x的餐厅的“总体评价”的分数运用for循环,得到餐厅“总体评价”的总评分和总评价次数【注释④】运用if语句,判断总评价次数是否为零,若为零,则返回0,即餐厅“总体评价”评分为零。若不为零,则返回总评分除以总评价次数以后的值。alltaste(x):返回编号为x的餐厅的“口味”的分数运用for循环,得到餐厅“口味”的总评分和总评价次数【注释④】运用if语句,判断评分次数是否为零,若为零,则返回0,即餐厅“口味”评分为零。若不为零,则返回总评分除以总评价次数以后的值。allenvironment(x):返回编号为x的餐厅的“环境”的分数运用for循环,得到餐厅“环境”的总评分和总评价次数【注释④】运用if语句,判断评分次数是否为零,若为零,则返回0,即餐厅“环境”评分为零。若不为零,则返回总评分除以总评价次数以后的值。allserve(x):返回编号为x的餐厅的“服务”的分数运用for循环,得到餐厅“服务”的总评分和总评价次数【注释④】运用if语句,判断评分次数是否为零,若为零,则返回0,即餐厅“服务”评分为零。若不为零,则返回总评分除以总评价次数以后的值。out(x):输出参数x个^,5-x个^1.运用两个for循环,输出x个^,5-x个Add():添加商户用“while(1)”做一个无限循环来包含函数中其余的内容,在循环的末尾处询问用户是否继续添加商户(①继续添加商户②否),根据用户的输入“cin>>i;”来判断是否退出循环“if(i==2)break;”循环内执行()函数【注释③】Ranking():菜排名将c数组用for循环语句赋初值后(为了在之后的操作中判定c数组中的元素是否已赋值),执行for循环语句,将当前根据xx的值得到的餐厅的所有菜的评分依次放在a数组里“a[i]=myRemark[z-1+i].getRemark()"【注释④】运用for循环套嵌,把上述a数组中的评分数从大到小进行排序再运用for循环套嵌,实现c数组中第x个元素的值等于当前餐厅内第x道菜的排名。算法及思路同Hot()函数中第4步类似输出当前菜的排名【注释】::用户所选餐厅编号yy:用户所选菜系编号zz:用户所选菜名编号输出餐厅单目,返回值为用户所选的餐厅编号(x):输出所选餐厅菜系单目,返回值为用户所选的菜系NamOfCooking():输出所选餐厅菜系的菜名单目,返回值为用户所选的菜名根据参数x,返回对应编号的餐厅名():得到myMenu对象中所有餐厅的总数量(x):返回编号为x的餐厅之前所有菜名的数目(x):返回编号为x的餐厅拥有菜名的数目():添加商户(x,y,z):返回编号为x的餐厅中编号为y的菜系中编号为z的菜的名称(x,y,z):返回值为编号为x的餐厅中编号为y的菜系中编号为z的菜在所有菜中的序号,即在Remark类中拥有100个成员的myRemark对象数组中的成元序号[i].getall():返回在评价当前菜时评价所在餐厅的“总体评价”的分数myRemark[i].getrr():返回在评价当前菜时评价所在餐厅的次数myRemark[i].Choose(x):根据用户的选择进行写点评、查看评价等操作(1)测试与运行结果测试菜品管理功能(逛一逛):MXKXXXXKXKX大处血讦述餐黑托簣箕養黄料餐疋*1辭一诳 *2自找*3加■「窗尸 ★耳症相裔1☆佥☆店家☆☆☆☆§1.螯孝「 §2.梢扶八赛 W福记☆欢☆菜系☆佥欢攻§】•知遵 §乙粵菜 、■饮品菜单☆衣☆☆§1. 。分 ^2.口斩鸡。分测试查找功能(查找)查找到:宾慕峯墟兴峯峯M慕冥決犬一發点评汪城冨并鮭磊其城冥菲廉★1■诳一逛 ★》杳找^3热门餐厅>4®JU^I户①一①请输入您想要的餐厅:糖糖小家A☆☆☆菜系☆☆☆☆§1-东北菜 §2-粤菜 §乱饮品☆☆☆☆菜单§1.MtM'S6?f $z一二肉萝卜汤o分未查找到:熹養关疑簣熹養关料共托大發点宀★1逛一进>2査找 热门餐(7 济加匱户O_◎请输入您想要的餐厅:小吃#_**抱歉,没有您要找的餐厅①.①亲,真的要抛弃点点吗卞⑴是 ⑵芒测试添加商户功能(添加商户):責1诳一逛 ★?杏找^3热门宦尸 ^4涯川说户4★商户名称;甜甜屋菜系数目〔填数字哦©_©):2★菜系1:甜品菜名数目〔填数字哦0_©):2★菜名1:布丁★菜名乙取皮奶★菜系2:饮品菜名数目〔填数字哦0_©):2★菜名1:咖啡★菜名2:奶茶★商户:甜甜屋 添加完毕⑴宓妾连协商户 ⑺电二添加“甜甜屋”商户后:釦.蟹呈工注一榷薩,「姦 丿吕记 M.定舌足lYYrfrfr箕圭京十匕、1‘甜晶 :■2■饮亡☆☆☆☆菜单☆-:…A加^31.tpT◎芥 娄2.划氏閃®护测试对单道菜的操作功能(写点评、查看评价、查看建议、查看排名)写点评:T-弓去T因査看评忻H空看建仪迂-査若也后小抖士 'E-:^jXXXXX^^K3KKMKXXXXXXXXXXXX^X^MM3KMXXXXXXXXXXKX^^XKKM3KKXXXXXXXXXXXXXKXM3KMMXXXXXXXX1★这道菜的评分:0眉分1,-l^lT:102.1RAT:昭 3•好:&分•一談:吩5一枢汪:27T2EL◎亲,您对这道菜的评价如何,口味满意吗?★评价:味道不错,量也很足,推荐请给我们一些建议,更好的为您服參吧!★建议:下次送.的再快一点添加评价后查看评价,查看建议:XXXMXXMXMMMMXXHMMMXXMHXMMXMMXXXXMMXXXHMXMXXKHXXXXMMXXXXMXXXXXMKXMXMMMMMXMMMXi①•写点严②.杏右评昭③•咨呑连徴①•杏看产店匚排沽②•壬出釜芙淇料芹董黄芙泛弭芹董芙冀料弭着黄芙天賛弭芙芙芙沢弭托芙芙董沢贰托董芙天泛科托董董芙胃芹芙芙黄共洪贰芙董芙淇料芹芙釜芙淇贰芹董黄芙葵弭芹董芙冀泛弭着黄》☆好评〔1条〕:1•味道不错,量也很足,推荐☆中评W条〕:☆差评〔日条〕:①后退 ②退出1躬来賓擇疋琴琴来崔兴*芫軒来捽冥菇峯来峯崔崔餐共共*崔*¥驀共*X疋黑峯冥崔崔羔翱峯来抒峯餐峯義来冥兴餐峯来娶捧*餐峯共賓擇疋琴昶来崔崔*躬軒来崔兴菇荼孑①-写点尸边住肴产? ③■査看建仅 ©-尘看仁百匸排名 E•退出XXXMXXXX>gMXXXXXMXXXXM3KXXXMMKXXXXMKXXXXMXXXXXKXXXX^MXXXXKXXXXXMXXXX>{MXXXXMMXX53☆建议〔1条〕:1•下次送的再快一点添加评价后,查看在店中排名:XMXXMXXMXXMXXMXXMXXKXXKXXXXXXXXXXMKXXXXMXXMXXMXXMXXMXXMXMKXXKXXKXXXXXXXXXXXS1).写点汁③-査看步F 巳谥看建股〔「S石在店中拌茗⑪-卫h奖挥峯奖盖峯奖冥峯来盖峯来挥峯峯挥冥峯关峯拥冥峯拥*峯娶弹峯娶羔峯釜关峯抵*装挥冥峯挥峯奖挥慕奖冥峯来盖峯来挥峯於关峯抵*峯拥*峯拥*峯抵崟峯娶*峯鬓?二这道菜往店中的排名为:第1名氏日分①斤H ②乍出测试对单道菜操作的退出功能(退出)选择,否:测试对餐厅进行评分对餐厅评价:*an餐:亍评”①杲 ◎否1☆☆佥☆ 店镐评价 住☆住益◎亲・5星好评,您打算给我们几颗星呢了★总体评枷:H★口环;3★坯境;4鼻服务;2①后退 ®退出评价后餐厅的星级与排名3◎1糖糖小家.总件讦卜:*****口味=★★★☆☆环境:★★★★☆垂知★£mG2蕪运王总体讦F:☆☆吹吹吹匚比:☆☆文吹吹环境;自☆盘临临is-S:处盘玄玄玄S3祎口.□体讦1:宀喰令七喰喰1_対1=$七七七七坏必負吹吹吸喰.狼各:以廿工七七5结语结论与讨论为了完成这次大众点评餐饮类点评系统的设计,我们查阅了很多资料,并参考了大众点评网的界面,从最开始的只有点评功能增加到可以添加商户、餐厅评分,将评价归类等许多功能,这个过程让我们受益良多,也渐渐发现了程序实现功能时的趣味性,让我们拥有了想要实现更多功能的想法,比如对单道菜和餐厅同时赋予分数和星级的形式。最开始将所有类联系在一起我们采取的是继承的方式,之后经过讨论发现这种做法并不能很好的实现联系,所以我们采取了做成私有成员的形式,基本实现了这次课设的目标。设计体会通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,加强了对类的认识,从中体会到了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。参考文献刘佳敏,马广焜,常燕等.C++面向对象程序设计双语教程(第2版).北京:国防工业出版社钱能.C++程序设计教程(修订版).北京:清华大学出版社[3]编程论坛:大众点评:《计算机程序设计实践》课程设计任务划分课程设计题目:姓名设计职务任务工作量比例马一尤组长点评类40%曲思洁组员评分类30%常浩组员菜品类30%附录rj--"<<rest[i]<<"";}cout<<endl;cin>>restaurant;returnrestaurant;}intStyOfCooking(intx)"<<sty[x-1][i]<<" ";}cout<<endl;cin>>styoc;returnstyoc;}voidaddRestaurant() 常好:10分2.很好:8分3.好:6分4.一般:4分 5.很差:2分"<<endl;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"\n 亲,您对这道菜的评价如何,口味满意吗\n\n★评价:";switch(b){case1:case2:case3:cin>>goodComment[aa-1];break;case4:cin>>mediumComment[bb-1];break;case5:cin>>badComment[cc-1];break;}coutvv"\n 亲,请给我们一些建议,更好的为您服务吧!\n\n★建议:";cin>>advice[aa+bb+cc-1];cout<<endl;coutvv" ★进行餐厅评分\n\n ①是②否\n";cin>>s;if(s==1)Refectory();}voidEvaluate()<<goodComment[h]<<endl;coutvv"\n ☆中评("vvbbvv"条):\n"vvendl;for(intj=0;j<bb;j++)cout<<""<<j+1<<"."<<mediumComment[j]<<endl;coutvv"\n ☆差评("vvccvv"条):\n"vvendl;for(intk=0;k<cc;k++)cout<<""<<k+1<<"."<<badComment[k]<<endl;cout<<endl;}voidAdvice()}voidAdvice()<<advice[i]<<endl;}cout<<endl;}doublegetRemark()etall();rr+=myRemark[i].getrr();}if(rr==0)return0;else{all=all/rr;returnall;}}intalltaste(intx)ettaste();rr+=myRemark[i].getrr();}if(rr==0)return0;else{all/=rr;returnall;}}intallserve(intx)etserve();rr+=myRemark[i].getrr();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论