KFC点餐(设计模式)

本文档介绍了如何使用设计模式(如工厂模式、策略模式等)来模拟肯德基快餐店的收银系统。系统涵盖了正常餐品、基本套餐、优惠券购买及店内活动等功能,并实现了打印小票至文件的模拟。文章还强调了程序设计风格、控制台交互体验以及程序健壮性的要求,并提供了类图以展示设计模式的应用。
摘要由CSDN通过智能技术生成

一、作业说明
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
基本要求:
1.程序设计风格良好,控制台界面友好,最多两人一组完成任务。
2.实现功能测试代码,确保程序的健壮性。
3.画出使用的设计模式图。
二、代码实现

1.Client.java
package kfc;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class Client {
	 private String s[] =new String[6];
	 private KFCfactory factory_1;
	    //构造方法将抽象工厂传入
	    public Client(KFCfactory factory_1){
	        this.factory_1 = factory_1;
	        }
	    public void showbill() throws IOException{
	   	 BufferedWriter r=new BufferedWriter(new FileWriter("show.txt",true));
	   	 r.write("---------------------账单如下---------------------");
	   	 r.newLine();
	   	 for(int i=0;i<5;i++){
	   	 r.write(s[i]);
	   	 r.newLine();
	   	 r.flush();
	   	// r.close();
	   	 }
	   	 }
	    public double orderHamburgers(int num,int kind) throws IOException
	    {    	
	    	//获得不同种类的汉堡        
	    	Hamburger hamburger = factory_1.createHamburger(num, kind);        
	    	//输出订购信息        
	    	System.out.println(hamburger.printMesage());  
	    	 s[0]=hamburger.printMesage();
	    	 System.out.print("\n");
	    	//返回总价        
	    	return hamburger.totalPrice();   
	    	}
	    public double orderFrenchFries(int num,int kind){    	
	    	       
	    	FrenchFries frenchfries = factory_1.createFrenchFries(num, kind);        
	    	//输出订购信息        
	    	System.out.println(frenchfries.printMesage());   
	    	s[1]=frenchfries.printMesage();
	    	System.out.println("\n");
	    	//返回总价        
	    	return frenchfries.totalPrice();   
	    	}
	    public double orderDrink(int num,int kind){    	
 	       
	    	Drink drink = factory_1.createDrink(num, kind);        
	    	//输出订购信息        
	    	System.out.print(drink.printMesage());
	    	s[2]=drink.printMesage();
	    	System.out.println("\n");
	    	//返回总价        
	    	return drink.totalPrice();   
	    	}
	    public double orderDessert(int num,int kind)
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值