1、 北华大学 C++课程实习汇报 餐厅点菜系统 学 院:电气信息工程学院 专 业:电子信息工程 班 级: 学 号: 姓 名: 指导老师: 餐厅点菜系统 一、 需求分析 1、 该程序对于餐厅菜单进行管理,显示全部菜,用户能够点餐厅全部菜,也能够按类查找,自动生成菜单,
2、自动计算消费金额,能够使用优惠劵 2、 显示菜编号、菜名、类别和单价 3、 菜能够按类查找:炒菜、炒饭和面类 4、 点菜 a)增加点菜 b)删除一个点菜 c)输出点菜信息并保留 d)计算消费金额 优惠卷 1)金额优惠 2)打折优惠 二、 设计实现 该餐厅点菜系统共有两个类和一个结构函数,Cmenu 类(菜属性)和array类 (菜数组),和函数youhui(计算有优惠卷时价格) 在Cmenu类中, 定义:name 菜编号,name 菜名,price 菜单价,kind 菜种类,sort 菜数量,函数getnum 录入菜编号 函数实现: 函数 getna
3、me 实现:录入菜名字, 函数 getprice 实现:录入菜单价, 函数 getkind 实现:录入菜类别, 函数 getsort 实现:录入所点菜数量, 函数 menudisplay 实现:菜谱显示, 函数selectdisplay 实现:对所点菜进行输出, 函数 returnnum 实现:返回菜编号, 函数 returnname 实现:返回菜名, 函数 returnprice
4、 实现:返回菜单价, 函数 returnkind 实现:返回菜类别, 函数 returnsort 实现:返回菜数量。 在array类中, 定义:sort 菜类别,num 菜数量 函数实现: 函数 getnum 实现:初始化num, 函数 getsort 实现:初始化sort, 函数 returnnum 实现:返回num, 函数 returnsort 实现:返回sort 主函数main运行步骤图: 退出界面
5、 getnum( ) getsort( ) returnnum( ) returnsort( ) selectdisplay( ) file(“select.txt”) returnprice( ) returnsort( ) returnkind( ) youhui( ) 点菜 array类 菜单显示 menudisplay()() 按类查找 returnkind() 2 0 1 显示界面 选择操作 定义变量: Int sort,geshu,NUM String NAME,KIND 文件输入菜单信息 f1(“menu.tx
6、t”) 开始 三、 测试结果 首页: 菜信息: 按类查找: 炒菜 炒饭 面类 点菜 菜信息: 增加点菜: 删除点菜: 计算消费金额: 1、没有拥有优惠卷 2、 拥有优惠卷: a)20元优惠卷
7、 b) 0.85折优惠卷 退出系统: 四、 结论及需改善问题 餐厅点菜系统是在图书管理系统基础上,慢慢自己改善,其中增加点菜,删除点菜,输出菜单,按类查询全部是根据图书管理系统中增加图书,删除图书,显示图书,按类查询中改善,其中最关键是菜单录用,自己想了很多方法,最终用文本输入函数做,把菜单完全输入进去,还有一点新奇地方,源于优惠劵使用,不仅能够使用金额优惠,而且还会使用打折卷优惠,即使这里面算法很简单,不过增加程序实用性。 我感觉不足是,应该有一个会进人后台功效,进去能够增加菜单里菜,删除菜,更改类别和金额,更方便餐厅管理者,当然进人时候,加入
8、管理员密码。
餐厅点菜系统C++代码
#include
9、 //菜单价 string kind; //菜种类 int sort; //菜数量 public: void getnum(int i); //录入菜编号 void getname(string Name); //录入菜名字 void getprice(float Price); //录入菜单价 void getkind
10、string Kind); //录入菜类别 void getsort(int SORT); //录入所点菜数量 void menudisplay(); //菜谱显示 void selectdisplay(); //对所点菜进行输出 float returnnum() //返回菜编号 { return num; } string returnname()
11、 //返回菜名 { return name; } float returnprice() //返回菜单价 { return price; } string returnkind() //返回菜类别 { return kind; } int returnsort() //返回菜数量 { return sort; } };
12、void Cmenu::getnum(int i) //录入菜编号函数 { num=i; } void Cmenu::getname(string Name) //录入菜名字 { name=Name; } void Cmenu::getprice(float Price) //录入菜单价 { price=Price; } void Cmenu::getkind(string Kind) //录入菜类别 { kind=Kind; }
13、void Cmenu::getsort(int SORT) // 录入所点菜数量
{
sort=SORT;
}
void Cmenu::menudisplay() //菜单信息显示
{
cout< 14、)< 15、{
public:
void getnum(int NUM); //初始化num函数
void getsort(int SORT); //初始化sort函数
int returnnum() //返回num函数
{ return num; }
int returnsort() //返回sort函数
{ return sort; }
private:
int sort,num;
} 16、
void array::getnum(int NUM) //初始化num函数体
{
num=NUM;
}
void array::getsort(int SORT) //初始化sort函数体
{
sort=SORT;
}
void main() //主函数
{
int i,id,m,q,z,sort,b;
char j;
int geshu;
int NUM;
string NAME,KIND;
float PRICE,POINT 17、sum=0;
Cmenu food[40]; //创建Cmenu类对象数组
ifstream f1("menu.txt"); //文件输入菜单信息
for(j=0;j<12;j++)
{
f1>>NUM;
f1>>KIND;
f1>>NAME;
f1>>PRICE;
food[j].getnum(NUM);
food[j].getkind(KIND);
food[j].getname(NAME);
food[j].getprice(PRIC 18、E);
food[0].getnum(1);
food[0].getkind("炒菜");
food[0].getname("麻辣豆腐");
food[0].getprice(8);
food[1].getnum(2);
food[1].getkind("炒菜");
food[1].getname("烧茄子");
food[1].getprice(10);
food[2].getnum(3);
food[2].getkind("炒菜");
food[2].getname("香辣肉丝"); 19、
food[2].getprice(15);
food[3].getnum(4);
food[3].getkind("炒菜");
food[3].getname("锅包肉");
food[3].getprice(15);
food[4].getnum(5);
food[4].getkind("炒饭");
food[4].getname("蛋炒饭");
food[4].getprice(5);
food[5].getnum(6);
food[5].getkind("炒饭");
20、food[5].getname("扬州炒饭");
food[5].getprice(6);
food[6].getnum(7);
food[6].getkind("炒饭");
food[6].getname("火腿炒饭");
food[6].getprice(6);
food[7].getnum(8);
food[7].getkind("炒饭");
food[7].getname("鱿鱼炒饭");
food[7].getprice(7);
food[8].getnum(9);
food[ 21、8].getkind("面类");
food[8].getname("刀削面");
food[8].getprice(5);
food[9].getnum(10);
food[9].getkind("面类");
food[9].getname("羊肉面");
food[9].getprice(8);
food[10].getnum(11);
food[10].getkind("面类");
food[10].getname("热干面");
food[10].getprice(5);
22、food[11].getnum(12);
food[11].getkind("面类");
food[11].getname("手擀面");
food[11].getprice(6);
}
f1.close();
cout<<"━*━*━*━*━*━*━*━*━*━*━*━欢迎光临本店━*━*━*━*━*━*━*━*━*━*━*"< 23、 24、 0---------------显示菜单里全部菜信息 ┃ "< 25、ut<<" ┗━━━━━━━━━━━━━━━━━━━━━━━━┛ "< 26、 cout<<"菜编号 菜名 类别 单价/元 "< 27、菜单里按类查找
{
cout<<"1--------------炒菜"< 28、 for(j=0;j<40;j++)
{
if(food[j].returnkind()=="炒菜")
food[j].menudisplay();
}
break;
case 2: //输出炒饭类
for(j=0;j<40;j++)
{
if(food[j].returnkind()=="炒饭")
29、 food[j].menudisplay();
}
break;
case 3: //输出面类
for(j=0;j<40;j++)
{
if(food[j].returnkind()=="面类")
food[j].menudisplay();
}
break;
}
}
if(q>2)
{
system("cls");
30、 cout<<"请输入正确序号"< 31、个菜编号
cout<<"请输入数量:"< 32、endl;
cout<<" ┏━━━━━━━━━━━━━━━━━━━━━┓ "< 33、2--------删除一个菜 ┃ "< 34、 ┃ "< 35、 for(j=0;j 36、 delete [] p;
for(j=i-geshu;j>id;
cin>>sort;
a[j].getnum(id);
a[j].getsort(sort);
}
cout<<"增加点菜成功。"< 37、if(b==2)
{
cout<<"请输入要删除菜编号:"< 38、endl;break;
}
}
if(j==i)
{
cout<<"你没有点这个菜!!错误。"< 39、m>baocun;
if(baocu 40、n=='y')
{ ofstream file("select.txt");
file<<"菜编号 菜名 类别 单价/元 数量"< 41、rnname()<<" "< 42、 cout<<"0----------是"< 43、j].returnprice()*food[j].returnsort(); //计算所点菜总金
}
}
}
if(q>1) {system("cls");cout<<"请输入正确序号"< 44、ui(sum,POINT)<<"元"< 45、< 46、问题吓到,只要我们认真思索,就能够发觉她其实并不是我们想象那么难!
第二:要记得做任何事全部要认真,粗心可真是吃大亏。尤其是在做C++试验时候,敲错一个字母甚至是一个标点符号,就难以建立,难以运行。那可真是惨状啊!老师早已做下一步,可能你还停留在原地,跟不上老师进程,耽搁实习任务,所以要记得认真,这么能够靠近成功!
第三:要多思索,即使老师已将代码原本托出,但我们也要思索,写这一步作用,能实现什么功效,在哪个部分增加变量,哪个部分增加函数,结构函数加入能够增添什么,全部是我们应该考虑。假如真从中有所得,自己独立思索出来,那就是自己东西,自己能够随时利用。
第四:要勤奋,来这才知道,和外界 47、有多大距离,我们学太少了,外边知识已经爆炸了,但我们现在还在虚度光阴,真是太不应该了,也可能是一上大学我们心理,过渡期没有很好掌控,造成现在我们,只是挨着过日子,没有明确自己目标,将平时很多时间全部用到了玩游戏看电视剧上面,和C++程序员脱节。但我们要相信勤能补拙,只要自己从现在开始做,充足利用好以后每分每秒,让生活变得充实!学无止境,只要觉醒就不会迟。
第五:要知道谦虚,即使这是一个伴随我们成长一个词,但到底做到能有几人?我们全部是处于学习早期,对于c++上很多东西,全部是糊里糊涂。所以我们要时刻准备问询问题,不知道地方就要虚心向老师和同学请教。不找人区分只找自己做题差异,要就题论题,切不 48、可就人论题!
简短但不简单实习就这么靠近尾声,这里给我留下是满满回念,满满留恋。有人在庆贺最终能够放假,最终能够轻松,但我更多是,无奈,实习时间真是一晃而过!在这里我动手能力显著提升,对于自己学c++也更多了些理性,对自己未来就业方向,也有了眉目。真很感谢这里老师,尤其是我们指导老师最终讲一番话,谢谢老师!您幸苦了!
参考书籍
《C++程序设计》——清华大学出版社
《C++程序设计语言(尤其版)》——机械工业出版社
《C++语言设计和演化》——机械工业出版社
《AcceleratedC++汉字版》——中国电力出版社
《C++Primer(3RD)》——中国电力出版社
《EssentialC++汉字版》——华中科技大学出版社
《C++程序设计陷阱》——中国青年出版社
《提升C++性能编译技术》——清华大学出版社
《C++Templates全览(简体版)》——人民邮电出版社






