肯德基点餐系统

一.题目要求:
请参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
基本要求:
1.程序设计风格良好,控制台界面友好,最多两人一组完成任务。
2.实现功能测试代码,确保程序的健壮性。
3.画出使用的设计模式图。
二.模式分析:
抽象工厂方法模式分析:
肯德基实体店:生产产品的工厂;各种食物:工厂生产的产品;职员:负责点餐;用户:购买食物。
抽象工厂:工厂方法的核心,定义生产各类食物的方法
具体工厂:实现抽象工厂接口的具体工厂,实现每一类食物的具体食品
抽象食物:产品对象共同拥有的接口,创建一个食物接口
食物父类:实现了抽象产品角色所定义的接口,抽象类,定义食物的种类,数量和价格
食物子类:继承食物父类,重写printMessage()方法
具体食物:继承各个食物子类,定义种类,价格和数量
顾客:点餐,将抽象工厂作为职员类的一个实例变量,需要任何食物,只需向工厂请求
工厂方法模式分析:
在抽象工厂模式中,定义了一个抽象接口,之后具体工厂又通过实现抽象工厂的各种接口方法创建实例对象,在抽象工厂模式中使用了工厂方法模式的实现方式。

三.类图设计:
在这里插入图片描述

四.调试、运行结果:
调试:
在这里插入图片描述

运行结果:
1.使用会员卡打折:
在这里插入图片描述
在这里插入图片描述

存储到文件中:
在这里插入图片描述

2.没有会员卡:
在这里插入图片描述

存储到文件中:
在这里插入图片描述

五.总结归纳:
在本次作业完成中,更加深入的了解了工厂方法模式和抽象工厂模式的用法,以及对Java语言的编程有了进一步的掌握。
工厂方法使用场景:
①当一个类不知道它所需要的对象的类时
在工厂方法模式中,客户端不需要知道具体产品类的类名,只需要知道所对应的工厂即可;
②当一个类希望通过其子类来指定创建对象时
在工厂方法模式中,对于抽象工厂类只需要提供一个创建产品的接口,而由其子类来确定具体要创建的对象,利用面向对象的多态性和里氏代换原则,在程序运行时,子类对象将覆盖父类对象,从而使得系统更容易扩展。
③将创建对象的任务委托给多个工厂子类中的某一个,客户端在使用时可以无须关心是哪一个工厂子类创建产品子类,需要时再动态指定,可将具体工厂类的类名存储在配置文件或数据库中。
抽象工厂模式使用场合:
①当需要创建产品家族,或者需要想让创建的产品集合起来时使用。

②当系列产品不固定,在以后可能会增加整个系列产品时使用。

这次设计的模拟肯德基点餐系统的代码,可以实现正常餐品的结算和找零,基本套餐结算和找零,会员打折购买餐品结算和找零以及模拟打印小票的功能,但没有实现可视化界面,当初学VC的时候就没有掌握,后期会自学,进行可视化设计。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿哈哈~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值