ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:25.72KB ,
资源ID:5689061      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5689061.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(餐饮大众点评c.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

餐饮大众点评c.docx

1、餐饮大众点评c餐饮大众点评1引言本课程是基于广受好评的独立第三方消费点评网站大众点评网中的餐饮点评系统设计的。大众点评网于2003年4月成立于上海。其一直致力于城市消费体验的沟通和聚合。首创并领导的第三方评论模式已成为互联网的一个新热点。大众点评移动客户端通过移动互联网,结合地理位置以及网友的个性化消费需求,为网友随时随地提供餐饮、购物、休闲娱乐及生活服务等领域的商户信息、消费优惠以及发布消费评价的互动平台,这种贴心的设计使其已成为人们本地生活必备的工具。而其中大众点评网主要致力的餐饮点评服务类尤为大众所喜爱。它做到了使商户中所有的评价信息都来源于大众,服务于大众。每个人都可以自由发表对商户的

2、评论,好则誉之,差则贬之,以此来向大家分享自己的消费心得。它的种种优点使我们对这个评价系统非常感兴趣,所以我们决定选用大众点评网中的餐饮评价模块来作为我们这次课程设计的题目。2需求分析2.1系统功能分析1.对菜品(餐馆名称、菜系、菜名)进行管理2.进行评分管理-计算分值、添加评分、添加评价和建议3.给各种菜打分,包括评分,写评语,写建议4.菜品排名2.2系统设计目标1.对菜品(餐馆名称、菜系、菜名)进行管理,根据用户选择,输出当前餐厅的菜系菜名2.进行评分管理-计算分值、添加评分、添加评价和建议,根据评分的次数和总数计算评分,并根据用户的评分,选择性将评价放入好评,中评或差评中3.给各种菜打分

3、,包括评分,写评语,写建议4.给餐厅打分,包括对总体评价,口味,服务,环境的星级打分5.菜品排名,给所有餐厅根据其总体评价的星级排名,并给餐厅内每道菜按照其评分排名6.添加商户,在原有餐厅的基础上,添加新的餐厅菜系菜名,并可以对其进行点评,排名7.餐厅查找,根据用户输入的餐厅名称,输出对应餐厅的菜系菜名3系统设计3.1系统功能设计1.逛一逛模块功能:查看各个餐馆的菜系菜品,即菜品管理1.1店家模块功能:依次显示所有餐馆名2.查找模块功能:根据输入的餐馆名称查找相应的餐馆并输出菜品信息3.热门餐厅模块功能:根据总体评价的排名依次显示餐厅星级,即餐厅排名4.添加商户模块功能:添加商户,即添加餐馆及

4、其菜系菜名5.菜系模块功能:显示所选餐厅菜系5.1菜名模块功能:显示所选餐厅菜系的所有菜名功能:给单道菜以及其所在餐厅评分功能:显示菜的评价功能:显示菜的建议功能:显示菜在餐厅中的排名功能:退出对单道菜的操作,返回主界面3.2系统工作流程3.3类设计与类结构(小四号宋体加粗)classMenu/菜品类public: Menu(); intRestaurant();/输出餐馆 intStyOfCooking(int);/输出菜系 voidaddRestaurant();/添加商户 stringgetRestaurant(int);/得到餐馆名称 intgetRest(int);/得到餐馆所有菜数

5、目 intgetStyoc(int);/得到餐馆所有菜系数目 intgetNamoc(int,int);/得到餐馆某一菜系所有菜数目 intgeta();/得到a stringgetnam(int,int,int);/得到菜名 intgetNumOfNam(int,int,int);/得到菜的编号 intgetBeforNam(int); /得到某一餐馆之前所有餐馆共有的菜数目private: staticinta;/餐馆个数 intb,c;/菜系菜名数目 intrestaurant,styoc;/餐馆,菜系编号 staticstringrest100;/餐馆数组 staticstringst

6、y100100;/菜系数组 staticstringnam100100100;/菜名数组;classRemark/评分类public: Remark(); voidChoose(inti);/选择操作 voidRefectory();/餐馆点评 intgetrr();/得到rr intgetall();/得到all intgettaste();/得到taste intgetenvironment();/得到environment intgetserve();/得到serve voidMark();/菜点评 voidEvaluate();/显示评价 voidAdvice();/显示建议 doub

7、legetRemark();/得到Remarkprotected: intaa,bb,cc,x,rr;/非常好,很好,好,一般,差的评价次数,总评分,餐厅评价次数 doublemark;/菜的分数 intall,taste,environment,serve;/总体评价,口味,环境,服务总分数 stringgoodComment100,mediumComment100,badComment100,advice100;/好评数组,中评数组,差评数组;classReview/点评类public: Review(); voidHot();/热门餐厅 voidout(int);/输出星级 intall

8、all(int);/餐厅总体评价分数 intalltaste(int);/餐厅口味分数 intallserve(int);/餐厅服务分数 intallenvironment(int);/餐厅环境分数 voidAdd();/添加商户 intNamOfCooking();/显示菜名 voidFind();/查找 voidremark();/点评voidRanking();/排名private: intxx,yy,zz;/餐馆,菜系,菜名编号 MenumyMenu;/菜品类对象myMenu RemarkmyRemark100;/评分类对象数组myRemark100;3.4开发与运行环境(小四号宋体加

9、粗)MicrosoftVisualC+6.04设计与实现(1)界面设计主界面:“逛一逛”界面:“查找”界面:“热门餐厅”界面:“添加商户”界面:单道菜写点评以及对当前菜所在餐厅的评价界面:单道菜的查看评价与建议界面(点评前):单道菜的排名界面(点评前):对单道菜操作的退出界面:(2)设计每个模块的算法和流程【Review类】private:intxx,yy,zz;/【注释】MenumyMenu;/菜单类的对象RemarkmyRemark100;/评分类的对象数组,一个对象对应一道菜public:【构造函数】Review():进入界面进行各种操作1.输出标题,提醒用户已进入大众点评。2.用“wh

10、ile(1)”做一个无限循环来包含函数中其余的内容,在循环的末尾处询问用户是否退出(是否),根据用户的输入“cinj;”来判断是否退出循环“if(j=1)break;”以此实现多次评价,查看,添加商户等功能。3.循环开头处输出主界面的四个选项“1.逛一逛2.查找3.热门餐厅4.添加商户”。然后执行一个“switch”多分支选择语句。“case1”即选择了主界面中的“逛一逛”,执行私有成员中的Menu类的对象myMenu(以后将直接用myMenu,不再做解释说明)中的两个函数和“NamOfCooking()”函数【注释】,并将返回值分别赋值给私有成员中的xx,yy,zz【注释】.然后执行“rem

11、ark()”函数,进行单个菜的评价等功能。“case2”即选择了主界面中的“查找”,执行“Find()”函数,对用户输入的餐厅进行查找。“case3”即选择了主界面中的“热门餐厅”,执行“Hot()”函数,按餐厅评分排名输出热门餐厅以供用户选。“case4”即选择了主界面中的“添加商户”,执行“Add()”函数,进行餐厅的添加。【成员函数】:remark():对所选的菜进行评价等功能1.用“while(1)”做一个无限循环来包含函数中其余的内容,在循环的末尾处询问用户是否退出(后退退出),根据用户的输入“cins;”来判断是否退出循环“if(s=2)break;”以此实现对一道菜多次评价,多种

12、操作的功能2.在循环内输出“.写点评.查看评价.查看建议.查看在店中排名.退出”以供用户选择3.将用户的选择存在d中,如果d小于等于3,则执行“myRemarkmyMenu.getNumOfNam(xx,yy,zz)-1.Choose(d)”【注释】,即根据用户所选,调用评分类中的函数进行选项中的操作4.如果d等于4,则调用Ranking()函数5.如果d等于5,则break,退出循环Find():对用户输入的餐厅进行查找1.让用户输入想要查找的餐厅,将其赋值给refectory2.执行for循环语句,初始时i=0每循环一次i+1,当输入的餐厅与已有餐厅名字相同时退出循环。即当“myMenu.

13、getRestaurant(i)=refectory”时【注释】,执行“break”3.执行if语句,如果上一步中的i小于餐厅的数量“if(imyMenu.geta()”【注释】,则将i+1赋值给xx,之后再执行“yy=myMenu.StyOfCooking(xx);zz=NamOfCooking();”,【注释】。4.如果没有满足if的条件,则执行else语句,告诉用户没有他要查找的餐厅。NamOfCooking():输出所选餐厅菜系的菜名单目,返回值为用户所选的菜名1.用for循环语句判断当前这家餐厅所有菜系中共有多少道菜,即j的大小2.用for循环语句循环j次,输出这家餐厅的所有菜名及其

14、评分。循环内执行“p=myMenu.getNumOfNam(xx,yy,i+1)-1;coutmyMenu.getnam(xx-1,yy-1,i)myRemarkp.getRemrk()i;”来判断是否退出循环“if(i=2)break;”2. 循环内执行myMenu.addRestaurant()函数【注释】Ranking():菜排名1.将c数组用for循环语句赋初值后(为了在之后的操作中判定c数组中的元素是否已赋值),执行for循环语句,将当前根据xx的值得到的餐厅的所有菜的评分依次放在a数组里“ai=myRemarkz-1+i.getRemark()”【注释】2.运用for循环套嵌,把上

15、述a数组中的评分数从大到小进行排序3.再运用for循环套嵌,实现c数组中第x个元素的值等于当前餐厅内第x道菜的排名。算法及思路同Hot()函数中第4步类似4.输出当前菜的排名【注释】:1.xx:用户所选餐厅编号yy:用户所选菜系编号zz:用户所选菜名编号2.myMenu.Restaurant():输出餐厅单目,返回值为用户所选的餐厅编号myMenu.StyOfCooking(x):输出所选餐厅菜系单目,返回值为用户所选的菜系NamOfCooking():输出所选餐厅菜系的菜名单目,返回值为用户所选的菜名myMenu.geta():得到myMenu对象中所有餐厅的总数量myMenu.getBef

16、orNam(x):返回编号为x的餐厅之前所有菜名的数目myMenu.getRest(x):返回编号为x的餐厅拥有菜名的数目myMenu.addRestaurant():添加商户myMenu.getnam(x,y,z):返回编号为x的餐厅中编号为y的菜系中编号为z的菜的名称myMenu.getNumOfNam(x,y,z):返回值为编号为x的餐厅中编号为y的菜系中编号为z的菜在所有菜中的序号,即在Remark类中拥有100个成员的myRemark对象数组中的成元序号4.myRemarki.getall():返回在评价当前菜时评价所在餐厅的“总体评价”的分数myRemarki.getrr():返回

17、在评价当前菜时评价所在餐厅的次数myRemarki.Choose(x):根据用户的选择进行写点评、查看评价等操作(3)测试与运行结果测试菜品管理功能(逛一逛):测试查找功能(查找):查找到:未查找到:测试添加商户功能(添加商户):添加“甜甜屋”商户后:测试对单道菜的操作功能(写点评、查看评价、查看建议、查看排名):写点评:添加评价后查看评价,查看建议:添加评价后,查看在店中排名:测试对单道菜操作的退出功能(退出):选择,否:选择,是:测试对餐厅进行评分:对餐厅评价:评价后餐厅的星级与排名5结语5.1结论与讨论为了完成这次大众点评餐饮类点评系统的设计,我们查阅了很多资料,并参考了大众点评网的界面

18、,从最开始的只有点评功能增加到可以添加商户、餐厅评分,将评价归类等许多功能,这个过程让我们受益良多,也渐渐发现了程序实现功能时的趣味性,让我们拥有了想要实现更多功能的想法,比如对单道菜和餐厅同时赋予分数和星级的形式。最开始将所有类联系在一起我们采取的是继承的方式,之后经过讨论发现这种做法并不能很好的实现联系,所以我们采取了做成私有成员的形式,基本实现了这次课设的目标。5.2设计体会通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,加强了对类的认识,从中体会到了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重

19、要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。参考文献1刘佳敏,马广焜,常燕等.C+面向对象程序设计双语教程(第2版).北京:国防工业出版社2钱能.C+程序设计教程(修订版).北京:清华大学出版社34大众点评:计算机程序设计实践课程设计任务划分课程设计题目:姓名设计职务任务工作量比例马一尤组长点评类40%曲思洁组员评分类30%常浩组员菜品类30%附录/-/-餐饮大众点评.prj-/-Menu.h/菜品类Remark.h/评价类Review.cpp/点评类和测试函数/*/*Menu.h*/*#include#inc

20、ludeusingnamespacestd;classMenu/菜品类public: Menu() intRestaurant()/输出餐馆 coutn店家nn; for(inti=0;ia;i+) couti+1.resti; coutrestaurant; returnrestaurant; intStyOfCooking(intx)/输出菜系 coutn菜系nn; for(intj=0;j100;j+) if(styx-1j=)break; for(inti=0;ij;i+) couti+1.styx-1i; coutstyoc; returnstyoc; voidaddRestaura

21、nt()/添加商户 a+; coutresta-1; coutb; for(inti=0;ib;i+) coutn菜系i+1stya-1i; coutc; for(intj=0;jc;j+) coutn菜名j+1nama-1ij; coutn商户:resta-1添加完毕endl; stringgetRestaurant(intx)/得到餐馆名称 returnrestx; intgetRest(intx)/得到餐馆所有菜数目 intall=0; for(inti=0;i100;i+) if(styx-1i=) break; for(intj=0;j100;j+) if(namx-1ij=) br

22、eak; all+=j; returnall; intgetStyoc(intx)/得到餐馆所有菜系数目 for(inti=0;i100;i+) if(styx-1i=)break; returni; intgetNamoc(intx,inty)/得到餐馆某一菜系所有菜数目 for(inti=0;i100;i+) if(namx-1y-1i=)break; returni; intgeta()/得到a returna; stringgetnam(intx,inty,intz)/得到菜名 returnnamxyz; intgetNumOfNam(intx,inty,intz)/得到菜的编号 in

23、trank=0; for(inti=1;ix;i+) rank+=getRest(i); for(intj=1;jy;j+) rank+=getNamoc(x,j); rank+=z; returnrank; intgetBeforNam(intx)/得到某一餐馆之前所有餐馆共有的菜数目 intall=0; for(inti=0;ix;i+) all+=getRest(i+1); returnall; private: staticinta;/餐馆个数 intb,c;/菜系菜名数目 intrestaurant,styoc;/餐馆,菜系编号 staticstringrest100;/餐馆数组 staticstringsty100100;/菜系数组 staticstringnam100100100;/菜名数组;stringMenu:rest100=蟹堡王,糖糖小家,福记;stringMenu:sty100100=鲁菜,川菜,湘菜,饮品,东北菜,粤菜,饮品,闽菜,苏菜;stringMenu:nam100100100=一品豆腐,香酥鸡,鱼香肉丝,回锅肉,腊味合蒸,橙汁,雪碧,小鸡炖蘑菇,锅包肉,猪肉炖粉条,梅菜扣肉,白斩鸡,辣白菜汤,牛肉萝卜汤,青椒炒肉丝,三杯鸡,贵妃鸡翅,金玉满堂;intMenu:a=3

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1