利用java模拟肯德基收银系统
一.题目分析
模拟肯德基收银系统
1.实现正常餐品结算和找零
2.实现基本套餐结算和找零
3.使用优惠卷购买商品结算和找零
4.在一定时间段参与店内活动
5.实现会员卡储值功能,完成存储消费
6.模拟打印小票功能
二.算法设计思路
由于肯德基店中各种汉堡、小吃等都属于食物,所以先创建一个抽象的食物类。食物类中有foodNmae,price,num等成员变量,再定义一个食物类的有参构造方法,用来给成员变量赋值。再定义totalPricr()方法来计算某一类食物的总价格,show()方法来输出所点食物的信息。然后再创建Hamburgers,Chips等类来继承Food()类
定义一个肯德基工厂的接口,接口中有4个抽象方法分别来返回四种食物类的的对象。再定义一个kendejiStore类来继承肯德基工厂这个接口,重写四种方法,根据传进来的参数,产生相应的foodName,price,num值,通过构造方法给该对象返回。
定义一个kendejiEmployyee类来实现肯德基收银系统的全部流程。此类中,有work()和SettleAccount()方法分别模拟点餐和付费俩个过程。
类图设计:
三.调试及测试截图
菜单显示
正常餐品结算与找零
套餐结算与找零
提供的付款方式
使用优惠卷购买商品结算和找零
1.当用户使用支付宝结账时会出现减免优惠
2.使用会员卡结账,打八折
首先会出现有无会员卡俩种情况
如果有会员卡
直接输入会员卡的卡号即可
无会员卡时,可以直接注册
在中午俩点到四点时,由于是淡季,所以所有商品打九五折
模拟打印小票
四.总结
进一步的体会到了设计模式的好处。在一开始的构思中,采用原来的思维,结果列出的思路框架杂乱无章。在使用工厂模式来设计该程序后。程序的框架看起来比较清晰,无论是自己还是其他人,都可以清晰明了的读懂程序,而且该设计模式也符合设计原则的开闭原则。