“肯德基点餐系统-类图+java程序+调试测试截屏”-java

题目:
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品
结算和找零。
4.可在一定时间段参与店内活动。
5.模拟打印小票的功能(写到文件中)。
本题采用工厂方法模式抽象工厂模式
工厂方法模式:
核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。
抽象工厂模式:
客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。

类图如下:
在这里插入图片描述

在这里插入图片描述
java代码如下:
1.抽象食
物——AbstractFood

public abstract class AbstractFood {
	//类别
    protected String kind;
    //数量
    protected int num;
    //价格
    protected float price;

    //合计
    public float totalPrice(){
        return this.num * this.price;
    }
}

2.食物接口——Food


public interface Food {
	/**
     * 打印输出食物信息
     */
    void printMessage();
}

3.抽象基类:

/**
 * 汉堡类
 * @author lenovo
 *
 */
public abstract class Hamburger extends AbstractFood implements Food{
	 public void printMessage(){
	        System.out.println("--"+this.kind+"  单价:"+this.price+
	                "  数量:"+this.num+"  合计:"+this.totalPrice());
	    }
}

/**
 * 鸡肉类
 * @author lenovo
 *
 */
public abstract class Chicken extends AbstractFood implements Food{
	 public void printMessage(){
	        System.out.println("--"+this.kind+"  单价:"+this.price+
	                "  数量:"+this.num+"  合计:"+this.totalPrice());
	    }
}

/**
 * 甜点类
 * @author lenovo
 *
 */
public abstract class Dessert extends AbstractFood implements Food{
	 public void printMessage(){
	        System.out.println("--"+this.kind+"  单价:"+this.price+
	                "  数量:"+this.num+"  合计:"+this.totalPrice());
	    }
}

/**
 * 饮品类
 * @author lenovo
 *
 */
public abstract class Drinks extends AbstractFood implements Food{
	 public void printMessage(){
	        System.out.println("--"+this.kind+"  单价:"+this.price+
	                "  数量:"+this.num+"  合计:"+this.totalPrice());
	    }
}

/**
 * 套餐
 * @author lenovo
 *
 */
public abstract class Combo extends AbstractFood implements Food{
	 public void printMessage(){
	        System.out.println("--"+this.kind+"  单价:"+this.price+
	                "  数量:"+this.num+"  合计:"+this.totalPrice());
	    }
}

4.具体食物:

/**
 * 香辣鸡腿堡
 * @author lenovo
 *
 */
public class ZingerBurger extends Hamburger {
	public ZingerBurger(int num) {
        this.kind = "香辣鸡腿堡";
        this.price = 15f;
        this.num = num;
    }
}

/**
 * 超级牛肉堡
 * @author lenovo
 *
 */
public class BeefBurger extends Hamburger{
	public BeefBurger(int num) {
        this.kind = "超级牛肉堡";
        this.price = 17f;
        this.num = num;
    }
}

/**
 * 全虾堡
 * @author lenovo
 *
 */
public class Shrim
  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值