KFC点餐系统
一、题目要求
1.同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
2.正常餐品结算和找零。
3.基本套餐结算和找零。
4.使用优惠劵购买餐品结算和找零。
5.可在一定时间段参与店内活动(自行设计或参考官网信息)。
6.模拟打印小票的功能(写到文件中)。
基本要求:
7.程序设计风格良好,控制台界面友好,最多两人一组完成任务。
8.实现功能测试代码,确保程序的健壮性。
9.画出使用的设计模式图。
提高要求:
10.实现可视化界面(使用MFC)。
11.实现会员储值卡功能,完成储值卡消费。
12.实现当天营业额和餐品销量计算和统计,用数据库记录。
二、题目分析及设计
1.题目分析
第一部分
业务流程图:
类的结构:
每个食物应当有的属性:食物名字,价格,以及点餐数量,故设计一个抽象食物类AbstractFood与之对应。点餐时,需要控制台输出点餐信息。如果写在抽象食物类中,继承后又得不断的重写。所以设计了Food接口,用于提供打印消息的接口。由此,基本食物的抽象建立已经完成。通过继承AbstractFood类和实现Food接口,得到四类基本食物的抽象类:(1)Chickenleg(2)Drink(3)Chickenwings(4)Frenchfries。通过实现此四种抽象食物,得到四种基本食物。有了食物单品后,就能够进行点餐的设计,点单品的操作通过工厂方法KFCFactory实现,即为工厂方法。套餐使用了产品族,可以设计为一个抽象工厂。程序设计的过程中只涉及了两个工厂:1.ComboFactoryA ,2.ComboFactoryB。通过具体的工厂HD和FD来完成具体套餐的实现。选择单品和套餐的设计由策略类完成。StrategyItem类里边的algorithm为选择单品的算法。StrategyCombo类里边的algorithm算法为选择套餐的算法。
第二部分(可视化界面)(注:本次采用java中的GUI编程):
(1)首先进入KFC官网了解产品的相关信息,并从官网获取(部分)食物的图片资料。
&#