“肯德基点餐系统

编程入门 行业动态 更新时间:2024-10-09 14:23:48

“肯德<a href=https://www.elefans.com/category/jswz/34/1754044.html style=基点餐系统"/>

“肯德基点餐系统

题目:
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用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 ShrimpBurger extends Hamburger{public ShrimpBurger(int num) {this.kind = "全虾堡";this.price = 17f;this.num = num;}
}
/*** 奥尔良烤鸡腿堡* @author lenovo**/
public class OrleansBurger extends Hamburger{public OrleansBurger(int num) {this.kind = "奥尔良烤鸡腿堡";this.price = 17f;this.num = num;}
}
/*** 奥尔良烤翅* @author lenovo**/
public class ChickenWings extends Chicken{public ChickenWings(int num) {this.kind = "奥尔良烤翅";this.price = 6f;this.num = num;}
}
/*** 烤鸡腿* @author lenovo**/
public class DrumStick extends Chicken{public DrumStick(int num) {this.kind = "烤鸡腿";this.price = 12f;this.num = num;}
}
/*** 鸡米花* @author lenovo**/
public class PopcornChicken extends Chicken{public PopcornChicken(int num) {this.kind = "鸡米花";this.price = 11f;this.num = num;}
}
/*** 薯条* @author lenovo**/
public class Chips extends Dessert{public Chips(int num) {this.kind = "薯条";this.price = 8f;this.num = num;}
}
/*** 圣代* @author lenovo**/
public class Sundae extends Dessert{public Sundae(int num) {this.kind = "圣代";this.price = 6f;this.num = num;}
}
/*** 蛋挞* @author lenovo**/
public class EggTart extends Dessert{public EggTart(int num) {this.kind = "蛋挞";this.price = 4f;this.num = num;}
}
/*** 可乐* @author lenovo**/
public class Kola extends Drinks{public Kola(int num) {this.kind = "可乐";this.price = 6f;this.num = num;}
}
/*** 奶茶* @author lenovo**/
public class Milky extends Drinks{public Milky(int num) {this.kind = "奶茶";this.price = 6f;this.num = num;}
}
/*** 咖啡* @author lenovo**/
public class Coffee extends Drinks{public Coffee(int num) {this.kind = "咖啡";this.price = 12f;this.num = num;}
}
/*** 单人套餐* @author lenovo**/
public class OneCombo extends Combo{public OneCombo(int num) {this.kind = "单人套餐";this.price = 33f;this.num = num;}
}
/*** 双人套餐* @author lenovo**/
public class TwoCombo extends Combo{public TwoCombo(int num) {this.kind = "双人套餐";this.price = 54f;this.num = num;}
}
/*** 三人套餐* @author lenovo**/
public class ThreeCombo extends Combo{public ThreeCombo(int num) {this.kind = "三人套餐";this.price = 109f;this.num = num;}
}

5.抽象工厂

/*** 肯德基抽象工厂* @author lenovo**/
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 createChickenWings(int num);public Chicken createDrumStick(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);
}

6.具体工厂


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 new EggTart(num);}//生产圣代public Sundae createSundae(int num){return new Sundae(num);}//生产奶茶public Milky createMilky(int num){return new Milky(num);}//生产可乐public Kola createKola(int num){return new Kola(num);}//生产咖啡public Coffee createCoffee(int num){return new Coffee(num);}//生产单人套餐public OneCombo createOneCombo(int num){return new OneCombo(num);}//生产双人套餐public TwoCombo createTwoCombo(int num){return new TwoCombo(num);}//生产三人套餐public ThreeCombo createThreeCombo(int num){return new ThreeCombo(num);}
}

7:客户类

/*** 顾客类* @author lenovo**/
public class Customer {//抽象工厂private Factory factory;//构造方法将抽象工厂作为参数传入public Customer(Factory factory){this.factory = factory;}/*** 点餐*/public float orderZingerBurger(int num){//获得香辣鸡腿堡Hamburger zingerBurger = factory.createZingerBurger(num);//输出订购信息zingerBurger.printMessage();//返回总价return zingerBurger.totalPrice();}public float orderBeefBurger(int num){//获得超级牛肉堡Hamburger beefBurger = factory.createBeefBurger(num);//输出订购信息beefBurger.printMessage();//返回总价return beefBurger.totalPrice();}public float orderOrleansBurger(int num){//获得奥尔良烤鸡腿堡Hamburger orleansBurger = factory.createOrleansBurger(num);//输出订购信息orleansBurger.printMessage();//返回总价return orleansBurger.totalPrice();}public float orderShrimpBurger(int num){//获得全虾堡Hamburger shrimpBurger = factory.createShrimpBurger(num);//输出订购信息shrimpBurger.printMessage();//返回总价return shrimpBurger.totalPrice();}public float orderChickenWings(int num){//获得奥尔良烤翅Chicken chickenWings = factory.createChickenWings(num);//输出订购信息chickenWings.printMessage();//返回总价return chickenWings.totalPrice();}public float orderDrumStick(int num){//获得 烤鸡腿Chicken drumStick = factory.createDrumStick(num);//输出订购信息drumStick.printMessage();//返回总价return drumStick.totalPrice();}public float orderPopcornChicken(int num){//获得鸡米花Chicken popcornChicken = factory.createPopcornChicken(num);//输出订购信息popcornChicken.printMessage();//返回总价return popcornChicken.totalPrice();}public float orderChips(int num){//获得薯条Dessert chips = factory.createChips(num);//输出订购信息chips.printMessage();//返回总价return chips.totalPrice();}public float orderEggTart(int num){//获得蛋挞Dessert eggTart = factory.createEggTart(num);//输出订购信息eggTart.printMessage();//返回总价return eggTart.totalPrice();}public float orderSundae(int num){//获得圣代Dessert sundae = factory.createSundae(num);//输出订购信息sundae.printMessage();//返回总价return sundae.totalPrice();}public float orderMilky(int num){//获得奶茶Drinks milky = factory.createMilky(num);//输出订购信息milky.printMessage();//返回总价return milky.totalPrice();}public float orderKola(int num){//获得可乐Drinks kola = factory.createKola(num);//输出订购信息kola.printMessage();//返回总价return kola.totalPrice();}public float orderCoffee(int num){//获得咖啡Drinks coffee = factory.createCoffee(num);//输出订购信息coffee.printMessage();//返回总价return coffee.totalPrice();}public float orderOneCombo(int num) {//单人套餐Combo oneCombo = factory.createOneCombo(num);//输出订购信息oneCombo.printMessage();//返回总价return oneCombo.totalPrice();}public float orderTwoCombo(int num) {//双人套餐Combo twoCombo = factory.createTwoCombo(num);//输出订购信息twoCombo.printMessage();//返回总价return twoCombo.totalPrice();}public float orderThreeCombo(int num) {//三人套餐Combo threeCombo = factory.createThreeCombo(num);//输出订购信息threeCombo.printMessage();//返回总价return threeCombo.totalPrice();}}

8.测试类

import java.util.Scanner;public class Test {public static void main(String[] args) {/*** 定义一个肯德基(factory类型)*/Factory factory = new KFCFactory();/*** 创建客户*/Customer customer = new Customer(factory);/*** 客户点餐*/Scanner input =new Scanner(System.in);float ZingerBurger = 0;float OrleansBurger= 0;float BeefBurger= 0;float ShrimpBurger = 0;float ChickenWings= 0;float DrumStick = 0;float PopcornChicken = 0; float Chips= 0;float EggTart= 0;float Sundae = 0;float Kola= 0; float Milky= 0;float Coffee = 0;float OneCombo= 0;float TwoCombo= 0;float ThreeCombo = 0;System.out.println("欢迎进入今晚吃鸡汉堡店点餐系统!\n"+"******************大吉大利菜单******************\n"+"汉堡类:\n"+ "1.香辣鸡腿堡--15.0元                          2.奥尔良烤鸡腿堡--17.0元 \n"+ "3.超级牛肉堡--17.0元                          4.全虾堡--17.0元\n"+"鸡肉类:\n"+ "5.奥尔良烤翅--6.0元                             6.烤鸡腿--12.0元\n"+ "7.鸡米花--11.0元\n"+ "甜点类:\n"+ "8.薯条--8元                                              9.蛋挞--4元\n"+ "10.圣代--6元\n"+"饮品类:\n"+ "11.可乐--6元                                           12.奶茶--6元\n"+ "13.咖啡--12元\n"+"套餐类:\n"+"14.单人套餐--33元\n"+ "  1个香辣鸡腿堡+1个烤鸡腿+1包薯条+1杯可乐/奶茶(任点)\n"+"15.双人套餐:--54元\n"+ "  1个香辣鸡腿堡+1个奥尔良烤鸡腿堡/超级牛肉堡/全虾堡(任点)\n"+ "  1对奥尔良烤翅+2个蛋挞+2杯可乐/奶茶(任点)\n"+"16.三人套餐--109元\n"+ "  3个奥尔良烤鸡腿堡/超级牛肉堡/全虾堡(任点)\n"+ "  1对奥尔良烤翅+1个烤鸡腿+1包鸡米花\n"+ "  1包薯条+2杯圣代+2杯可乐/奶茶(任点)+1杯咖啡\n"+"*********************************************\n");while(true){System.out.println("请选择序号点餐");int a=input.nextInt();System.out.println("请选择数量");int b=input.nextInt();switch(a){case 1://香辣鸡腿堡ZingerBurger = customer.orderZingerBurger(b);break;case 2://奥尔良烤鸡腿堡OrleansBurger = customer.orderOrleansBurger(b);break;case 3://超级牛肉堡BeefBurger = customer.orderBeefBurger(b);break;case 4://全虾堡ShrimpBurger = customer.orderShrimpBurger(b);break;case 5:  //奥尔良烤鸡翅ChickenWings = customer.orderChickenWings(b);break;  case 6:  //烤鸡腿DrumStick = customer.orderDrumStick(b);break;case 7: //鸡米花PopcornChicken = customer.orderPopcornChicken(b);break;case 8: //薯条Chips = customer.orderChips(b);break;case 9: //蛋挞EggTart = customer.orderEggTart(b);break;case 10: //圣代Sundae = customer.orderSundae(b);break;case 11: //可乐Kola = customer.orderKola(b);break;case 12: //奶茶Milky = customer.orderMilky(b);break;case 13: //咖啡Coffee = customer.orderCoffee(b);break;case 14: //单人套餐OneCombo = customer.orderOneCombo(b);break;case 15: //双人套餐TwoCombo = customer.orderTwoCombo(b);break;case 16: //三人套餐ThreeCombo = customer.orderThreeCombo(b);break;}System.out.println("请选择是否继续点餐,1.是   2.否");int c=input.nextInt();if(c!=1){break;}}float money1=ZingerBurger+OrleansBurger+BeefBurger+ShrimpBurger;float money2=+ChickenWings+DrumStick+PopcornChicken;float money3=+Chips+EggTart+Sundae;float money4=Kola+Milky+Coffee;float money5=OneCombo+TwoCombo+ThreeCombo;float money=money1+money2+money3+money4+money5;System.out.println("此次点餐共计:"+money);System.out.println("请问您是否具有优惠券? 1.是   2.否");int c=input.nextInt();int d=0;if(c==1){System.out.println("请输入优惠券金额");d=input.nextInt();}System.out.println("请输入实付金额");int e=input.nextInt();float changes=e-money-d;System.out.println("找零:"+changes);System.out.println("欢迎下次点餐,祝您用餐愉快!");}}

调试及测试截屏:




此程序只实现了部分功能,还有待改进。

更多推荐

“肯德基点餐系统

本文发布于:2024-02-13 07:45:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757508.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:基点   系统   肯德

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!