KFC简易点餐系统作业

2023-10-07 19:30
文章标签 系统 作业 简易 点餐 kfc

本文主要是介绍KFC简易点餐系统作业,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

KFC点餐系统作业说明:
思路:用了两种设计模式,一种是工厂模式,一种是抽象工厂。
工厂模式:用来创建汉堡,饮料对象。
抽象工厂:用来创建套餐。
首先创建一个食物接口,再创建一个汉堡和饮料接口继承食物接口。
然后创建具体的汉堡类,和饮料类实例化接口。
运用工厂模式创建汉堡和饮料对象。
运行抽象工厂创建套餐对象。
将点餐记录在文件中,并打印。

类:
在这里插入图片描述

抽象工厂:
在这里插入图片描述

工厂模式:
在这里插入图片描述

运行结果:
在这里插入图片描述


public class Function {/*** @param args*/static double  Money(double money,int count){Date dNow = new Date();SimpleDateFormat ft = new SimpleDateFormat ("hh:mm");int datecount=10;try{Date dt1 = ft.parse("6:00");//将字符串转换为date类型  Date dt2 = ft.parse("10:00");  Date dt3=ft.parse(ft.format(dNow));if(dt3.getTime()>dt1.getTime()&&dt3.getTime()<dt2.getTime())datecount=8;}catch(Exception e){e.printStackTrace();}return money/10*count/10*datecount;}static void write(String str){try {   FileWriter fw = new FileWriter(new File("D:note.txt"),true);   fw.write(str);   fw.flush();   fw.close();    } catch (IOException e) {   e.printStackTrace();   }   }public static void main(String[] args) {double money=0;Date dNow = new Date();SimpleDateFormat ft = new SimpleDateFormat ("hh:mm");System.out.println("当前时间为: " + ft.format(dNow));Scanner scanner =new Scanner(System.in);System.out.println("请您选择单点或者套餐-----1.单点 2.套餐");int choose=scanner.nextInt();if(choose==1){System.out.println("-----------------------------------");System.out.println("        请输您要选择的餐品                  ");System.out.println("汉堡系列:1.田园鸡腿堡  ¥18  2.香辣鸡腿堡 ¥25");System.out.println("-----------------------------------");int foodchoose=scanner.nextInt();System.out.println("-----------------------------------");System.out.println("请问您要什么口味的汉堡");String burgertaste=scanner.next();System.out.println("-----------------------------------");System.out.println("         请选择您需要点的饮品          ");System.out.println("饮品系列:1.可乐         ¥10   2.咖啡    ¥15");int drinkchoose=scanner.nextInt();System.out.println("-----------------------------------");System.out.println("请问您要大杯中杯还是小杯");System.out.println("-----------------------------------");String drinktype=scanner.next();//foodchoose drinkchoose分别代表选择的汉堡和饮品//您点的餐品:switch(foodchoose){case 1:hamburgerfactory fac1=new PastoralChickenFactory();PastoralChicken pc=(PastoralChicken)fac1.factoryMethod(burgertaste);System.out.println(pc);write(pc.toString());money=money+18;break;case 2:hamburgerfactory fac2=new SpicyChickenFactory();SpicyChicken sc=(SpicyChicken)fac2.factoryMethod(burgertaste);System.out.println(sc);write(sc.toString());money=money+25;break;	default:System.out.println("没有此类餐品");}switch(drinkchoose){case 1:drinksfactory fac1=new ColaFactory();Cola cola=(Cola)fac1.factoryMethod(drinktype);System.out.println(cola);write(cola.toString());money=money+10;break;case 2:drinksfactory fac2=new CoffeeFactory();Coffee coffee=(Coffee)fac2.factoryMethod(drinktype);System.out.println(coffee);write(coffee.toString());money=money+15;break;	default:System.out.println("没有此类餐品");}System.out.println("请问您有几折卷");int count=scanner.nextInt();System.out.println("您本次一共消费"+Money(money, count));write("您本次一共消费"+Money(money, count));}else if(choose==2){System.out.println("-----------------------------------");System.out.println("       请选择您要点的套餐                    ");System.out.println("套餐A:田园鸡腿堡+可乐      价格:¥25");System.out.println("套餐B 香辣鸡腿堡+咖啡         价格:¥45");System.out.println("1.套餐A 2.套餐B");System.out.println("-----------------------------------");int choose2=scanner.nextInt();switch (choose2) {case 1:ConcreteFactoryA fa=new ConcreteFactoryA();hamburger ham=fa.hamburgerfactory();drink cl=fa.drinksfactory();System.out.println(ham);System.out.println(cl);write(ham.toString()+"        "+cl.toString());System.out.println("请问您有几折卷");int count1=scanner.nextInt();System.out.println("您本次一共消费"+Money(25, count1));write("您本次一共消费"+Money(25, count1));System.out.println("请输入您的付款金额");int pay1=scanner.nextInt();System.out.println("找零:"+(pay1-Money(25, count1)));write("找零:"+(pay1-Money(25, count1)));break;case 2:ConcreteFactoryB fa2=new ConcreteFactoryB();hamburger ham2=fa2.hamburgerfactory();drink cl2=fa2.drinksfactory();System.out.println(ham2);System.out.println(cl2);write(ham2.toString()+"        "+cl2.toString());System.out.println("请问您有几折卷");int count2=scanner.nextInt();System.out.println("您本次一共消费"+Money(35, count2));write("您本次一共消费"+Money(35, count2));System.out.println("请输入您的付款金额");int pay2=scanner.nextInt();System.out.println("找零:"+(pay2-Money(25, count2)));write("找零:"+(pay2-Money(25, count2)));break;}}}}

这篇关于KFC简易点餐系统作业的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/159953

相关文章

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

使用Python实现一个简易计算器的新手指南

《使用Python实现一个简易计算器的新手指南》计算器是编程入门的经典项目,它涵盖了变量、输入输出、条件判断等核心编程概念,通过这个小项目,可以快速掌握Python的基础语法,并为后续更复杂的项目打下... 目录准备工作基础概念解析分步实现计算器第一步:获取用户输入第二步:实现基本运算第三步:显示计算结果进

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高