课程设计
来源:互联网 发布:淘宝上的凯威淘淘通讯 编辑:程序博客网 时间:2024/06/05 15:45
#include<iostream>#include<iomanip>#include<fstream>#include<string>using namespace std;class menu{int num; //菜式的编号string name; //菜名float price; //价格string kind; //种类int sort; //数量public: void num(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() //返回菜式类别{ returnkind; } 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<<stew(16)<<kind<<setw(16)kind<<price<<endl; }void Cmenu::selectdisplay() //输出菜单{ cout<<setw(3)<<num<<setw(24)<<name<<setw(16)<<kind<<setw(16)<<kind<<setw(16)<<price<<setw(19)<<sort<<endl; }class array{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;}void array::getnum(int Num) //初始化num的函数体{ num=Num; }void array::getsort(int Sort) //初始化sort的函数体{ sort=Sort; }void main(){int i,d,m,q,z,sort,b;char j;int g;int Num;string Name,Kind;float Price,Point,sum=0;Cmenu food[30]; //创建Cmenu类的对象数组ifstream f1("menu.txt"); //文件输入菜单信息for(j=0;j<30;j++){f1>>Num;f1>>Kind;f1>>Name;f1>>Price;food[j].num(Num);food[j].kind(Kind);food[j].name(Name);food[j].price(Price);food[0].num(1);food[0].kind("星冰乐"); food[0].name("摩卡星冰乐"); food[0].price(25);food[1].num(2);food[1].kind("星冰乐"); food[1].name("奶油星冰乐"); food[1].price(26);food[2].num(3);food[2].kind("星冰乐"); food[2].name("焦糖星冰乐"); food[2].price(25);food[3].num(4);food[3].kind("星冰乐"); food[3].name("咖啡星冰乐"); food[3].price(28);food[4].num(5);food[4].kind("甜品"); food[4].name("马卡龙"); food[4].price(30);food[5].num(6);food[5].kind("甜品"); food[5].name("焦糖布丁"); food[5].price(15);food[6].num(7);food[6].kind("甜品"); food[6].name("手工巧克力"); food[6].price(30);food[7].num(8);food[7].kind("甜品"); food[7].name("曲奇"); food[7].price(18);food[8].num(9);food[8].kind("甜品"); food[8].name("萨芭雍"); food[8].price(22);food[9].num(10);food[9].kind("蛋糕"); food[9].name("提拉米苏"); food[9].price(23);food[10].num(11);food[10].kind("蛋糕"); food[10].tname("起司蛋糕"); food[10].price(25);food[11].num(12);food[11].kind("蛋糕"); food[11].name("酸奶乳酪蛋糕"); food[11].price(24);}f1.close();cout<<"o(╯□╰)oo(╯□╰)oo(╯□╰)oo(╯□╰)o星爸爸欢迎你o(╯□╰)oo(╯□╰)oo(╯□╰)oo(╯□╰)o"<<endl;cout<<" 1--------显示菜单信息 2--------分类查找 3--------下单 "<<endl;cout<<"( ⊙o⊙ ) ( ⊙o⊙ ) ( ⊙o⊙ ) ( ⊙o⊙ ) ( ⊙o⊙ ) ( ⊙o⊙ ) ( ⊙o⊙ ) ( ⊙o⊙ ) ( ⊙o⊙ ) "<<endl;if(q==0) //显示菜单里所有的商品名字{ cout<<"-------------------------------菜单---------------------------"<<endl; cout<<"编号 名字 类别 单价/元 "<<endl; for(j=0;j<30;j++) food[j].menudisplay(); cout<<"-------------------------------------------------------------"<<endl;} if(q==2) // 在菜单里按类查找{ 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<30;j++) { if(food[j].returnkind()=="星冰乐") food[j].menudisplay(); }break; case 2: //输出甜品类 for(j=0;j<30;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>3) { system("cls"); cout<<"请输入正确序号"<<endl; } if(q==3) break; //退出进入点菜环节 }cout<<"你要下单的数量?"<<endl; //下单cin>>i; array *a=new array[i] ; //动态创建i个array类的数组来储存编号和数量 for(j=0;j<i;j++) { cout<<"请选择第"<<j+1<<"个商品的编号:"<<endl; cin>>id; //输入每个编号 cout<<"请输入数量:"<<endl; cin>>sort; //输入所点商品的数量 a[j].num(d); a[j].sort(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>>g; array *p=new array[i]; for(j=0;j<i;j++) { p[j].num(a[j].returnnum()); p[j].sort(a[j].returnsort()); }delete [] a;i=i+g;a=new array[i];for(j=0;j<i-g;j++){ a[j].num(p[j].returnnum()); a[j].sort(p[j].returnsort()); } delete [] p; for(j=i-g;j<i;j++) { cout<<"请输入增加的一个商品的编号和数量:"<<endl; cin>>d; cin>>sort; a[j].num(d); a[j].sort(sort); } cout<<"增加点菜成功。"<<endl; } if(b==2) { cout<<"请输入要删除的商品的编号:"<<endl; //删除操作 cin>>d; for(j=0;j<i;j++) { if(a[j].returnnum()==d) { 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<30;j++) { if(a[m].returnnum()==food[j].returnnum()) { food[j].sort(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<30;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; cin>>q; for(m=0;m<i;m++) { for(j=0;j<30;j++) { if(a[m].returnnum()==food[j].returnnum()) { food[j].gsort(a[m].returnsort()); sum=sum+food[j].returnprice()*food[j].returnsort(); //计算所点总金 } }} if(q>1) {system("cls");cout<<"请输入正确序号"<<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;} } }
这是主界面窗口
这是全部商品显示
这是下单界面
这是下单确认输出界面
这是按分类查找界面
一开始看到题目的时候,因为自己之前好奇了一下看了后面第九章的内容,所以我立马感觉到这是要类与对象来实现商品的分类、储存与输出功能。在加上之前所学的结构体,和第十章的多重继承。但在编写的过程中慢慢出现许多问题,像对象的指定不符合(这个是用翻译直译的导致我也不知道问题究竟是哪里!!),在查阅了资料后,终于把前面的40多行对象确定下来。后来在软件专业朋友的协助下,慢慢调试,修改终于写出来如下版本。但是还有一个问题实现不了。当在操作界面按4的时候,不能直接输出消费金额,只有执行了3输出商品后,按4才会输出金额,不知道问题出现在哪里。通过这次课程设计,我明白我们所学的东西只是皮毛,我们要不断开拓我们的知识面,才能适应以后在学习和工作中出现的各种问题。
0 0
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 课程设计
- 第03章 JavaBean技术
- Codeforces 346C Number Transformation II 构造
- 第04章 JSP处理XML
- HDU 4366 Successor 线段树
- 给字符串s1、s2,在s1中找包含s2里所有字符的最小子串
- 课程设计
- 2013级测试赛 -- A (字典树)
- 第05章 JSP整合Ajax
- Unity3D 玻璃 Shader
- 在 MATLAB 2012a 上配置 MATLAB Distributed Computing Server过程详解
- FlatBuffers要点
- 第06章 JSP Ajax常用技巧
- hdu1671 字典树记录前缀出现次数
- 第07章 Ajax框架