KFC点餐收银

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

二、题目分析
由于不太会java的awt或swing,所以我使用的是java web来做界面显示;然后使用Tomcat服务器和MySQL的数据库。餐品的数据存入数据库,优惠券以优惠码的形式也存进数据库;支付有两种方式,一种是使用现金,一种是使用会员卡,会员卡自带优惠,会员卡的金额也存放在数据库中。

三、具体设计
1.数据库设计
KFC数据库包含三张表:food表、vipuser表、cheapcode表
(1)food表用来存储餐品数据:餐品名称、餐品价格、餐品储量;
在这里插入图片描述
(2)vipuser表用来存储VIP用户名、VIP用户账户、账户余额;在这里插入图片描述
(3)cheapcode表用来存放优惠码和优惠码所对应的折扣;
在这里插入图片描述
2.设计模式
(1)单例模式:
由于服务器要频繁操作数据库,而数据库的连接只要建立一次就可以了,我使用DBUtil类来进行数据库连接,DBUtil类不需要进行频繁创建,所以把DBUtil的构造器私有,使其只要一个对象;
在这里插入图片描述(2)MVC设计模式
在这里插入图片描述
四、调试与运行结果
出现的问题:
在这里插入图片描述
调试:在这里插入图片描述
运行结果
(1)主界面
在这里插入图片描述
(2)活动界面
在这里插入图片描述
(3)点餐界面
在这里插入图片描述
(4)支付界面
在这里插入图片描述
(5)订单完成界面
在这里插入图片描述
(6)小票
在这里插入图片描述
总计
通过这次作业,我感受到了设计模式的重要性;尽管在使用中由于不熟悉设计模式而导致使用起来还是有点吃力,但当我真正把设计模式运用到自己的代码中去的时候,我真切的感受到了设计模式的好处。原来我写代码,常常是想到哪就写哪,所以代码的结构和可扩展性非常差,所以在调试的时候很吃力。但在使用了设计模式之后,我只要结合具体的问题按照模式来写,代码结构十分明晰;而且也方便调试,为后面进行功能的扩展也十分方便。这次作业我,重点是用来两种设计模式:
单例模式:
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。
单例的特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。
MVC设计模式:
MVC其实不是设计模式,是一个比设计模式更大一点的模式,应该说MVC它是一种软件开发架构模式,它包含了很多的设计模式,最为密切是以下三种:Observer (观察者模式), Composite(组合模式)和Strategy(策略模式)。所以说MVC模式又称复合模式。MVC(Model-View-Controller) 模式的基本思想是数据,显示和处理相分离。模型(Model)负责数据管理,视图(View)负责数据显示,控制器(Controller)负责业务逻辑和响应策略。
MVC把数据处理,程序输入输出控制及数据显示分离开来,并且描述了不同部件的对象间的通信方式。使得软件可维护性,可扩展性,灵活性以及封装性大大提高;MVC(Model-View-Controller)把系统的组成分解为M(模型)、 V(视图)、C(控制器)三种部件。视图表示数据在屏幕上的显示。控制器提供处理过程控制,它在模型和视图之间起连接作用。控制器本身不输出任何信息和做任何处理,它只负责把用户的请求转成针对Model的操作,和调用相应的视图来显示Model处理后的数据。同样的数据,可以有不同的显示和进行各种处理。显示仅仅是表现数据,而处理是根据用户请求改变数据的过程,不但包含业务逻辑,也要提供响应策略。响应策略由控制器负责,视图可以使用不同的控制器提供不同的响应方式,这是策略(Strategy)模式的应用。此外,MVC还允许视图嵌套,通过使用组合(Composite)模式,一致地处理组合视图和普通视图。用多个视图表现一个模型,在视图不变的情况下改变响应策略,允许视图嵌套,这是MVC的三个主要特性。在内部结构上,MVC的主要关系是由观察者模式,策略模式和组合模式给出的。由观察者模式确定的模型视图关系是其中最为重要的
通过这次作业,也让我对java Web开发有了更深入的了解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值