KFC点餐模拟

同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
基本要求:
1.程序设计风格良好,控制台界面友好,最多两人一组完成任务。
2.实现功能测试代码,确保程序的健壮性。
3.画出使用的设计模式图。
提高要求:
1.实现可视化界面(使用MFC)。
2.实现会员储值卡功能,完成储值卡消费。
3.实现当天营业额和餐品销量计算和统计,用数据库记录。
类图在这里插入图片描述在这里插入图片描述在这里插入图片描述`package kfc;

public class BeefBurger implements Hamburger{
private double price=10.0;
int num=0;

public void display() {
System.out.println(“至尊牛肉堡 *”+num+" “+price+”/份");
}
public void numplus() {
num++;
}
public double getprice() {
return price;
}
public int getnum() {
return num;
}
public String getd() {
String xixi =new String();
xixi=“至尊牛肉堡 *”+num+" “+price+”/份";
return xixi;
}
}

package kfc;

public class BeefBurgerFactory implements HamburgerFactory {
	 public Hamburger productHamburger() {
		 return new BeefBurger();
	 }
}

package kfc;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;

public class Client {
    public static void main(String[] args) {
    	 int select,choice,H=0,i=0,flag=0;
    	 double price=0.0;
    	 BeefBurgerFactory BeefBurgerF=new BeefBurgerFactory();
    	 WholeShrimpBurgerFactory WholeShrimpBurgerF=new  WholeShrimpBurgerFactory();
    	 ZingerBurgerFactory ZingerBurgerF=new ZingerBurgerFactory();
    	 Hamburger H1=BeefBurgerF.productHamburger();
 		 Hamburger H2=WholeShrimpBurgerF.productHamburger();
 		 Hamburger H3=ZingerBurgerF.productHamburger();
 		 SnackFactory TaroDiguaPillsF=new TaroDiguaPillsFactory();//1
 		 SnackFactory CornSaladF=new CornSaladFactory();//2
 		 SnackFactory CrispyMeatStringF=new CrispyMeatStringFactory();//3
 		 SnackFactory HotWingF=new HotWingFactory();//4
 		 SnackFactory PopcornChickenF=new PopcornChickenFactory();//5
 		 SnackFactory FrenchFriesF=new FrenchFriesFactory();//6
 		 Snack S1=TaroDiguaPillsF.productSnack();
 		 Snack S2=CornSaladF.productSnack();
 		 Snack S3=CrispyMeatStringF.productSnack();
 		 Snack S4=HotWingF.productSnack();
 		 Snack S5=PopcornChickenF.productSnack();
 		 Snack S6=FrenchFriesF.productSnack();
 		 SetMeal set=new SetMeal();
 		 DrinkFactory D=new DrinkFactory();
 		 Drinks [] arr=new Drinks [4];
 		FileWriter fw = null;
        try {
        //如果文件存在,则追加内容;如果文件不存在,则创建文件
        File f=new File("E:\\javaxixi\\KFC\\dd.txt");
        fw = new FileWriter(f, true);
        } catch (IOException e) {
        e.printStackTrace();
        }
        PrintWriter pw = new PrintWriter(fw);
    	 Scanner in=new Scanner(System.in);
	     System.out.println("          欢迎来到KFC,请选择食物   ");
	     System.out.println("                 汉堡系列                             ");
	     System.out.println("———————————————————————————");
	     System.out.println("至尊牛肉堡"+"                    ¥10.0");
	     System.out.println("至尊鲜虾堡"+"                    ¥12.0");
	     System.out.println("香辣鸡腿堡"+"                    ¥ 9.5");
	     System.out.println("                                      ");
	     System.out.println("                                      ");
	     System.out.println("                 小吃系列                             ");
	     System.out.println("———————————————————————————");
	     System.out.println("香芋地瓜丸"+"                    ¥ 5.0");
	     System.out.println("玉米沙拉   "+"                    ¥ 4.0");
	     System.out.println("骨肉相连   "+"                    ¥ 3.0");
	     System.out.println("香辣鸡翅   "+"                    ¥ 7.5");
	     System.out.println("鸡米花       "+"                    ¥ 7.5");
	     System.out.println("薯条          "+"                    ¥ 8.0");
	     System.out.println("                                      ");
	     System.out.println("                                      ");
	     System.out.println("                 饮品系列                             ");
	     System.out.println("——————————————————————————");
	     System.out.println("可口可乐   "+"                    ¥ 6.0");
	     System.out.println("热咖啡       "+"                    ¥ 8.0");
	     System.out.println("热奶茶       "+"                    ¥ 7.0");
	     System.out.println("热牛奶       "+"                    ¥ 7.0");
	     System.out.println("                                      ");
	     System.out.println("                                      ");
	     System.out.println("                 套餐系列                             ");
	     System.out.println("———————————————————————————");
	     System.out.println("情侣套餐   "+"                    ¥ 46.6");
	     
	     System.out.println("请选择要购买的食物: 1.汉堡系列 2.小吃系列3.饮品系列 4套餐系列.");
	     select=in.nextInt();
	     while(select!=0) {
	    	 if(select==1) {
	    		System.out.println("请选择要购买的汉堡: 1.至尊牛肉堡 2.至尊鲜虾堡 3.香辣鸡腿堡  ");
	    		choice=in.nextInt();
	    		while(choice!=0) {
	    			if(choice==1) {
	    			  H1.numplus();
	    			  price+=H1.getprice();
	    			}
	    			else if (choice==2 ) {
	    			  H2.numplus();
	    			  price+=H2.getprice();
	    			}
	    			else if(choice==3) {
	    			  H3.numplus();
	    			  price+=H3.getprice();
	    			}
	    			System.out.println("添加成功,请继续选择;或者按0返回上一级");
	    			choice=in.nextInt();
	    		}
	    	 }
	    	 if(select==2) {
	    		 System.out.println("请选择要购买的小吃: 1.香芋地瓜丸 2.玉米沙拉 3.骨肉相连 4.香辣鸡翅 5.鸡米花 6.薯条  ");
	    		 choice=in.nextInt();
	    		 while(choice!=0) {
	    		      if(choice==1) {
	    		    	  S1.numplus();
	    		    	  price+=S1.getprice();
	    		      }
	    		      else if(choice==2) {
	    		    	  S2.numplus();
	    		    	  price+=S2.getprice();
	    		      }
	    		      else if(choice==3) {
	    		    	  S3.numplus();
	    		    	  price+=S3.getprice();
	    		      }
	    		      else if(choice==4) {
	    		    	  S4.numplus();
	    		    	  price+=S4.getprice();
	    		      }
	    		      else if(choice==5) {
	    		    	  S5.numplus();
	    		    	  price+=S5.getprice();
	    		      }
	    		      else if(choice==6) {
	    		    	  S6.numplus();
	    		    	  price+=S6.getprice();
	    		      }
	    		      System.out.println("添加成功,请继续选择;或者按0返回上一级");
		    			choice=in.nextInt();
	    		 }
	    	 }
	    	 else if(select==3) {
	    		 System.out.println("请选择要购买的饮品: 1.可口可乐(橙汁) 2.热咖啡 3.热奶茶 4.热牛奶   ");
	    		 choice=in.nextInt();
	    		 while(choice!=0) {
	    		       D.fun(choice);
	    		       Drinks DR=D.make();
	    		       price+=DR.getprice();
	    		       arr[choice]=DR;
	    		       System.out.println("添加成功,请继续选择;或者按0返回上一级");
	    		       choice=in.nextInt();
	    		 }
	    		     
	    	 }
	    	 else if(select==4) {
	    		 System.out.println("请选择要购买的套餐: 1.情侣套餐  或者按0返回上一层");
	    		 choice=in.nextInt();
	    		 while(choice==1) {
	    			  set.numplus();
	    			  price+=set.getprice();
	    			  flag=1;
	    			  System.out.println("添加成功,请继续选择;或者按0返回上一级");
	    			  choice=in.nextInt();
	    		 }
	    	 }
	    	 System.out.println("请选择要购买的食物: 1.汉堡系列 2.小吃系列3.饮品系列 4.套餐系列;或者按0退出");
	    	 select=in.nextInt();
	     }
	     String xixi=new String();
	     if(H1.getnum()!=0) {
	    	 H1.display();
	    	 pw.println(H1.getd());
	     }
	     if(H2.getnum()!=0) {
	    	 H2.display();
	    	 pw.println(H2.getd());
	     }
	     if(H3.getnum()!=0) {
	    	 H3.display();
	    	 pw.println(H3.getd());
	     }
	     if(S1.getnum()!=0) {
	    	 S1.display();
	    	 pw.println(S1.getd());
	     }
	     if(S2.getnum()!=0) {
	    	 S2.display();
	    	 pw.println(S1.getd());
	     }
	     if(S3.getnum()!=0) {
	    	 S3.display();
	    	 pw.println(S3.getd());
	     }
	     if(S4.getnum()!=0) {
	    	 S4.display();
	    	 pw.println(S4.getd());
	     }
	     if(S5.getnum()!=0) {
	    	 S5.display();
	    	 pw.println(S5.getd());
	     }
	     if(S6.getnum()!=0) {
	    	 S6.display();
	    	 pw.println(S6.getd());
	     }
	     for(int j=0;j<4;j++) {
	    	 if(arr[j]!=null) {
	    		 arr[j].display();
	    		 pw.println(arr[j].getd());
	    	 }
	     }
	     if(flag!=0) {
	    	 set.diplay();
	    	 pw.println(set.getd());
	     }
	     Date date=new Date();
	     String week=GetDate.getWeek(date);
	     if(week.equals("星期六")||week.equalsIgnoreCase("星期日")) {
	    	 price*=0.88;
	    	 pw.println("周末         0.88折");
	     }
	     
	     System.out.println("应付:"+String.format("%.2f", price) +"请输入支付方式:1.使用优惠券 2.直接付款");
	     choice=in.nextInt();
	     if(choice==1) {
	    	 System.out.println("请选择使用的优惠卷:1.¥3.3元无门槛 2.满20-5");
	    	 choice=in.nextInt();
	    	 if(choice==1) {
	    		 price-=3.3;
	    	 }
	    	 else {
	    		 if(price<20) {
	    			 System.out.println("未达到用券门槛,error");
	    		 }
	    	 }
	     }
	     System.out.println("请输入您给的金额");
	     choice=in.nextInt();
	     System.out.println("实付:"+choice+"元"+"找零:"+String.format("%.2f", (price-choice)));
	     System.out.println("—————————————————————————————————————————————");
         System.out.println("总价格                                                             ¥ "+String.format("%.2f", price));
         pw.println("应付:"+String.format("%.2f", price)+"元   ");
         pw.println("实付:"+choice+"元   "+"找零:"+String.format("%.2f", (choice-price)));
         pw.println("总价格                                                             ¥ "+String.format("%.2f", price));
         pw.flush();
         try {
         fw.flush();
         pw.close();
         fw.close();
         } 
         catch (IOException e) {
         e.printStackTrace();
         }
         
         
     }
    
}

package kfc;

public class Coffee implements Drinks{
	   private double price=8.0;
       private int num=0;
	   public void display() {
		   	System.out.println("热咖啡        *"+num+"            "+price+"/份");
	   }
	   public void numplus() {
		   num++;
	   }
	   public double getprice() {
		   return price;
	   }
	   public int getnum() {
		   return num;
	   }
	   public String getd() {
		   String xixi =new String();
		   xixi="热咖啡        *"+num+"            "+price+"/份";
		   return  xixi;
	   }
}

package kfc;

public class Cola implements Drinks{
	   private double price=6.0;
       private int num=0;
	   public void display() {
		   	System.out.println("可口可乐     *"+num+"            "+price+"/份");
	   }
	   public void numplus() {
		   num++;
	   }
	   public double getprice() {
		   return price;
	   }
	   public int getnum() {
		   return num;
	   }
	   public String getd() {
		   String xixi =new String();
		   xixi="可口可乐     *"+num+"            "+price+"/份";
		   return  xixi;
	   }
}

package kfc;

public class CornSalad implements Snack{
private double price=4.0;
private int num=0;
public void display() {
	System.out.println("玉米沙拉     *"+num+"            "+price+"/份");
}
public void numplus() {
    num++;
}
public double getprice() {
	   return price;
}
public int getnum() {
	   return num;
}
public String getd() {
	   String xixi =new String();
	   xixi="玉米沙拉     *"+num+"            "+price+"/份";
	   return  xixi;
}
}

package kfc;

public class CornSaladFactory implements SnackFactory{
public Snack productSnack() {
	return new CornSalad();
}
}
package kfc;

public class CrispyMeatString implements Snack{
private double price=3.0;
private int num=0;
public void display() {
	System.out.println("骨肉相连     *"+num+"            "+price+"/份");
}
public void numplus() {
	num++;
}
public double getprice() {
	   return price;
}
public int getnum() {
	   return num;
}
public String getd() {
	   String xixi =new String();
	   xixi="骨肉相连     *"+num+"            "+price+"/份";
	   return  xixi;
}
}

package kfc;

public class CrispyMeatStringFactory  implements SnackFactory {
    public Snack productSnack() {
    	return new CrispyMeatString();
    }
}

package kfc;

public class DrinkFactory {
	  private int choice;
	  DrinkFactory(int t){
		  choice =t;
	  }
	  DrinkFactory(){
		  choice=0;
	  }
	  public void fun(int i) {
		  choice=i;
	  }
      public Drinks make() {
    	    if(choice==1) {
    		  return new Cola();
    	    }
    	    else if(choice==2){
    	    	return new Coffee();
    	    }
    	    else if(choice==3) {
    	    	return new TeaMilk();
    	    }
    	    else if(choice==4){
    	    	return new Milk();
    	    }
    	    else {
    	    	return null;
    	    }
    	  
      }
}

package kfc;

public interface Drinks {
	public void display();
	public void numplus();
	public double getprice();
    public int getnum() ;
    public String getd();
}

package kfc;

public class FrenchFries implements Snack{
private double price=8.0;
private int num=0;
public void display() {
	System.out.println("薯条            *"+num+"            "+price+"/份");
}
public void numplus() {
	num++;
}
public double getprice() {
	   return price;
}
public int getnum() {
	   return num;
}
public String getd() {
	   String xixi =new String();
	   xixi="薯条            *"+num+"            "+price+"/份";
	   return  xixi;
}
}

package kfc;

public class FrenchFriesFactory implements SnackFactory{
	public Snack productSnack() {
		return new FrenchFries();
	}
}

package kfc;
import java.text.SimpleDateFormat;
import java.util.*;

public class GetDate {
	public static String getWeek(Date date){
		SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
		String week = sdf.format(date);
		return week;
		}
}

package kfc;

public interface Hamburger {
   public void display();
   public void numplus();
   public double getprice();
   public int getnum() ;
   public String getd();
}

package kfc;

public interface HamburgerFactory {
	public Hamburger productHamburger();
}

package kfc;

public class HotWing implements Snack{
private double price=7.5;
private int num=0;
public void display() {
	System.out.println("香辣鸡翅     *"+num+"            "+price+"/份");
}
public void numplus() {
	num++;
}
public double getprice() {
	   return price;
}
public int getnum() {
	   return num;
}
public String getd() {
	   String xixi =new String();
	   xixi="香辣鸡翅     *"+num+"            "+price+"/份";
	   return  xixi;
}
}

package kfc;

public class HotWingFactory implements SnackFactory{
          public Snack  productSnack() {
        	  return new HotWing();
          }
}

package kfc;

public class Milk implements Drinks{
	   private double price=7.0;
       private int num=0;
	   public void display() {
		   	System.out.println("热牛奶        *"+num+"            "+price+"/份");
	   }
	   public void numplus() {
		   num++;
	   }
	   public double getprice() {
		   return price;
	   }
	   public int getnum() {
		   return num;
	   }
	   public String getd() {
		   String xixi =new String();
		   xixi="热牛奶        *"+num+"            "+price+"/份";
		   return  xixi;
	    }
}

package kfc;

public class 	PopcornChicken implements Snack{
private double price=7.5;
private int num=0;
public void display() {
	System.out.println("鸡米花         *"+num+"            "+price+"/份");
}
public void numplus() {
	num++;
}
public double getprice() {
	   return price;
}
public int getnum() {
	   return num;
}
public String getd() {
	   String xixi =new String();
	   xixi="鸡米花         *"+num+"            "+price+"/份";
	   return  xixi;
}
}

package kfc;

public class PopcornChickenFactory implements SnackFactory{
    public Snack productSnack() {
    	return new PopcornChicken();
    }
}

package kfc;

public class SetMeal {
		private double price=46.6;
		private int num=0;
		
		public void diplay() {
			System.out.println("情侣套餐     *"+num+"            "+price+"/份");
		}
		public void numplus() {
			num++;
		}
		public double getprice() {
			   return price;
		}
		public int getnum() {
			   return num;
		}
		public String getd() {
			   String xixi =new String();
			   xixi="情侣套餐     *"+num+"            "+price+"/份";
			   return  xixi;
		}
}

package kfc;

public interface Snack {
	   public void display();
	   public void numplus();
	   public double getprice();
	   public int getnum();
	   public String getd();
}

package kfc;

public interface SnackFactory {
    public Snack productSnack();
}
	
package kfc;

public class TaroDiguaPills  implements Snack{
	private double price=5.0;
    private int num=0;
    public void display() {
  	  System.out.println("香芋地瓜丸  *"+num+"            "+price+"/份");
    }
    public void numplus() {
  	  num++;
    }
    public double getprice() {
 	   return price;
    }
    public int getnum() {
 	   return num;
    }
    public String getd() {
		   String xixi =new String();
		   xixi="香芋地瓜丸  *"+num+"            "+price+"/份";
		   return  xixi;
	}
}

package kfc;

public class TaroDiguaPillsFactory implements SnackFactory{
   public Snack productSnack() {
	   return new TaroDiguaPills();
   }
}

package kfc;

public class TeaMilk implements Drinks{
	   private double price=7.0;
       private int num=0;
	   public void display() {
		   	System.out.println("热奶茶        *"+num+"            "+price+"/份");
	   }
	   public void numplus() {
		   num++;
	   }
	   public double getprice() {
		   return price;
	   }
	   public int getnum() {
		   return num;
	   }
	   public String getd() {
		   String xixi =new String();
		   xixi="热奶茶        *"+num+"            "+price+"/份";
		   return  xixi;
	}
}

package kfc;

public class WholeShrimpBurger implements Hamburger{
            private double price=12.0;
            int num=0;
            public void display() {
            	System.out.println("至尊鲜虾堡  *"+num+"            "+price+"/份");
            }
            public void numplus() {
         	   num++;
            }
            public double getprice() {
         	   return price;
            }
            public int getnum() {
         	   return num;
            }
            public String getd() {
     		   String xixi =new String();
     		   xixi="至尊鲜虾堡  *"+num+"            "+price+"/份";
     		   return  xixi;
     	}
}

package kfc;

public class WholeShrimpBurgerFactory implements HamburgerFactory{
	public Hamburger productHamburger() {
		return new WholeShrimpBurger();
	}
}

	package kfc;

public class  ZingerBurger implements Hamburger{
      private double price=9.5;
      int num=0;
      public void display() {
    	  System.out.println("香辣鸡腿堡  *"+num+"            "+price+"/份");
      }
      public void numplus() {
   	   num++;
      }
      public double getprice() {
   	   return price;
      }
      public int getnum() {
   	   return num;
      }
      public String getd() {
		   String xixi =new String();
		   xixi="香辣鸡腿堡  *"+num+"            "+price+"/份";
		   return  xixi;
	}
}

package kfc;

public class ZingerBurgerFactory implements HamburgerFactory{
	public Hamburger productHamburger() {
		return new ZingerBurger();
	}
}

发布了19 篇原创文章 · 获赞 3 · 访问量 3674

猜你喜欢

转载自blog.csdn.net/ASingleWolf/article/details/90112341