C++餐厅管理系统.docx

上传人:b****5 文档编号:11663108 上传时间:2023-03-29 格式:DOCX 页数:26 大小:268.54KB
下载 相关 举报
C++餐厅管理系统.docx_第1页
第1页 / 共26页
C++餐厅管理系统.docx_第2页
第2页 / 共26页
C++餐厅管理系统.docx_第3页
第3页 / 共26页
C++餐厅管理系统.docx_第4页
第4页 / 共26页
C++餐厅管理系统.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C++餐厅管理系统.docx

《C++餐厅管理系统.docx》由会员分享,可在线阅读,更多相关《C++餐厅管理系统.docx(26页珍藏版)》请在冰豆网上搜索。

C++餐厅管理系统.docx

C++餐厅管理系统

北华大学

C++课程实习报告

餐厅点菜系统

学院:

电气信息工程学院

专业:

电子信息工程

班级:

学号:

姓名:

指导教师:

餐厅点菜系统

一、需求分析

1、该程序对于餐厅菜单进行管理,显示所有菜,顾客可以点餐厅的所有菜,也可以按类查找,自动生成菜单,自动计算消费金额,可以使用优惠劵

2、显示菜的编号、菜名、类别和单价

3、菜可以按类查找:

炒菜、炒饭和面类

4、点菜

a)增加点菜

b)删除一个点菜

c)输出点菜信息并保存

d)计算消费金额

优惠卷

1)金额优惠

2)打折优惠

二、设计实现

该餐厅点菜系统共有两个类和一个构造函数,Cmenu类(菜的属性)和array类(菜的数组),与函数youhui(计算有优惠卷时的价格)

在Cmenu类中,

定义:

name菜的编号,name菜名,price菜的单价,kind菜的种类,sort菜的数量,函数getnum录入菜的编号

函数实现:

函数getname实现:

录入菜的名字,

函数getprice实现:

录入菜的单价,

函数getkind实现:

录入菜的类别,

函数getsort实现:

录入所点菜的数量,

函数menudisplay实现:

菜谱显示,

函数selectdisplay实现:

对所点的菜进行输出,

函数returnnum实现:

返回菜的编号,

函数returnname实现:

返回菜名,

函数returnprice实现:

返回菜的单价,

函数returnkind实现:

返回菜的类别,

函数returnsort实现:

返回菜的数量。

在array类中,

定义:

sort菜的类别,num菜的数量

函数实现:

函数getnum实现:

初始化num,

函数getsort实现:

初始化sort,

函数returnnum实现:

返回num,

函数returnsort实现:

返回sort

主函数main的运行流程图:

三、测试结果

首页:

菜的信息:

按类查找:

炒菜

炒饭

面类

点菜

菜的信息:

增加点菜:

删除点菜:

计算消费金额:

1、没有拥有优惠卷

2、拥有优惠卷:

a)20元的优惠卷

b)0.85折优惠卷

退出系统:

四、结论及需改进的问题

餐厅点菜系统是在图书管理系统的基础上,慢慢自己改进的,其中增加点菜,删除点菜,输出菜单,按类查询都是按照图书管理系统中增加图书,删除图书,显示图书,按类查询中改进的,其中最重要的是菜单的录用,自己想了很多方法,最后用文本输入函数做的,把菜单完全的输入进去,还有一点新颖的地方,源于优惠劵的使用,不仅可以使用金额的优惠,并且还会使用打折卷的优惠,虽然这里面的算法很简单,但是增加的程序的实用性。

我感觉不足的是,应该有一个会进人后台的功能,进去可以增加菜单里的菜,删除菜,更改类别和金额,更方便餐厅的管理者,当然进人的时候,加入管理员密码。

餐厅点菜系统C++代码

#include

#include

#include

#include

usingnamespacestd;

classCmenu//创建Cmenu类菜的属性

{

intnum;//菜的编号

stringname;//菜名

floatprice;//菜的单价

stringkind;//菜的种类

intsort;//菜的数量

public:

voidgetnum(inti);//录入菜的编号

voidgetname(stringName);//录入菜的名字

voidgetprice(floatPrice);//录入菜的单价

voidgetkind(stringKind);//录入菜的类别

voidgetsort(intSORT);//录入所点菜的数量

voidmenudisplay();//菜谱显示

voidselectdisplay();//对所点的菜进行输出

floatreturnnum()//返回菜的编号

{returnnum;}

stringreturnname()//返回菜名

{returnname;}

floatreturnprice()//返回菜的单价

{returnprice;}

stringreturnkind()//返回菜的类别

{returnkind;}

intreturnsort()//返回菜的数量

{returnsort;}

};

voidCmenu:

:

getnum(inti)//录入菜的编号函数

{

num=i;

}

voidCmenu:

:

getname(stringName)//录入菜的名字

{

name=Name;

}

voidCmenu:

:

getprice(floatPrice)//录入菜的单价

{

price=Price;

}

voidCmenu:

:

getkind(stringKind)//录入菜的类别

{

kind=Kind;

}

voidCmenu:

:

getsort(intSORT)//录入所点菜的数量

{

sort=SORT;

}

voidCmenu:

:

menudisplay()//菜单的信息显示

{

cout<

}

voidCmenu:

:

selectdisplay()//对所点的菜进行输出

{

cout<

}

floatyouhui(floatsum,floatpoint)//函数计算有优惠卷时的价格

{

if(point>1.0)

{

sum=sum-point;

}

if(point<=1.0)

{

sum=sum*point;

}

returnsum;

}

classarray//创建一个array数组

{

public:

voidgetnum(intNUM);//初始化num的函数

voidgetsort(intSORT);//初始化sort的函数

intreturnnum()//返回num的函数

{returnnum;}

intreturnsort()//返回sort的函数

{returnsort;}

private:

intsort,num;

};

voidarray:

:

getnum(intNUM)//初始化num的函数体

{

num=NUM;

}

voidarray:

:

getsort(intSORT)//初始化sort的函数体

{

sort=SORT;

}

voidmain()//主函数

{

inti,id,m,q,z,sort,b;

charj;

intgeshu;

intNUM;

stringNAME,KIND;

floatPRICE,POINT,sum=0;

Cmenufood[40];//创建Cmenu类的对象数组

ifstreamf1("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(PRICE);

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("香辣肉丝");

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("炒饭");

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[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);

food[11].getnum(12);

food[11].getkind("面类");

food[11].getname("手擀面");

food[11].getprice(6);

}

f1.close();

cout<<"━*━*━*━*━*━*━*━*━*━*━*━欢迎光临本店━*━*━*━*━*━*━*━*━*━*━*"<

while

(1)

{

cout<<"━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━"<

cout<

cout<<"┏━━━━━━━━━━━━━━━━━━━━━━━━┓"<

cout<<"┃┃"<

cout<<"┃┃"<

cout<<"┃0---------------显示菜单里所有的菜的信息┃"<

cout<<"┃1---------------在菜单里按类查找。

┃"<

cout<<"┃2---------------点菜。

┃"<

cout<<"┃┃"<

cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━┛"<

cout<

cout<<"━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━"<

cin>>q;

if(q==0)//显示菜单里所有的菜名

{

cout<<"-------------------------------菜单---------------------------"<

cout<<"菜的编号菜名类别单价/元"<

for(j=0;j<12;j++)

food[j].menudisplay();

cout<<"-------------------------------------------------------------"<

}

if(q==1)//在菜单里按类查找

{

cout<<"1--------------炒菜"<

cout<<"2--------------炒饭"<

cout<<"3--------------面类"<

cin>>z;

if(z>3)

{

system("cls");

cout<<"请输入正确序号"<

}

switch(z)

{

case1:

//输出炒菜类

for(j=0;j<40;j++)

{

if(food[j].returnkind()=="炒菜")

food[j].menudisplay();

}

break;

case2:

//输出炒饭类

for(j=0;j<40;j++)

{

if(food[j].returnkind()=="炒饭")

food[j].menudisplay();

}

break;

case3:

//输出面类

for(j=0;j<40;j++)

{

if(food[j].returnkind()=="面类")

food[j].menudisplay();

}

break;

}

}

if(q>2)

{

system("cls");

cout<<"请输入正确序号"<

}

if(q==2)break;//退出进入点菜环节

}

cout<<"你要点多少个菜?

"<

cin>>i;

array*a=newarray[i];//动态创建i个array类的数组来储存菜的编号和数量

for(j=0;j

{

cout<<"请选择第"<

"<

cin>>id;//输入每个菜的编号

cout<<"请输入数量:

"<

cin>>sort;//输入每个菜的数量

a[j].getnum(id);

a[j].getsort(sort);

}

for(;;)//对定的菜进行操作

{

cout<<""<

cout<<""<

cout<<"┏━━━━━━━━━━━━━━━━━━━━━┓"<

cout<<"┃┃"<

cout<<"┃┃"<

cout<<"┃1--------增加点菜┃"<

cout<<"┃2--------删除一个菜┃"<

cout<<"┃3--------输出点菜信息并保存┃"<

cout<<"┃4--------计算消费金额┃"<

cout<<"┃0--------退出系统┃"<

cout<<"┃┃"<

cout<<"┃┃"<

cout<<"┗━━━━━━━━━━━━━━━━━━━━━┛"<

cin>>b;

if(b==1)

{

cout<<"你要增加多少个菜?

"<

cin>>geshu;

array*p=newarray[i];

for(j=0;j

{

p[j].getnum(a[j].returnnum());

p[j].getsort(a[j].returnsort());

}

delete[]a;

i=i+geshu;

a=newarray[i];

for(j=0;j

{a[j].getnum(p[j].returnnum());

a[j].getsort(p[j].returnsort());

}

delete[]p;

for(j=i-geshu;j

{

cout<<"请输入增加的一个菜的编号和数量:

"<

cin>>id;

cin>>sort;

a[j].getnum(id);

a[j].getsort(sort);

}

cout<<"增加点菜成功。

"<

}

if(b==2)

{

cout<<"请输入要删除的菜的编号:

"<

cin>>id;

for(j=0;j

{

if(a[j].returnnum()==id)

{

m=j;

for(j=m;j

{

a[j]=a[j+1];

}

i--;

cout<<"删除点菜成功。

"<

}

}

if(j==i)

{

cout<<"你没有点这个菜!

错误。

"<

}

}

if(b==3)//输出所点菜的信息

{charbaocun;

cout<<"菜的编号菜名类别单价/元数量"<

for(m=0;m

{

for(j=0;j<40;j++)

{

if(a[m].returnnum()==food[j].returnnum())

{food[j].getsort(a[m].returnsort());

food[j].selectdisplay();

}

}

}

cout<<"是否保存并退出?

"<

cout<<"请按y(是)或n(否)"<

cin>>baocun;

if(baocun=='y')

{ofstreamfile("select.txt");

file<<"菜的编号菜名类别单价/元数量"<

for(m=0;m

{

for(j=0;j<40;j++)

{

if(a[m].returnnum()==food[j].returnnum())

{file<

""<

}

}

}

();

cout<<"已成功保存!

"<

break;}

}

if(b==4){

sum=0;

cout<<"你是否拥有优惠券?

"<

cout<<"0----------是"<

cout<<"1----------否"<

cin>>q;

for(m=0;m

{

for(j=0;j<40;j++)

{

if(a[m].returnnum()==food[j].returnnum())

{food[j].getsort(a[m].returnsort());

sum=sum+food[j].returnprice()*food[j].returnsort();//计算所点菜的总金

}

}

}

if(q>1){system("cls");cout<<"请输入正确序号"<

if(q==0)

{

cout<<"请输入优惠券的优惠金额(大于1)或者是优惠的折扣比:

"<

cin>>POINT;

cout<<"打折后的总的金额是:

"<

}

if(q==1)

{

cout<<"总的金额是:

"<

}

if(b==0)

{system("cls");//退出

cout<

cout<

cout<

cout<<"*****************谢谢使用************谢谢使用****************谢谢使用****************"<

cout<

cout<

break;}

if(b>4){system("cls");cout<<"请输入正确序号"<

}

}

实习心得

通过这次C++实习,我确实学到了许多方面的知识,不仅仅包含课本上现有的基础知识点,更重要的是亲自实践,动手操作编写程序以及程序的调试。

在这期间锻炼了我的动手能力,开拓了思维,更培养了独立思考问题的能力。

因此我才有了以下六点心得和体会:

第一:

不管做任何事都要有勇气,不要对不可预知的事说不,要知道只有不恐惧才会有收获。

C++程序编写的时候比较复杂,而且内容也比较多,所以我们不应该被这种问题吓到,只要我们认真思考,就可以发现他其实并不是我们想象的那么难!

第二:

要记得做任何事都要认真,粗心可真是吃大亏。

尤其是在做C++实验的时候,敲错一个字母甚至是一个标点符号,就难以建立,难以运行。

那可真是惨状啊!

老师早已做下一步,可能你还停留在原地,跟不上老师的进程,耽误实习任务,所以要记得认真,这样可以接

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

当前位置:首页 > 成人教育 > 远程网络教育

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

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