课程设计
来源:互联网 发布:windows10视频剪辑软件 编辑:程序博客网 时间:2024/06/05 16:48
模拟餐馆点菜系统
你到一个餐馆去仔细研究一下餐馆的业务流程:餐馆事先准备好自己的招牌菜及一些常规的菜式,有营业场所,服务人员等;顾客来了以后,服务生先给客人找一张桌子坐下来,然后递上菜谱等待顾客点菜,顾客可以点一个菜,也可以退菜,完了之后结账走人,这张桌子又可以用来招待下一批顾客。自己设计程序模拟点菜系统。
自己分析:主要由菜单页面、点菜页面,一开始并没有什么头绪,于是上网寻找资料,看到大部分的资料用的都是9、10、11、12章的类容,都用到了类和对象,感觉看着眼花缭乱,我尝试过用结构体构造一个菜单,但是到了点菜的环节就失败了,我也借鉴过很多的资料,但是因为涉及的内容超出了自己所学的范围,或许是自己思维受限吧,怎么都想不出来,于是我只能学着网上的资料一步一步的用类和对象的方式来写,一开始也遇到很多问题,即使是跟着写,写着写着就眼花缭乱了,感觉都找不到北了,但是我知道我只能硬着头皮好好模仿着写了,于是我又花了很长时间,改正,修改,调试,最终终于出了个样子了,希望老师谅解,我会继续学习的,在这次的课程设计中我终于知道了一名程序员是要能沉得住气的,面对数百甚至数千的代码,还是需要勇气和耐心的,同时我感觉我对c++的了解也加深了不少,但是还有很大的提升空间。希望以后我能学的更好,在此,谢谢老师您的教导!
#include<iostream> #include <iomanip> #include<fstream>#include<string> using namespace std;class Cmenu { int num; string name; float price; string kind; int sort; public: void getnum(int i); void getname(string Name); void getprice(float Price); void getkind(string Kind); void getsort(int SORT); void menudisplay(); void selectdisplay(); float returnnum() { return num; } string returnname() { return name; } float returnprice() { return price; } string returnkind() { return kind; } int returnsort() { return sort; } };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; }void Cmenu::getsort(int SORT) { sort=SORT; }void Cmenu::menudisplay() {cout<<setw(3)<<num<<setw(22)<<name<<setw(16)<<kind<<setw(16)<<price<<endl; } void Cmenu::selectdisplay() {cout<<setw(3)<<num<<setw(24)<<name<<setw(16)<<kind<<setw(16)<<price<<setw(19)<<sort<<endl; }float youhui(float sum,float point) { if(point>1.0){ sum=sum-point;}if(point<=1.0){sum=sum*point;} return sum;}class array { public:void getnum(int NUM); void getsort(int SORT); int returnnum() { return num; } int returnsort() { return sort; } private: int sort,num;};void array::getnum(int NUM) { num=NUM;}void array::getsort(int 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,sum=0;Cmenu food[40]; 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(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<<"━0━0━0━0━0━0━0━0━0━0━0━欢迎光临世界杯咖啡店━0━0━0━0━0━0━0━0"<<endl; //菜单 while(1) { cout<<"━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━"<<endl;cout<<endl; cout<<" ┏━━━━━━━━━━━━━━━━━━━━━━━━┓ "<<endl; cout<<" ┃ ┃ "<<endl; cout<<" ┃ ┃ "<<endl; cout<<" ┃ 0---------------菜单信息 ┃ "<<endl;cout<<" ┃^ 0 ^ 1---------------分类查找 ^ 0 ^ ┃ "<<endl;cout<<" ┃ 2---------------开始点菜 ┃ "<<endl; cout<<" ┃ ┃ "<<endl; cout<<" ┗━━━━━━━━━━━━━━━━━━━━━━━━┛ "<<endl; cout<<endl; cout<<"━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━0━"<<endl;cin>>q; if(q==0) { cout<<"-------------------------------菜单---------------------------"<<endl; cout<<"菜的编号 菜名 类别 单价/元 "<<endl; for(j=0;j<12;j++) food[j].menudisplay(); cout<<"-------------------------------------------------------------"<<endl; } if(q==1) { cout<<"1--------------世界杯咖啡"<<endl; cout<<"2--------------世界杯点心"<<endl; cout<<"3--------------世界杯扒"<<endl; cin>>z; if(z>3) {system("cls");cout<<"请输入正确序号"<<endl; } switch(z) { case 1: //输出咖啡类 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()=="世界杯点心") 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"); cout<<"请输入正确序号"<<endl; } if(q==2) break; //退出进入点菜环节 }cout<<"你要点多少个菜?"<<endl; cin>>i; array *a=new array[i] ; for(j=0;j<i;j++) { cout<<"请选择第"<<j+1<<"个菜的编号:"<<endl; cin>>id; cout<<"请输入数量:"<<endl; cin>>sort; a[j].getnum(id); a[j].getsort(sort); } for(;;) { cout<<" "<<endl; cout<<" "<<endl; cout<<" ┏━━━━━━━━━━━━━━━━━━━━━┓ "<<endl; cout<<" ┃ ┃ "<<endl; cout<<" ┃ ┃ "<<endl; cout<<" ┃ 1--------加菜 ┃ "<<endl; cout<<" ┃ 2--------退菜 ┃ "<<endl; cout<<" ┃ 3--------输出点菜信息并保存 ┃ "<<endl; cout<<" ┃ 4--------所用消费金额 ┃ "<<endl; cout<<" ┃ 0--------退出系统 ┃ "<<endl; cout<<" ┃ ┃ "<<endl; cout<<" ┃ ┃ "<<endl; cout<<" ┗━━━━━━━━━━━━━━━━━━━━━┛ "<<endl; cin>>b; if(b==1) { cout<<"你要增加多少个菜?"<<endl; cin>>geshu; array *p=new array[i]; for(j=0;j<i;j++) { p[j].getnum(a[j].returnnum()); p[j].getsort(a[j].returnsort()); }delete [] a;i=i+geshu;a=new array[i];for(j=0;j<i-geshu;j++){ a[j].getnum(p[j].returnnum()); a[j].getsort(p[j].returnsort()); } delete [] p; for(j=i-geshu;j<i;j++) { cout<<"请输入增加的一个菜的编号和数量:"<<endl; cin>>id; cin>>sort; a[j].getnum(id); a[j].getsort(sort); } cout<<"增加点菜成功。"<<endl; } if(b==2) { cout<<"请输入要删除的菜的编号:"<<endl; cin>>id; for(j=0;j<i;j++) { if(a[j].returnnum()==id) { m=j; for(j=m;j<i;j++) { a[j]=a[j+1]; } i--; cout<<"删除点菜成功。"<<endl;break; } } if(j==i) { cout<<"您并没有点过此类菜,请重新确认。"<<endl; } } if(b==3) { char baocun; cout<<"菜的编号 菜名 类别 单价/元 数量"<<endl; for(m=0;m<i;m++) { for(j=0;j<40;j++) { if(a[m].returnnum()==food[j].returnnum()) { food[j].getsort(a[m].returnsort()); food[j].selectdisplay(); } }} cout<<"是否保存并退出?"<<endl; cout<<"请按y(是)或n(否)"<<endl;cin>>baocun; if(baocun=='y') { ofstream file("select.txt"); file<<"菜的编号 菜名 类别 单价/元 数量"<<endl; for(m=0;m<i;m++) {for(j=0;j<40;j++){ if(a[m].returnnum()==food[j].returnnum()) { file<<food[j].returnnum()<<" "<<food[j].returnname()<<" "<<food[j].returnkind()<< " "<<food[j].returnprice()<<" "<<food[j].returnsort()<<endl; } }}file.close();cout<<"已成功保存!"<<endl;break;} } if(b==4){ sum=0; cout<<"你是否拥有优惠券?"<<endl; cout<<"0----------是"<<endl; cout<<"1----------否"<<endl; cin>>q; for(m=0;m<i;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<<"请输入正确序号"<<endl;} if(q==0) { cout<<"请输入优惠券的优惠金额(大于1)或者是优惠的折扣比:"<<endl; cin>>POINT; cout<<"打折后的总的金额是:"<<youhui(sum,POINT)<<"元"<<endl; } if(q==1){ cout<<"总的金额是:"<<sum<<"元"<<endl;}} if(b==0){system("cls"); cout<<endl;cout<<endl;cout<<endl; cout<<"*****************************欢迎再次光临********************************"<<endl; cout<<endl; cout<<endl; break;}if(b>4) {system("cls");cout<<"请输入正确序号"<<endl;} }
这是菜单,主要以咖啡为主,点心和扒类为辅。
这是分类查找
开始点菜!
加菜菜单,金额计算。
0 0
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- fork与vfork的区别
- 查找oracle比较慢的session和sql
- uva 10115 Automatic Editing(strstr+sprintf)
- USTC 1005 Booklet Printing
- poj 1562:Oil Deposits
- 课程设计
- Java 对象一对一
- 排序(1)---------选择排序(C语言实现)
- 8、大数,高精度计算---高精度幂次
- 字符串转换成整数
- -[__NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object'
- 9、 大数,高精度计算---大数阶乘
- Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析 转载
- UVA 1160 X-Plosives