肯德基点餐

一、题目要求

请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
基本要求:
程序设计风格良好,控制台界面友好,最多两人一组完成任务。
实现功能测试代码,确保程序的健壮性。
画出使用的设计模式图。
提高要求:
实现可视化界面(使用MFC)。
实现会员储值卡功能,完成储值卡消费。
实现当天营业额和餐品销量计算和统计,用数据库记录。

二、程序分析

1.程序结构
在这里插入图片描述

2.当程序刚运行时,可以出现一张模拟肯德基的菜单的图片
在这里插入图片描述

3.定义KFC菜单的接口
在这里插入图片描述

4.KFC菜单的接口的实现类
在这里插入图片描述

5.在FoodOrder类中,通过传入的数字,得到相应的食物

在这里插入图片描述

6.在FoodMoney类中,通过传入的数字,得到相应食物的价格
在这里插入图片描述

7.Today类来记录——某一天,有多少销售额,有多少销售量

8.创建属性为天数、销售额、销售量的数据库表

在这里插入图片描述
9.Dao层
在这里插入图片描述

10.Dao的实现类
在这里插入图片描述

11.mapper映射文件
在这里插入图片描述

12.mybatis映射文件
在这里插入图片描述

13.MyTest类向数据库写入天数、销售额、销售量
在这里插入图片描述

14 . 最后,模拟小票功能,将内容保存至文件
在这里插入图片描述

三、UML图

KFCOrder实现了IKFCOder接口
在这里插入图片描述

Picture类继承Jframe类
在这里插入图片描述

Applettext类实现ActionListener类,继承Applet类
在这里插入图片描述

四、测试

用Junit4测试,数据存入数据库
在这里插入图片描述
在这里插入图片描述

用Junit4测试KFCOrder对IKFCOder接口的实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对显示当前时间代码的测试

在这里插入图片描述

五、运行结果

肯德基菜单,首先,以图片的形式显示菜单

在这里插入图片描述
选用优惠产品时

在这里插入图片描述
将计算出来今日订单数与营业额写入数据库中
today代表第几天营业
count代表订单数
money代表营业额

在这里插入图片描述

结果写入文件

在这里插入图片描述

选用简约套餐时

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将计算出来今日订单数与营业额写入数据库中
today代表第几天营业
count代表订单数
money代表营业额

在这里插入图片描述

结果写入文件

在这里插入图片描述

六、总结

  • 遇到的问题及解决

开始写程序时,只想将销售量与营业额写入数据库,count设置为主码,若连续两天的销售量时相同的,则不能写入数据库,因为主码不能重复,为了实现将销售量与营业额写入数据库,则修改以定义好的表,加入一个属性today,设为主码。
在这里插入图片描述
在这里插入图片描述

  • 学习使用java中的Applet(小应用程序)显示图片。

1.Applet的编写
新建一个类,该类必须是public且继承Applet,文件名与类名一样

3.Applet类中方法的执行顺序与生命周期
① 先执行构造方法
② 再执行init()进行一些数据,变量初始化
③ 再执行start()方法,start()方法会调用paint()方法进行图形的绘制与显示。一般重写paint()方法即可。

  • 对SSM框架中Mybatis框架的练习

SSM框架中的mybatis框架,可以通过程序,对数据库进行增删改查。mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

// 加载主配置文件

InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");

// 创建SqlSessionFactory对象

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession();

// 相关操作
sqlSession.insert("insert",today);
sqlSession.commit();
  • 对github的使用

在这次作业中,第一次使用了github仓库来保存代码。在CSDN中学习了github的使用,这个是我学习的网址:https://blog.csdn.net/zuochao_2013/article/details/75948989

七、源代码

github仓库:https://github.com/Andyadore/kfc#kfc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值