KFC设计模式实现
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
基本要求:
1.程序设计风格良好,控制台界面友好,最多两人一组完成任务。
2.实现功能测试代码,确保程序的健壮性。
3.画出使用的设计模式图。
设计模式图如下,使用工厂方法模式
建立三个结构分别为Burger(汉堡),Snack(小吃),Drink(饮品),不同种类的汉堡,小吃,饮品都实现这三个结构,建立三种食物的工厂类。
Burger接口和实现它的类:
public interface Burger {
public int getPrice();
public String getName();
}
//芝士汉堡
class CheeseBurger implements Burger{
public int getPrice() {
// TODO Auto-generated method stub
return 15;
}
public String getName() {
return "芝士汉堡";
}
}
//鸡肉汉堡
class ChickenBurger implements Burger{
public int getPrice() {
// TODO Auto-generated method stub
return 18;
}
public String getName() {
return "鸡肉汉堡";
}
}
Snack接口和实现它的类:
public interface Snack {
public int getPrice();
public String getName();
}
//薯条
class Chips implements Snack{
@Override
public int getPrice() {
// TODO Auto-generated method stub
return 8;
}
public String getName() {
return "薯条";
}
}
//鸡翅
class ChickenWings implements Snack{
@Override
public int getPrice() {
// TODO Auto-generated method stub
return 10;
}
public String getName() {
return "鸡翅";
}
}
Drink接口和实现它的类:
public interface Drink {
public int getPrice();
public String getName();
}
//可乐
class Coke implements Drink{
@Override
public int getPrice() {
// TODO Auto-generated method stub
return 4;
}
public String getName() {
return "可乐";
}
}
//牛奶
class Milk implements Drink{
@Override
public int getPrice() {
// TODO Auto-generated method stub
return 6;
}
public String getName() {
return "牛奶";
}
}
汉堡工厂类实现代码:
public class BurgerFactory {
public static Burger createBurger(int type) {
Burger burger = null;
if (1==type) {
burger = new CheeseBurger();
System.out.println("芝士汉堡制作中");
}
else {
burger = new ChickenBurger();
System.out.println("鸡肉汉堡制作中");
}
return burger;
}
}
小吃工厂类代码:
public class SnackFactory {
public static Snack createSnack(int type) {
Snack snack = null;
if (1==type) {
snack = new Chips();
System.out.println("薯条制作中");
}else {
snack = new ChickenWings();
System.out.println("鸡翅制作中");
}
return snack;
}
}
饮品工厂类实现:
public class SnackFactory {
public static Snack createSnack(int type) {
Snack snack = null;
if (1==type) {
snack = new Chips();
System.out.println("薯条制作中");
}else {
snack = new ChickenWings();
System.out.println("鸡翅制作中");
}
return snack;
}
}
通过优惠券购买,计算收费信息:
public class Coupons {
public static int calculateMoney(int coupouType) {
return TotalPrice.totalPrice - coupouType;
}
public static void retMoney(int payMoney,int coupouType) {
System.out.println("你成功付款" + payMoney + "元");
System.out.println("找零" + (payMoney-calculateMoney(coupouType))+ "元");
System.out.println("欢迎下次光临!");
}
}
运行截图: