课程设计

 模拟餐馆点菜系统  

你到一个餐馆去仔细研究一下餐馆的业务流程:餐馆事先准备好自己的招牌菜及一些常规的菜式,有营业场所,服务人员等;顾客来了以后,服务生先给客人找一张桌子坐下来,然后递上菜谱等待顾客点菜,顾客可以点一个菜,也可以退菜,完了之后结账走人,这张桌子又可以用来招待下一批顾客。自己设计程序模拟点菜系统。

#include<iostream>    
	   
#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<<num<<"\t             "<<name<<"\t          "<<kind<<"\t           "<<price<<endl; }   
	    
	   
	   
	void  Cmenu::selectdisplay()       
	   
	{cout<<num<<"\t         "<<name<<"\t       "<<kind<<"\t           "<<price<<"\t          "<<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,j,id,m,q,z,sort,b;   
        int geshu;   
	    int NUM;     
            string NAME,KIND;   

	    float PRICE,POINT,sum=0;   
       
	   
        Cmenu food[40];      
       
	    ifstream f1("menu.txt");        

        for(j=0;j<40;j++) 
			
		{        
             f1>>NUM>>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(18);
	         food[1].getnum(2);   
             food[1].getkind("饮品");   
             food[1].getname(" 一一奶茶 ");  
			 food[1].getprice(8);  
			 food[2].getnum(3);   
             food[2].getkind("饮品");   
             food[2].getname("  热牛奶  ");
			 food[2].getprice(8); 
			 food[3].getnum(4);   
             food[3].getkind("饮品");   
             food[3].getname("   橙汁   "); 
			 food[3].getprice(10); 
			 food[4].getnum(5);    
             food[4].getkind("甜点"); 
             food[4].getname("   布丁   ");
			 food[4].getprice(12);
			 food[5].getnum(6);   
             food[5].getkind("甜点");   
             food[5].getname(" 提拉米苏 ");  
			 food[5].getprice(20); 
			 food[6].getnum(7);   
             food[6].getkind("甜点");   
             food[6].getname("  双皮奶  "); 
			 food[6].getprice(8);
			 food[7].getnum(8);   
             food[7].getkind("甜点");   
             food[7].getname("黑森林蛋糕");  
			 food[7].getprice(28); 
			 food[8].getnum(9);   
             food[8].getkind("甜点");  
             food[8].getname(" 芝士蛋糕 "); 
			 food[8].getprice(18);
			 food[9].getnum(10);   
             food[9].getkind("甜点"); 
             food[9].getname("   蛋挞   ");
			 food[9].getprice(4);
			 food[10].getnum(11);   
             food[10].getkind("甜点");
             food[10].getname(" 慕斯蛋糕 ");
			 food[10].getprice(15);
			 food[11].getnum(12);   
             food[11].getkind("甜点");   
             food[11].getname("   班戟   ");
			 food[11].getprice(25);

	          
		} 
		
        f1.close();   
     
        cout<<"                                                                           "<<endl;
	    cout<<"    *━*==*━*==*━*==*━*==*━欢迎光临一一甜品屋━*==*━*==*━*==*━*==*━*"<<endl<<endl<<endl;    
	       
	       
	   
	for(;;)   
	        
	{   cout<<"*==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==*"<<endl;   
		cout<<"                             请选择您需要的服务功能                             "<<endl;
		cout<<"*==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==**==*"<<endl;
        
        cout<<endl; 
		
        cout<<"      *==*     ┏━━━━━━━━━━━━━━━━━━━━━━━━┓     *==* "<<endl;    
        cout<<"      *==*     ┃                                                ┃     *==* "<<endl;   
        cout<<"      *==*     ┃                                                ┃     *==* "<<endl;   
	    cout<<"      *==*     ┃       0-----显示菜单里所有的菜的信息           ┃     *==* "<<endl;
		cout<<"      *==*     ┃                                                ┃     *==* "<<endl;
        cout<<"      *==*     ┃       1-----在菜单里按类查找。                 ┃     *==* "<<endl; 
		cout<<"      *==*     ┃                                                ┃     *==* "<<endl;
	    cout<<"      *==*     ┃       2-----点餐。                             ┃     *==* "<<endl;   
	    cout<<"      *==*     ┃                                                ┃     *==* "<<endl;     
	    cout<<"      *==*     ┗━━━━━━━━━━━━━━━━━━━━━━━━┛     *==* "<<endl<<endl;   
		
        cout<<endl;   

	    cout<<"================================================================================"<<endl;    


	    cin>>q;   

        if(q>2) {system("cls");

		cout<<"请输入正确序号"<<endl;}       
		
     	if(q==0)           
	   
		{    
	        cout<<"-------------------------------菜单---------------------------"<<endl;    
			
	        cout<<"甜品的编号             甜品             类别            单价/元 "<<endl;   

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

            food[j].menudisplay();   

	        cout<<"-------------------------------------------------------------"<<endl;   
	   
		}   
  
   
   
        if(q==1)                                     

		{ 
			cout<<"1--------------饮品"<<endl;  
			
            cout<<"2--------------甜点"<<endl;     

            cin>>z;   

	        if(z>2) {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;   
  
		}      
	    }   
	   
    	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<<"    ┃          5--------退出系统               ┃  "<<endl;   
	   cout<<"    ┃                                          ┃  "<<endl;   
       cout<<"    ┃                                          ┃  "<<endl;   
	   cout<<"    ┗━━━━━━━━━━━━━━━━━━━━━┛  "<<endl;  
	   
	   cin>>b;   
          
       if(b<1||b>4) {system("cls");cout<<"请输入正确序号"<<endl;}   
          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==5)   
	{system("cls");             
	cout<<endl;   
	cout<<endl;   
	cout<<endl;    
	cout<<"***************************谢谢您的光临,一一甜品屋期望您下次的惠顾*****************************"<<endl;    
	cout<<endl;    
	cout<<endl;         
	break;}   
	          
	}   
	       }


因为一直在待审核,所以有图片版的还在审核。

开始看到这个课程设计完全没有头绪不知道这么做,上网看了很多有关的点菜模拟程序,但是网上的都是很复杂比较厉害的,看不太懂。但是基本的点菜流程还是知道了,然后按照那个流程模仿着自己去写程序,但还是不是很好。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值