一.问题描述
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
基本要求:
1.程序设计风格良好,控制台界面友好。
2.实现功能测试代码,确保程序的健壮性。
3.画出使用的设计模式图。
二.类图
三.代码
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 {
//打印输出食物信息
String printMessage();
}
3.Factory
public interface Factory {
public interface factory{
//生产汉堡
public Hamburger createHamburger(int num);
//生产鸡肉类食物
public Chicken createChicken(int num);
//生产甜点
public Dessert createDessert(int num);
//生产饮品
public Drinks createDrinks(int num);
}
public Hamburger createZingerBurger(int num);
public Hamburger createBeefBurger(int num);
public Hamburger createOrleansBurger(int num);
public Hamburger createShrimpBurger(int num);
public Chicken createDrumStick(int num);
public Chicken createChickenWings(int num);
public Chicken createPopcornChicken(int num);
public Dessert createChips(int num);
public Dessert createEggTart(int num);
public Dessert createSundae(int num);
public Drinks createMilky(int num);
public Drinks createKola(int num);
public Drinks createCoffee(int num);
public Combo createOneCombo(int num);
public Combo createTwoCombo(int num);
public Combo createThreeCombo(int num);
}
4.KFCFactory
//具体工厂
public class KFCFactory implements Factory {
//生产香辣鸡腿堡
public ZingerBurger createZingerBurger(int num){
return new ZingerBurger(num);
}
//生产超级牛肉堡
public BeefBurger createBeefBurger(int num){
return new BeefBurger(num);
}
//生产奥尔良烤鸡腿堡
public OrleansBurger createOrleansBurger(int num){
return new OrleansBurger(num);
}
//生产全虾堡
public ShrimpBurger createShrimpBurger(int num){
return new ShrimpBurger(num);
}
//生产奥尔良鸡翅
public ChickenWings createChickenWings(int num){
return new ChickenWings(num);
}
//生产烤鸡腿
public DrumStick createDrumStick(int num){
return new DrumStick(num);
}
//生产鸡米花
public PopcornChicken createPopcornChicken(int num){
return new PopcornChicken(num);
}
//生产薯条
public Chips createChips(int num){
return new Chips(num);
}
//生产蛋挞
public EggTart createEggTart(int num){
return n