餐饮指南c++课程设计报告.doc

上传人:啊飒飒 文档编号:10980376 上传时间:2021-06-15 格式:DOC 页数:28 大小:147KB
返回 下载 相关 举报
餐饮指南c++课程设计报告.doc_第1页
第1页 / 共28页
餐饮指南c++课程设计报告.doc_第2页
第2页 / 共28页
餐饮指南c++课程设计报告.doc_第3页
第3页 / 共28页
餐饮指南c++课程设计报告.doc_第4页
第4页 / 共28页
餐饮指南c++课程设计报告.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《餐饮指南c++课程设计报告.doc》由会员分享,可在线阅读,更多相关《餐饮指南c++课程设计报告.doc(28页珍藏版)》请在三一文库上搜索。

1、 课程设计报告课程名称: 面向对象程序设计 课程设计 课 题: 餐饮指南 专业班级: 计算机系信管09101班 学 号: 姓 名: 指导老师: 日 期: 2010年6 月26 日 目 录1.课题简介32.设计方案32.1程序功能32.2 程序原理及要求剖析 43.具体设计44.测试 264.1测试结果265.总结28设计体会28参考文献281.课题简介【题目描述】: 请编写一个餐饮指南程序。帮助游客查找小吃店和餐馆,以及哪个小吃店的卤煮最好,哪个餐馆的烤鸭最好等。2.设计方案2.1程序功能该程序应该具有下列功能:(1) 从文件读取小吃店和餐馆的信息;(2) 保存小吃店和餐馆的信息到文件;(3)

2、 增加一个小吃店;(4) 增加一个餐馆;(5) 删除一个小吃店;(6) 删除一个餐馆;(7) 修改食品的价格;(8) 修改食品的受欢迎程度。(9) 显示小吃店的信息;(10) 显示餐馆的信息;(11) 显示指定小吃店最便宜的食品(12) 显示指定餐馆最受欢迎的食品;(13) 其他扩充功能。2.2程序原理及要求剖析原理:(1) 按照面向对象的思想和开发过程完成这个应用程序。要求:【信息要求】(1) 食品的信息包括名称,价格,受欢迎程度;(2) 小吃店的信息包括经营者,位置,食品的信息(一个店可卖多种小吃);(3) 餐馆的信息包括经营者,餐馆名称,电话号码,开门时间,食品的信息(一个餐馆卖多种菜)

3、。 【输入要求】为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。 对输入的数据要进行合法性判断。【输出要求】应用程序运行后,要在屏幕上显示一个菜单; 要求用户输入数据时,要给出清晰、明确的提示信息。3.具体设计# include iostream.h# include fstream.h# include stdlib.h# include string.h# define N 30/名字长度# define M 50/食店的菜色或小吃个数# define MAX 40/餐馆和小吃店的个数int sn=0,rn=0;/小吃店、餐馆的个数vo

4、id putinfmtion();/文件存储餐店信息void getinfmtion();/文件获得餐店信息void edit(char sr,int &n,int num); /编辑信息 ,num为编号void add();/添加新信息void ressearch();/搜索餐馆void search();/搜索void showshop();/显示餐店void snasearch();/搜索小吃店void mainmenu();/主菜单void salewellfood();/查看推介食物/类定义/食物类class Mealprivate: /私有成员char nameN;/名字float

5、 price;/价格int popular; /受欢迎程度(0-10)public: Meal() /析构函数Meal(); /构造函数Meal(char na,float prc,int ppl);/构造函数void setname(char na);/设置名字char *getname();/返回名字void setprice(float prc);/设置价格float getprice();/返回价格int setpopular(int ppl);/设置受欢迎程度(0-10),设置成功返回1,否则返回0int getpopular();/返回受欢迎程度(0-10)void showdat

6、a();/显示内容void setdata();/手动设置所有内容void alter(); /修改所有内容void filecin(fstream & fcin);/文件输入void filecout(fstream & fcout);/文件输出;/餐店类class Eateryprivate:char chairmanN;/负责人名字protected:Meal foodM; /菜式int m; /菜式种数int id; /数组中自身的编号public:Eatery()/析构函数Eatery(); /构造函数Eatery(int n,Eatery some);/重载构造函数Eatery(c

7、har na,Meal fd,int n);/构造函数void setname(char na);/设置名字char *getname();/返回名字int getm();/返回菜色数量Meal getfood(int i);/返回菜色信息void popularrank();/按照食物的受欢迎程度进行排序void pricerank();/按照食物的价格进行排序;void seteaterydata(int &fm,Meal fdM,int refm);/手动设置所有内容void eatfilecin(fstream & fcin);/文件输入void eatfilecout(fstream

8、 & fcout);/文件输出/共有的静态数据成员static int n;/数组已用空间总数;/餐馆类:继承餐店类class Restaurant:public Eateryprivate:char resnameN,place2*N; /餐馆名称,餐馆位置char phonenumN; /餐馆电话int opentime; /餐馆的开门时间:24小时制public:char* getplace(); /获得餐馆位置char* getresname(); /获得餐馆名称int setopentime(int ot); /设置餐馆的开门时间int getopentime(); /获得餐馆的开门

9、时间char* getphonenum(); /获得餐馆的电话int getm(); /获得菜式种数void setdata(); /手动设置所有内容void alter(); /餐馆信息修改void showdata(); /显示餐馆的内容void filecin(fstream & fcin);/文件输入void filecout(fstream & fcout);/文件输出;/小吃店类:继承餐店类class Snackcart:public Eateryprivate:char place2*N; /小吃店位置;public:void setdata(); /手动设置所有内容char *

10、getplace(); /获得小吃店位置void alter(); /小吃店信息修改void showdata(); /显示小吃店的内容void filecin(fstream & fcin);/文件输入void filecout(fstream & fcout);/文件输出;/建立类组批量管理Restaurant rstrtMAX; /餐馆类组Meal foodMAX; /推介食物Snackcart snkctMAX; /小吃店类组int rm=0,sm=0; /推介食物个数int refmM,sefmM; /推介菜式所属的餐店编号Meal rfdM,sfdM; /推介菜式列表ostream

11、 &operator(ostream& out,Meal &a); /Meal 重载ostream &operator(ostream& out,Restaurant &a); /Restaurant 重载ostream &operator(ostream& out,Snackcart&a); /Snackcartnamepricepopular;void Meal:filecout(fstream & fcout)/文件输出fcoutname price popularn;void Meal:setname(char na)/设置名字strcpy(name,na);char* Meal:ge

12、tname() /返回名字return name;void Meal:setprice(float prc) /设置价格price=prc;float Meal:getprice() /返回价格 return price;int Meal:setpopular(int ppl)/设置受欢迎程度(0-10),设置成功返回1,否则返回0if(ppl=0)popular=ppl;return 1;cout受欢迎程度须在(010)范围内,因此输入错误 ;return 0;int Meal:getpopular()/返回受欢迎程度(0-10)return popular;void Meal:showda

13、ta()/显示内容coutn 食物名字: name;cout 价格 price;cout 受欢迎程度 popularendl;coutendl;void Meal:setdata()/手动设置所有内容int ppl;cout请输入食物的信息:endl;coutname;coutendl;coutprice;coutendl;coutppl;while(setpopular(ppl)=0)coutppl;coutendl;void Meal:alter() /修改所有内容int ch=0;char ch2=0;float prc;int ppl;cout-进入菜式信息修改-endl;cout您希

14、望修改:endl;cout1.价格n;cout2.受欢迎程度n;coutch;if(ch=1)coutprc;cout价格将改为prc是否确认?nY:是nN:否ch2;if(ch2=Y)price=prc;cout修改成功!endl;else cout修改失败!endl; if(ch=2) coutppl;cout受欢迎程度将改为ppl是否确认?nY:是nN:否ch2;if(ch2=Y)while(!setpopular(ppl)cout输入错误,受欢迎程度范围为(1-10): ;coutppl; cout受欢迎程度将改为ppl是否确认?nY:是nN:否ch2;if(ch2=Y)cout修改成

15、功!endl;else cout修改失败!endl;/初始化共有的静态数据成员;int Eatery:n=0; /数组已用空间总数/Eatery类函数的实现Eatery:Eatery() /构造函数m=0;id=n;n+;Eatery:Eatery(int n,Eatery some)/重载构造函数strcpy(chairman,some.chairman);int i;for(i=0;in;i+)foodi=some.foodi;m=some.m;Eatery:Eatery(char na,Meal fd,int n)/构造函数strcpy(chairman,na);int i;for(i=

16、0;ichairman;fcinm;for(int i=0;im;i+)foodi.filecin(fcin);void Eatery:eatfilecout(fstream &fcout)/文件输出fcoutchairman ;fcoutmn;for(int i=0;im;i+)foodi.filecout(fcout);void Eatery:popularrank() /按照食物的受欢迎程度进行排序int i,j,temp;Meal tp;for(i=0;im;i+)temp=i;for(j=i;jm;j+)if(foodtemp.getpopular()foodj.getpopular

17、()temp=j;tp=foodtemp;foodtemp=foodi;foodi=tp;void Eatery:pricerank() /按照食物的价格进行排序int i,j,temp;Meal tp;for(i=0;im;i+) temp=i; for(j=i;jfoodj.getprice() temp=j;tp=foodtemp;foodtemp=foodi;foodi=tp;void Eatery:seteaterydata(int &fm,Meal fdM,int efm )/手动设置所有内容;fm是对应推介菜式个数;fd推介菜式列表int j;cout请输入:nendl;cout

18、chairman;coutendl;coutm;coutendl;for(int i=0;im;i+)j=-1;cout请输入第 i+1种菜式信息:n;foodi.setdata();for(j=0;jfm;j+)if(strcmp(fdj.getname(),foodi.getname()=0&fdj.getpopular()foodi.getpopular()fdj=foodi;efmj=id;break;if(j=fm)fm+;fdj=foodi;efmj=id;/Restaurant类函数的实现char* Restaurant:getplace() /获得餐馆位置return plac

19、e;char* Restaurant:getresname() /获得餐馆名称return resname;int Restaurant:setopentime(int ot) /设置餐馆的开门时间;if(ot=0)opentime=ot;return 1;coutresnameplacephonenumopentime;void Restaurant:filecout(fstream & fcout)/文件输出eatfilecout(fcout);fcoutresname place phonenum opentimen;void Restaurant:setdata()/手动设置所有内容i

20、nt ot;seteaterydata(rm, rfd, refm);cout请输入:endl;coutresname;coutendl;coutplace;coutendl;coutphonenum;coutendl;coutot;while(setopentime(ot)=0)coutot;coutendl;cout存储成功endl;void Restaurant:alter() /餐馆信息修改int i;int ch;cout-餐馆信息修改-endl;for(i=0;im;i+)cout编号i+1 foodiendl;cout欲编辑菜式信息请输入对应菜式的编号n 输入-1可退出修改ch;

21、if(ch=0&chm)coutfoodch=m)cout输入错误退出修改n;else cout退出修改n;void Restaurant:showdata()/显示餐馆的内容int i;cout-n;cout餐馆信息n名称: resname;coutn地址: place;coutn开门时间: opentime;coutn电话号码 : phonenum;popularrank();if(m)coutn最受欢迎的食物是:n;cout食物编号: 1 food0;coutn其它食物:n;for(i=1;im;i+)cout食物编号: i+1 foodi;coutendl;coutplace;void

22、 Snackcart:filecout(fstream & fcout)/文件输出eatfilecout(fcout);fcoutplacen;void Snackcart:setdata() /手动设置所有内容seteaterydata(sm,sfd,sefm);coutplace;cout存储成功endl;char *Snackcart:getplace() /获得小吃店位置return place;void Snackcart:alter() /小吃店信息修改int i;int ch;for(i=0;im;i+)couti+1 foodiendl;cout欲编辑菜式信息请输入相应的菜式编

23、号n 输入-1可退出修改ch;if(ch=0)coutfoodchendl;foodch-1.alter();else cout退出修改;void Snackcart:showdata() /显示小吃店的内容int i;coutSnackcart;coutn位置: place;pricerank();if(m)coutn该店最便宜的小吃是:;cout小吃编号: 1n food0;cout其它小吃:n;for(i=1;im;i+)cout小吃编号: i+1 foodi;coutendl;/重载函数的实现:ostream &operator(ostream& out,Meal &a) /Meal

24、重载a.showdata();return out;ostream &operator(ostream& out,Restaurant &a) /Restaurant 重载a.showdata();return out;ostream &operator(ostream& out,Snackcart&a) /Snackcart重载a.showdata();return out;/其他函数的实现:void showed(char sr,int &n)/显示餐馆/小食店的信息int num;while(num!=0&num!=-1)cout-显示餐馆/小食店的信息-endl;cout输入餐店编号执

25、行对应操作endl;cout 0.返回endl;cout -1.返回主菜单endl;cout -2.退出endl;cout欲编辑信息请输入修改的编号进入修改nnum;if(num0)edit(sr,n,num-1);else if(num=-2)cout感谢您的使用endl;putinfmtion();exit(0);else mainmenu();void showshop() /显示餐店信息char ch=0;int i;while(ch!=3)coutnnnn-显示餐店-endl;cout请选择:endl;cout 1.小食店endl;cout 2.餐馆 endl;cout 3.返回主菜

26、单endl;cout 4.退出endl;cout仅当指定餐馆/小食店后方可编辑其信息 ch;switch (ch)case1:if(!sn)cout还未存入没有小食店的信息n;elsefor(i=0;isn;i+)cout小吃店编号:i+1 snkctiendl;showed (s,sn);break;case2:if(!rn)cout还未存入没有餐馆的信息.n;elsefor(i=0;irn;i+)cout餐馆编号:i+1 rstrtiendl;showed (r,rn);break;case3:mainmenu();break;case4:cout感谢您的使用endl;putinfmtio

27、n();exit(0);void search() /查找餐店信息char ch=0;while(ch!=4)cout-查找信息-endl;cout请选择查找:endl;cout 1.小食店endl;cout 2.餐馆endl;cout 3.返回endl;cout 4.退出endl;cout仅当指定餐馆/小食店后方可编辑其信息ch;switch(ch)case1:snasearch();break;case2:ressearch();break;case3:mainmenu();break;case4:cout感谢您的使用endl;putinfmtion();exit(0);void snas

28、earch()/搜索小吃店if(!sn)cout还未存入小食店的信息.n;elsechar ch=0;char place2*N;int isna=-1;int i;while(ch!=4) cout-查找小吃店-endl;isna=-1;/初始化coutendl;cout请选择以_为线索查找:endl;cout 1.位置endl;cout 2.返回endl;cout 3.退出endl;cout仅当指定餐馆/小食店后方可编辑其信息 ch;switch(ch)case1:cout请输入位置place;for(i=0;isn;i+)if(strcmp(place,snkcti.getplace()=0)if(isn)isna=i;coutsnkctisnaendl;edit(s,sn,isna);else cout没有相关信息n; break; case2: mainmenu();break;case3:cout感谢您的使用endl;putinfmtion(); exit(0);void ressearch() /搜索餐馆char

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1