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开发有了更深入的了解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29161.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

肯德基收银系统

肯德基收银系统 一.题目分析 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C或Java或Python结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结…

肯德基 服务器响应异常,肯德基链接服务器异常

肯德基链接服务器异常 内容精选 换一换 精简视图提供了云服务器资源概况和状态的可视化统计结果,帮助您直观的了解云服务器资源。在精简视图中,您可以快速获取弹性云服务器基本信息、登录信息、配置信息、监控信息。精简视图提供了云服务器资源概况和状态的可视化统计结果,直…

如何在手机上完成日语翻译中文

如何在手机上完成日语翻译中文?作为从小看《海贼王》、《名侦探柯南》、《火影忍者》等一系列日漫长大的我们,自然有一种想要学习日语的冲动。但是学习一种语言不是一朝一夕就能完成的,虽然小编不能让你瞬间学会日语,但是有一种让…

如何将日语在线翻译成中文

如何将日语在线翻译成中文?日本的动漫产业非常发达,作为从小看日漫长大的我们,谁都想学习几句日语或者将我们的口头禅翻译为日语。所以今天小编将要教大家一个方法,帮助小伙伴们快速将日语在线翻译为中文,小伙伴们要不…

以下工具能够翻译日语文字

随着全球化的发展,商务交流越来越频繁,很多企业需要进行日语翻译服务以便更好地沟通和合作;在日本旅游,游客需要与当地人交流并了解当地文化,而日语翻译可以帮助游客更好地跨越语言障碍;学术研究需要涉及到…

日语翻译中文-大家都再用的日语转换中文的转换器

日语翻译中文,今天给大家分享一款英免费翻译软件,我们为什么要选择这款好用的翻译软件,因为汇集了世界最好的几个翻译平台(百度/谷歌/有道),第一点翻译质量高,选择性多。第二点支持各种语言互译…

如何跟聊天机器人一起绘画?

出品人:Towhee 技术团队 顾梦佳 从AI作画背后的 Diffusion 到智能聊天里的 ChatGPT,生成模型的热潮一浪接着一浪,似乎也预示着超大预训练模型就是人工智能的未来。在万众瞩目的 GPT 4.0 “官宣”之前,微软率先发布融合了大语言模型…

科研绘图(编程绘图、网站绘图、配色、素材、提取数...)

配色网站:https://mycolor.space/ 素材网站:https://www.freepik.com/ python:seaborn库:https://zhuanlan.zhihu.com/p/81553421?utm_sourcewechat_session matlab:绘图代码示例:知乎:阿昆的科…

汤姆猫+AI求IP“翻红”?股东年内忙减持

作为初代手机宠物陪伴游戏,“会说话的汤姆猫”曾在全球积累了大量粉丝,汤姆猫IP也成为一代经典。2017年,A股上市公司金科文化将诞生自海外“汤姆猫”收入麾下。你或许不知道,汤姆猫已成为中国A股市场的一只股票代码。 在金科文化…

ChatGPT 驱动的《会聊天的汤姆猫》封测结束,采用生成式 AI 创作美术

金科汤姆猫公司的《会说话的汤姆猫》此前利用 ChatGPT 技术全新打造了《会聊天的汤姆猫》,从技术创新和产品升级的角度来看,这是一次具有积极意义的尝试。但产品功能有所欠缺,且只有安卓平台可用,于 3 月开启封测。 据金科汤姆猫…

Nginx 代理Nexus 页面静态元素(图片)404!

日常踩坑记录。 如果你也遇到了可以尝试修改下看能否改善你的问题。 nginx 旧配置 # Nexus maven 私有仓库location /nexus {proxy_pass http://192.168.128.168:89/nexus;} 访问页面 虽然不影响使用,但是logo 小图标你都不显示,看着不舒服。解决它 …

chatgpt赋能python:Python常见错误及解决方法

Python常见错误及解决方法 Python作为一种非常流行的动态语言,拥有着丰富的库和工具,因其易读性和高效性,被广泛的用于Web开发、数据分析、科学计算等领域。但是,在我们编写Python程序的过程中,也难免会遇到各种各样的…

社区供稿 | 中文 LangChain 项目的实现开源工作

Chinese-LangChain 是 yanqiangmiffy 同学的开源项目https://hf.co/spaces/ChallengeHub/Chinese-LangChainhttps://github.com/yanqiangmiffy/Chinese-LangChain 中文 langchain 项目,基于 ChatGLM-6b langchain 实现本地化知识库检索与智能答案生成。 LangChain …

我们是怎么把1天变成了72小时的?普惠AGIUI开源项目

(想看重播的读者可以翻到文章底部~) 不知大家有没有想过如何把一天24小时的时间变长?还有如何知道自己下一步应该做什么? 现在这些都可以基于大语言模型LLM来帮我们实现(模拟仿真)了,LLM具备推理…

chatgpt赋能python:Python如何创建角色

Python如何创建角色 在游戏开发中,创建角色是非常重要的一个环节,也是游戏设计的重要一环。Python作为一种广泛使用的编程语言,可以用于快速且高效地创建角色。 1. 创建角色的基本思路 创建角色的主要思路是定义角色的属性,包括…

【好用的办公软件】万彩办公大师教程丨标准安装版/绿色免安装版/离线版区别

万彩办公大师标准安装版:下载后,解压,双击安装包,需要像安装普通软件那样,一步步的安装; 万彩办公大师绿色免安装版:下载完,解压,不需要安装,直接双击图中文件…

【电脑常用办公软件】万彩办公大师教程丨全能视频转换工具

关于万彩办公大师的全能视频转换工具 全能视频转换工具兼容Windows操作系统,实现多种视频格式间的流畅转换。支持批量转换视频到其他格式;支持多种输出视频格式,自定义质量和大小,最大程度上满足其想要在不同播放设备上播放视频的…

【免费思维导图软件】万彩脑图大师教程 | 导出导入思维导图模板

在万彩脑图大师中, 你可以轻松导出导入思维导图模板进行保存或编辑,具体操作步骤如下: 一、导出模板 1)单击左上角的“文件“—点击“保存成模板“—输入标题,关键字以及进行高级模板设置—保存 【图1▲】 2&#…

【免费思维导图软件】万彩脑图大师教程 | 贯穿思维导图演示过程的背景音乐设置

添加背景音乐可以赋予思维导图画面感和节奏感,渲染特定氛围,调动观众情绪,使之全身心投入参与到演示之中。您可以在“选项”窗口中为思维导图添加和设置背景音乐。 添加设置背景音乐的具体操作步骤如下: 1. 添加背景音乐 “选项…

【免费办公软件】万彩办公大师教程丨文件批量解压工具

万彩办公大师里的批量解压工具,可批量解压RAR与ZIP格式的压缩文件 。支持拖放导入压缩文件,两种解压方式可选:解压到当前目录和解压到当前子目录。 一、运行文件批量解压工具 通过万彩办公大师,选择“更多办公小工具”——“文件处…