JAVA实现KFC的收银系统

一、题目名称:肯德基快餐店的收银系统
二、题目内容:
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
基本要求:
1.程序设计风格良好,控制台界面友好,最多两人一组完成任务。
2.实现功能测试代码,确保程序的健壮性。
画出使用的设计模式图。
三、模式设计:
1.抽象工厂模式:
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。我主要是参照上课时抽象工厂模式的那个家电例子和KFC的食品类似,所以选择的抽象工厂模式。
2.KFC打折的模式适合用策略模式去做,设计模式如下:
JAVA实现KFC的收银系统
四、程序实现:

(1)首先实现的是KFC的食品部分
JAVA实现KFC的收银系统
IFood 是抽象事物类的接口,用来实现事物的资料打印。AbstractBaseFood是所有事物的基类,定义了食物的属性:名字、价格、数量。其他的就是具体的事食物类。
(2)下面实现的是KFC的食品部分
JAVA实现KFC的收银系统里边是个工厂的接口和一个具体的工厂类,里边实现了工厂生产食物。
(3)客户类的实现
JAVA实现KFC的收银系统(4)策略模式实现的打折
JAVA实现KFC的收银系统(5)实现具体的店铺进行食品售卖
JAVA实现KFC的收银系统
六、运行结果

JAVA实现KFC的收银系统
七、心得体会:
1.刚开始写代码的时候参照那个家电的例子写的很困难,然后在网上找到了一个一个类似的文章,仿照着完成了KFC食品和工厂部分代码的撰写,没有出现什么大的问题,
2.这次编程最大的收获就是亲自编写了具有两种设计模式的程序,发现程序的设计真的没有那么简单,亲身体会了设计模式的编写过程,学会了设计模式在程序中的应用,特别是策略者模式的应用。

参考地址:https://blog.****.net/qq_44703629/article/details/90116485