java实现:模拟KFC收银系统

请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。

主食接口

public interface principalfood {
 int price(int num);
}
//鸡排饭
class jipaifan implements principalfood{
 public int price(int num){
  int price=15;
  return price*num;
 }
}
//孜然饭
class ziranfan implements principalfood{
 public int price(int num){
  int price=13;
  return price*num;
 }
}
//小米粥
class xiaomizhou implements principalfood{
 public int price(int num){
  int price=8;
  return price*num;
 }
}
//黑米粥
class heimizhou implements principalfood{
 public int price(int num){
  int price=8;
  return price*num;
 }
}
class principalfoodfactory{
 principalfood produceprincipalfood(int n){
  if(n==1)
   return new jipaifan();
  else if(n==2)
   return new ziranfan();
  else if(n==3)
   return new xiaomizhou();
  else if(n==4)
   return new heimizhou();
  else
   return null;
  
 }
}

其他接口类比主食接口,就不都贴上去了,直接进入主类
上菜单(按照自己的食品接口制作)

public static void menu() {
  System.out.println("————————————————————菜单——————————————————————");
  System.out.println("                                              ");
  System.out.println("————————————————————主食——————————————————————");
  System.out.println("1.鸡排饭----------------------------------15元");
  System.out.println("2.孜然饭----------------------------------13元");
  System.out.println("3.小米粥----------------------------------8元");
  System.out.println("4.黑米粥----------------------------------8元");
  System.out.println("——————————————————————————————————————————————");
  System.out.println("————————————————————汉堡——————————————————————");
  System.out.println("5.香辣汉堡--------------------------------10元");
  System.out.println("6.牛肉汉堡--------------------------------9元");
  System.out.println("7.鱼肉汉堡--------------------------------8元");
  System.out.println("——————————————————————————————————————————————");
  System.out.println("————————————————————小吃——————————————————————");
  System.out.println("8.薯条------------------------------------8元");
  System.out.println("9.鸡翅------------------------------------12元");
  System.out.println("10.鸡腿-----------------------------------10元");
  System.out.println("——————————————————————————————————————————————");
  System.out.println("————————————————————饮料——————————————————————");
  System.out.println("11.可乐-----------------------------------6元");
  System.out.println("12.橙汁-----------------------------------8元");
  System.out.println("13.奶茶-----------------------------------10元");
  System.out.println("14.咖啡-----------------------------------10元");
  System.out.println("——————————————————————————————————————————————");
  System.out.println("————————————————————套餐——————————————————————");
  System.out.println("15.套餐A(香辣汉堡+薯条+可乐)------------------------20元");
  System.out.println("16.套餐B(孜然饭+鸡腿+橙汁)---------------------------25元");
  System.out.println("17.套餐C(鸡排饭+小米粥+薯条)------------------------25元");
  System.out.println("——————————————————————————————————————————————");
 }

主函数

public static void main(String arg[]) {
  String st="";//空字符串记录产品清单
  int sumprice=0;//总价
  int yingfu=sumprice;//应付金额
  int zhaoling=0;//找零
  int n;//商品号
  int num;//商品数量
  principalfood pf;
  hamburger h;
  snack s;
  drink d;
  taocan t;
  principalfoodfactory pff=new principalfoodfactory();
  hamburgerfactory hf=new hamburgerfactory();
  snackfactory sf=new snackfactory();
  drinkfactory df=new drinkfactory();
  taocanfactory tf=new taocanfactory();
  menu();
  while(true) {
   System.out.print("请选择要购买的产品");
   Scanner in=new Scanner(System.in);
   n=in.nextInt();
   switch(n) {
   case 1:System.out.print("请选择要购买的数量"); 
          num=in.nextInt();pf=pff.produceprincipalfood(n);sumprice=sumprice+pf.price(num);
          st=st+"鸡排饭,数量:"+num+",价格:"+pf.price(num)+"\r\n";break;
   case 2:System.out.print("请选择要购买的数量");
          num=in.nextInt();pf=pff.produceprincipalfood(n);sumprice=sumprice+pf.price(num);
          st=st+"孜然饭,数量:"+num+",价格:"+pf.price(num)+"\r\n";break;
   case 3:System.out.print("请选择要购买的数量");
          num=in.nextInt();pf=pff.produceprincipalfood(n);sumprice=sumprice+pf.price(num);
          st=st+"小米粥,数量:"+num+",价格:"+pf.price(num)+"\r\n";break;
   case 4:System.out.print("请选择要购买的数量");
          num=in.nextInt();pf=pff.produceprincipalfood(n);sumprice=sumprice+pf.price(num);
          st=st+"黑米粥,数量:"+num+",价格:"+pf.price(num)+"\r\n";break;
   case 5:System.out.print("请选择要购买的数量");
          num=in.nextInt();h=hf.producehamburger(n);sumprice=sumprice+h.price(num);
          st=st+"香辣汉堡,数量:"+num+",价格:"+h.price(num)+"\r\n";break;
   case 6:System.out.print("请选择要购买的数量");
          num=in.nextInt();h=hf.producehamburger(n);sumprice=sumprice+h.price(num);
          st=st+"牛肉汉堡,数量:"+num+",价格:"+h.price(num)+"\r\n";break;
   case 7:System.out.print("请选择要购买的数量");
          num=in.nextInt();h=hf.producehamburger(n);sumprice=sumprice+h.price(num);
          st=st+"鱼肉汉堡,数量:"+num+",价格:"+h.price(num)+"\r\n";break;
   case 8:System.out.print("请选择要购买的数量");
          num=in.nextInt();s=sf.producesnack(n);sumprice=sumprice+s.price(num);
          st=st+"薯条,数量:"+num+",价格:"+s.price(num)+"\r\n";break;
   case 9:System.out.print("请选择要购买的数量");
          num=in.nextInt();s=sf.producesnack(n);sumprice=sumprice+s.price(num);
          st=st+"鸡翅,数量:"+num+",价格:"+s.price(num)+"\r\n";break;
   case 10:System.out.print("请选择要购买的数量");
           num=in.nextInt();s=sf.producesnack(n);sumprice=sumprice+s.price(num);
           st=st+"鸡腿,数量:"+num+",价格:"+s.price(num)+"\r\n";break;
   case 11:System.out.print("请选择要购买的数量");
           num=in.nextInt();d=df.producedrink(n);sumprice=sumprice+d.price(num);
           st=st+"可乐,数量:"+num+",价格:"+d.price(num)+"\r\n";break;
   case 12:System.out.print("请选择要购买的数量");
           num=in.nextInt();d=df.producedrink(n);sumprice=sumprice+d.price(num);
           st=st+"橙汁,数量:"+num+",价格:"+d.price(num)+"\r\n";break;
   case 13:System.out.print("请选择要购买的数量");
           num=in.nextInt();d=df.producedrink(n);sumprice=sumprice+d.price(num);
           st=st+"奶茶,数量:"+num+",价格:"+d.price(num)+"\r\n";break;
   case 14:System.out.print("请选择要购买的数量");
           num=in.nextInt();d=df.producedrink(n);sumprice=sumprice+d.price(num);
           st=st+"咖啡,数量:"+num+",价格:"+d.price(num)+"\r\n";break;
   case 15:System.out.print("请选择要购买的数量");
           num=in.nextInt();t=tf.producetaocan(n);sumprice=sumprice+t.price(num);
           st=st+"套餐A(香辣汉堡+薯条+可乐),数量:"+num+",价格:"+t.price(num)+"\r\n";break;
   case 16:System.out.print("请选择要购买的数量");
           num=in.nextInt();t=tf.producetaocan(n);sumprice=sumprice+t.price(num);
           st=st+"套餐B(孜然饭+鸡腿+橙汁),数量:"+num+",价格:"+t.price(num)+"\r\n";break;
   case 17:System.out.print("请选择要购买的数量");
           num=in.nextInt();t=tf.producetaocan(n);sumprice=sumprice+t.price(num);
           st=st+"套餐C(鸡排饭+小米粥+薯条),数量:"+num+",价格:"+t.price(num)+"\r\n";break;
   }
   System.out.print("是否要继续购买(1.是    2.否):");
   int s1=in.nextInt();
   if(s1==2)
    break; 
  }
  System.out.println("总价为:"+sumprice+"元");
  System.out.print("是否使用优惠券(1.是    2.否):");
  Scanner in=new Scanner(System.in);
  int s2=in.nextInt();
  if(s2==1)
   {System.out.print("请输入优惠券金额:");
   int s3=in.nextInt();
   yingfu=sumprice-s3;
   System.out.println("应付金额为:"+yingfu+"元");
   }
  else
   System.out.println("应付金额:"+yingfu+"元");
  System.out.print("实付金额:");
  int s4=in.nextInt();
  zhaoling=s4-yingfu;
  System.out.print("找零:"+zhaoling+"元");
  try {
  FileWriter out=new FileWriter("小票.txt");
  out.write("产品清单:"+"\r\n"+st);
  out.write("\r\n");
  out.write("总价:"+sumprice+"元");
  out.write("\r\n");
  out.write("应付金额:"+yingfu+"元");
  out.write("\r\n");
  out.write("实付金额:"+s4+"元");
  out.write("\r\n");
  out.write("找零:"+zhaoling+"元");
  out.write("\r\n");
  out.write("谢谢惠顾!");
  out.close();
  }catch(Exception e) {
   e.printStackTrace();
  } 
 }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值