kfc扫描点餐系统java_Java实现KFC点餐系统过程解析

这篇文章主要为大家详细介绍了java实现KFC点餐系统,模拟肯德基快餐店的收银系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

1.正常餐品结算和找零。

2.基本套餐结算和找零。

3.使用优惠劵购买餐品结算和找零。

4.可在一定时间段参与店内活动(自行设计或参考官网信息)。

5.模拟打印小票的功能(写到文件中)。

类图:

31791b4ab739c7f1c5b29409470627f2.png

建立IFood接口实现各类食物信息的打印:

public interface IFood {

/**

* 打印输出食物信息

* @return

*/

String printMesage();

}

抽象类AbstractBaseFood

public class AbstractBaseFood {

// 类别

protected String kind;

// 数量

protected int num;

// 价格

protected float price;

//找零

// 合计

public float totalPrice()

{

return this.num * this.price;

}

}

各类果汁的基类Baverage:

public abstract class Beverage extends AbstractBaseFood implements IFood

{

public String printMesage()

{

return ("--" + this.kind + "饮料,\t单价:" + this.price + ",\t数量:" + this.num + ",\t合计:" + this.totalPrice());

}

}

建立Baverage的具体实现类ChinaBaverage:

public class ChinaBeverage extends Beverage

{

public ChinaBeverage(int num)

{

this.kind = "可乐";

this.price = 6.0f;

this.num = num;

}

}

以此类推分别建立 ChickenWing,FrenchFries,Hamburg抽象类和它们的实现类ChinaChickenWing,FrenchFries,Hamburg

建立抽象工厂IKfcFactory:

public interface IKfcFactory

{

// 生产汉堡

public ChinaHamburg createHamburg(int num);

// 生产薯条

public xtx.FrenchFries createFrenchFries(int num);

// 生产鸡翅

public ChinaChickenWings createChickenWings(int num);

// 生产饮料

public ChinaBeverage createBeverage(int num);

}

建立IKfcFactory的实现类ChinaFactory:

public class ChinaKfcFactory implements IKfcFactory

{

// 生产可乐

public ChinaBeverage createBeverage(int num)

{

return new ChinaBeverage(num);

}

// 生产奥尔良烤鸡翅

public ChinaChickenWings createChickenWings(int num)

{

return new ChinaChickenWings(num);

}

// 生产薯条

public ChinaFrenchFries createFrenchFries(int num)

{

return new ChinaFrenchFries(num);

}

// 生产麻辣风味鸡腿汉堡

public ChinaHamburg createHamburg(int num)

{

return new ChinaHamburg(num);

}

}

建立Customer类实现食物的选择和文件存储:

package xtx.factory.custom;

import java.io.BufferedWriter;

import java.io.FileWriter;

import java.io.IOException;

import xtx.ChinaBeverage;

import xtx.ChinaChickenWings;

import xtx.ChinaFrenchFries;

import xtx.IKfcFactory;

import xtx.ChinaHamburg;

public class Customer

{

// 抽象工厂

private IKfcFactory kfcFactory;

// 构造方法将抽象工厂作为参数传入

public Customer(IKfcFactory kfcFactory2)

{

this.kfcFactory = kfcFactory2;

}

/**

* 订购食物

* @throws IOException

*/

private String s[] =new String[5];

public void showbill() throws IOException{

BufferedWriter bw=new BufferedWriter(new FileWriter("D://workspace2Eclipse//xtx//src//xtx//factory//custom//show.txt",true));

bw.write("---------------------账单如下---------------------");

bw.newLine();

for(int i=0;i<5;i++){

bw.write(s[i]);

bw.newLine();

bw.flush();

}

}

// 订购麻辣鸡腿汉堡

public float orderHamburg(int num) throws IOException

{

// 获得麻辣鸡腿汉堡

ChinaHamburg hamburg = kfcFactory.createHamburg(num);

// 输出订购信息

System.out.print(hamburg.printMesage());

s[0]=hamburg.printMesage();

System.out.print("\n");

// 返回总价

return hamburg.totalPrice();

}

// 订购奥尔良烤鸡翅

public float orderChickenWings(int num)

{

// 获得奥尔良烤鸡翅

ChinaChickenWings chickenWings = kfcFactory.createChickenWings(num);

// 输出订购信息

System.out.print(chickenWings.printMesage());

s[1]=chickenWings.printMesage();

System.out.print("\n");

// 返回总价

return chickenWings.totalPrice();

}

// 订购薯条

public float orderFrenchFries(int num)

{

// 获得薯条

ChinaFrenchFries frenchFries = (ChinaFrenchFries) ((IKfcFactory) kfcFactory).createFrenchFries(num);

// 输出订购信息

System.out.print(frenchFries.printMesage());

s[2]=frenchFries.printMesage();

System.out.print("\n");

// 返回总价

return frenchFries.totalPrice();

}

// 订购可乐

public float orderBeverage(int num)

{

// 获得可乐

ChinaBeverage beverage = kfcFactory.createBeverage(num);

// 输出订购信息

System.out.print(beverage.printMesage());

s[3]=beverage.printMesage();

System.out.print("\n");

return beverage.totalPrice();

}

//订购套餐一

public float ordercombo1(int num)

{

// 获得可乐

ChinaBeverage beverage = kfcFactory.createBeverage(num);

// 获得麻辣鸡腿汉堡

ChinaHamburg hamburg = kfcFactory.createHamburg(num);

s[4]=("--套餐一,\t单价:21,\t数量:"+num+"\t\t合计:"+(beverage.totalPrice()+hamburg.totalPrice())+"\n");

System.out.print("--套餐一,\t单价:21,\t数量:"+num+"\t\t合计:"+(beverage.totalPrice()+hamburg.totalPrice())+"\n");

return beverage.totalPrice()+hamburg.totalPrice();

}

}

MainApp:

package xtx.factory.itf;

import java.io.BufferedWriter;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Scanner;

import xtx.IKfcFactory;

import xtx.factory.custom.Customer;

public class MainApp

{

/**

* 主应用程序方法

*

* @param args

* @throws IOException

*/

public static void main(String[] args) throws IOException

{

/**

* 定义一个肯德基(IKfcFactory类型)

*/

IKfcFactory kfcFactory = (IKfcFactory) new ChinaKfcFactory();

Customer customer = new Customer(kfcFactory);

/**

* 开始点餐

*/

// 一个麻辣鸡腿汉堡

Scanner in =new Scanner(System.in);

//System.out.print("请输入付款金额");

System.out.print("-----现有如下产品-----\n");

System.out.print("--麻辣风味汉堡\t单价:15.0.\n--奥尔良风味鸡翅\t单价:3.0\n--普通风味薯条\t单价:8.0\n--可乐饮料\t单价:6.0\n--套餐一(麻辣风味汉堡+可乐饮料)\t单价:21\n");

System.out.print("\n-----------------------");

System.out.print("\n请点餐:\n");

System.out.print("请输入麻辣风味汉堡数量---:");

int a1=in.nextInt();

System.out.print("请输入奥尔良风味鸡翅数量-:");

int a2=in.nextInt();

System.out.print("普通入风味薯条数量------:");

int a3=in.nextInt();

System.out.print("请输入可乐饮料数量------:");

int a4=in.nextInt();

System.out.print("请输入套餐份数---------:");

int a5=in.nextInt();

System.out.print("\n------账单如下-----\n");

float hamhurgMoney = customer.orderHamburg(a1);

// 四个奥尔良烤鸡翅

float chickenWingsMoney = customer.orderChickenWings(a2);

// 一包薯条

float frenchFriesMoney = customer.orderFrenchFries(a3);

// 两杯可乐

float beverageMoney = customer.orderBeverage(a4);

float combo1=customer.ordercombo1(a5);

//

float sum=hamhurgMoney + chickenWingsMoney + frenchFriesMoney + beverageMoney+combo1;

customer.showbill();

System.out.println("总计:" + (sum));

System.out.print("请输入付款金额:");

int a=in.nextInt();

System.out.print("找零:"+(a-sum));

customer.showbill();

BufferedWriter bw=new BufferedWriter(new FileWriter("D://workspace2Eclipse//xtx//src//xtx//factory//custom//show.txt",true));

bw.write("总计: "+sum);

bw.newLine();

bw.write("付款:"+a);

bw.newLine();

float y=a-sum;

bw.write("找零:"+y);

bw.newLine();

bw.flush();

bw.close();

}

}

运行结果展示:

cf3714ca420636919df9a1b4f3f9b067.png

文件存储:

45c143e6b91344976b0179e7c62b4d8a.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

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

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

相关文章

python爬取ajax动态内容肯德基门店,Python爬虫如何爬取KFC地址

随着人们生活水平的提高&#xff0c;肯德基这类的快餐消费的十分火爆&#xff0c;成为小朋友和年轻人的最爱&#xff0c;我们到一个地方想要找到肯德基店面&#xff0c;会根据导航获取肯德基地址&#xff0c;那你知道我们也可以使用python爬虫获取KFC地址吗&#xff1f;我们可以…

爬虫爬取国内肯德基门店信息

预期效果 爬取每个城市&#xff08;300城市&#xff09;所有的肯德基门店信息&#xff0c;保存到excel中&#xff0c;效果如下&#xff1a; 代码实现 import requests import csv import jsondef getData(page,key):urlhttp://www.kfc.com.cn/kfccda/ashx/GetStoreList.as…

python爬取肯德基KFC全国门店2021-01-11

python爬取肯德基KFC全国门店 改进版 之前&#xff0c;参考两位网友的代码&#xff0c;爬取全国KFC门店&#xff0c;发现有些许问题。在参考网友代码的基础上&#xff0c;进行改进&#xff0c;最终爬取了全国KFC门店。 思路如下&#xff1a; 第一步&#xff1a;通过KFC门网页…

html网页肯德基设计代码作业,AI快速制作一幅肯德基广告单页教程

这篇AI教程向脚本之家上的朋友介绍AI快速制作一幅肯德基广告单页方法&#xff0c;教程以实例的形式向我们介绍广告单页的制作方法&#xff0c;很实用&#xff0c;也比较简单&#xff0c;喜欢的朋友快来学习一下吧&#xff01; 首先来看一下最终效果图&#xff1a; 本幅广告页面…

KFC点餐系统

一&#xff1a;要求 同学们应该都去麦当劳或肯德基吃过快餐吧&#xff1f;请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统&#xff0c;合理使用C/python/Java,结合设计模式&#xff08;2种以上&#xff09;至少实现系统的以下功能&#xff1a; 1.正常餐品结算和找零…

KFC门店信息获取 爬虫实战

最近在帮客户做东西时需要用到kfc的门店信息查询数据,在浏览了一圈博客之后,貌似大家都是采用 selenium PhantomJS 这种方式抓取kfc的ajax动态网页, 其实在分析了一波该网站的请求之后,相对来说还是很简单的一个爬虫,该网站甚至没有做浏览器的验证 url http://www.kfc.…

KFC点餐收银

一、问题描述 参考肯德基官网的信息模拟肯德基快餐店的收银系统&#xff0c;合理使用C或Java或Python结合设计模式&#xff08;2种以上&#xff09;至少实现系统的以下功能&#xff1a; 1.正常餐品结算和找零。 2.基本套餐结算和找零。 3.使用优惠劵购买餐品结算和找零。 4.可在…

肯德基收银系统

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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