在这里插入代码片
```package domain;
1.KFC
package domain;public class KFC {private String name;private int price;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}
}
2.可乐
package domain;public class Beverage extends KFC {private String name = "可乐";private int price=10;public String getName() {return name;}public int getPrice() {return price;}
}
3.鸡翅\汉堡包\薯条\套餐一\套餐二   类同上面4.收银系统
package domain;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;public class Collect {private ArrayList<KFC> aa;private int money;private int yhq = 0;public Collect() {}public void setKfc(ArrayList<KFC> aa) {this.aa = aa;}public void setYhq(int yhq) {this.yhq = yhq;}public void setMoney(int money) {this.money = money;}public float judge() throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date start = sdf.parse("2018-10-27 00:00:00");Date end = sdf.parse("2018-10-28 15:00:00");Date day=new Date(); float i = 0;float sum = 0;for (KFC kfc : aa) {if(day.equals(start)|| day.after(start) && day.equals(end) || day.before(end)){sum =(float) ((sum+ kfc.getPrice())*0.8);}else{sum += kfc.getPrice();}}if (sum >= 100) {if (yhq == 50) {i = money - sum + 20;} else if (yhq == 100) {i = money - sum + 30;} else {i = money - sum;}} else if (sum >= 50) {if (yhq == 50) {i = money - sum + 20;} else {i = money - sum;}}else {i = money - sum;}System.out.println("找零" + i + "元");return i;}public void print() {System.out.println("本次消费如下:");int sum = 0;StringBuffer s = new StringBuffer();for (KFC kfc : aa) {sum += kfc.getPrice();if (aa.indexOf(kfc) != aa.size() - 1) {s.append(kfc.getName() + "---------" + kfc.getPrice() + "\r\n");} else {s.append(kfc.getName() + "---------" + kfc.getPrice());}}System.out.println(s);System.out.println("共消费" + sum + "元");if (sum >= 50) {System.out.println("***您使用了优惠券满50减20***" + "\r\n");} else if (sum >= 100) {System.out.println("***您使用了优惠券满100减30***" + "\r\n");} else {System.out.println("***    没有使用优惠券       ***" + "\r\n");}}public void printXiaopiao() throws IOException, ParseException {Date day=new Date();    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); BufferedWriter br = new BufferedWriter(new FileWriter("xiaopiao.txt"));br.write("=========================" + "\r\n");br.write("-------------------------" + "\r\n");br.write("*******欢迎光临KFC*******" + "\r\n");br.write("**"+df.format(day)+"**"+"\r\n"); br.write("*******本次消费如下******" + "\r\n");int sum = 0;for (KFC kfc : aa) {sum += kfc.getPrice();if (aa.indexOf(kfc) != aa.size() - 1) {br.write("***" + kfc.getName() + "-----------" + kfc.getPrice() + "***" + "\r\n");} else {br.write("***" + kfc.getName() + "-----------" + kfc.getPrice() + "***" + "\r\n");}}br.write("***消费" + "-----------" + sum + "元" + "***" + "\r\n");br.write("***支付" + "-----------" + money + "元" + "***" + "\r\n");if (sum >= 50) {br.write("***您使用了优惠券满50减20***" + "\r\n");} else if (sum >= 100) {br.write("***您使用了优惠券满100减30***" + "\r\n");} else {br.write("***    没有使用优惠券       ***" + "\r\n");}br.write("***找零" + "-----------" + judge() + "元" + "***" + "\r\n");br.write("=========================" + "\r\n");br.newLine();br.flush();br.close();}
}
5.方法调用
package domain;import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Scanner;public class DOS {private ArrayList<KFC> aa = new ArrayList();private int yhq = 0;public DOS() throws IOException, ParseException{zhuJieMain();}public void zhuJieMain() throws IOException, ParseException{System.out.println("==============================");System.out.println("------------------------------");System.out.println("*****    欢迎来到肯德基      *****");System.out.println("*****     1.点餐                  *****");System.out.println("*****     2.领取优惠券       *****");System.out.println("*****     3.结账                  *****");System.out.println("------------------------------");System.out.println("==============================");System.out.println("请选择:");show();}public void show() throws IOException, ParseException{Scanner sc = new Scanner(System.in);int x = sc.nextInt();if(x==1){diancan();}else if(x==2){youhuiquan();}else if(x==3){jieZhang();}else{System.out.println("输入错误");}}public void diancan() throws IOException, ParseException{System.out.println("本店退出以下产品:");System.out.println("1.汉堡:15/个       2.鸡翅:15/个");System.out.println("3.薯条:10/个       4.可乐:10/个");System.out.println("5.套餐1:汉堡+可乐+鸡翅:35/份");System.out.println("6.套餐2:汉堡+可乐+薯条:30/份");System.out.println("请选择:");Scanner sc = new Scanner(System.in);int x = sc.nextInt();xuanze(x);}private void xuanze(int x) throws IOException, ParseException {KFC a = null;Scanner sc = new Scanner(System.in);while (true) {if (x == 1) {a = Factory.creat("汉堡包");} else if(x==2){a = Factory.creat("鸡翅");}else if (x == 3) {a = Factory.creat("薯条");}else if (x == 4) {a = Factory.creat("可乐");}else if (x == 5) {a = Factory.creat("套餐1");} else if (x == 6) {a = Factory.creat("套餐2");} else {System.out.println("没有该套餐");}aa.add(a);System.out.println("继续y,结账x,主界面n");String s = sc.next();if (s.equals("N")||s.equals("n")){zhuJieMain();break;}else if(s.equals("Y")||s.equals("y")){diancan();break;}else if (s.equals("X")||s.equals("x")){jieZhang();break;}}}public void youhuiquan() throws IOException, ParseException{System.out.println("============================");System.out.println("----------------------------");System.out.println("*********1.满50减20*********");System.out.println("*********2.满100减30********");System.out.println("============================");Scanner sc = new Scanner(System.in);System.out.println("请选择:");int x = sc.nextInt();if(x==1){yhq=50;}else if(x==2){yhq=100;}else{System.out.println("没有该操作");}System.out.println("领取优惠券"+yhq+"元成功");System.out.println("返回Y");String s = sc.next();if (s.equals("Y")||s.equals("y")){zhuJieMain();}else{System.out.println("你还不想结账?");}}public void jieZhang() throws IOException, ParseException{Scanner sc = new Scanner(System.in);Collect c = new Collect();c.setKfc(aa);c.setYhq(yhq);c.print();System.out.println("请付款:");int x1 = sc.nextInt();c.setMoney(x1);c.printXiaopiao();}
}
6.测试类
package Demo;import java.io.IOException;
import java.text.ParseException;import domain.DOS;public class demo {public static void main(String[]args) throws IOException, ParseException{DOS a= new DOS();}
}
欢迎指点.....

KFC简单工厂模式实现相关推荐

  1. 设计模式之简单工厂模式

    一.概述 工厂模式具体包括了简单工厂.工厂方法.抽象工厂,它们是按照从简单到复杂的顺序排列的,属于设计模式中的创建型,其中简单工厂并不属于GOF的23中模式.   但是它是理解其它的工厂模式的一个很好 ...

  2. 设计模式 之美 -- 简单工厂模式

    文章目录 1. 解决问题 2. 应用场景 3. 实现 C++实现: C语言实现 4. 缺点 1. 解决问题 举例如下: 我们实现一个卖衣服的功能,衣服的种类有很多:帽子,裤子,T恤... 每卖一种衣服 ...

  3. 设计模式之简单工厂模式(Simply Factory)摘录

    从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种 ...

  4. Java中的简单工厂模式(转)

    Java中的简单工厂模式 举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人 话说:"天地开辟,未有人民,女娲抟土为人."女娲需要用土造出一个个的人,但在女娲造出人之前, ...

  5. 《JAVA与模式》之简单工厂模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式.简单工厂模式是由一个工厂 ...

  6. 简单工厂模式(StaticFactoryMethod)

    来华北电力大学数理系LSGO软件技术团队学习Coding,我通常第一个就讲"简单工厂模式",这一讲不仅仅是讲模式,更主要的是让大家体会什么是软件系统的"可复用" ...

  7. 设计模式之工厂类模式总结对比、简单工厂模式、工厂方法模式、抽象工厂模式、带反射的工厂模式、例子代码分析、最详细

    1. 题目 假设某公司同时用SqlServer.MySql数据库,即会切换两数据库(不同数据库的sql语句有些许差异),同时,两数据库里均有对Users.Departments表的操作(sql代码不一 ...

  8. java工厂模式 uml_简单工厂模式的UML类图与源码实现(转) | 学步园

    简单工厂模式的UML图 源码:Operation类 Java代码 packageOperation; publicabstractclassOperation { doublenumberA=0; d ...

  9. 设计模式(0)简单工厂模式

    0 设计模式基础 0.0 设计模式的定义 先来看一下设计模式常见的书面定义: 设计模式是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他 ...

最新文章

  1. html数据分析表格api_Python数据分析基本库——Matplotlib(一)
  2. Bug反思:减少笔误
  3. 解决vue项目在ie浏览器中不显示的问题
  4. 双linux共用swap,在Linux和FreeBSD系统上共享swap空间
  5. 2018-2019-2 网络对抗技术 20165320 Exp2 后门原理与实践
  6. 基坑监测日报模板_深基坑又出事,广西工地 10m深 基坑坍塌,4名钢筋工被埋,3人遇难!...
  7. hihoCoder-1038- 01背包(dp)
  8. 活的通透的人,会是一个什么样的人?
  9. java连接redis集群
  10. IE6的3像素神奇bug:缘起与解决方案
  11. oracle 查询default,oracle分区表检查--是否带有max或default分区
  12. JQuery文档信息
  13. HTML实用的网页代码大全
  14. iOS不完美越狱手机doubleH3lix无法打开解决方法
  15. 机器学习(8): 逻辑回归算法 小结及实验
  16. 办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL
  17. iptable的安全设置
  18. 什么是数据库的存储过程?
  19. 将win7笔记本电脑变身WiFi热点,让手机、笔记本共享上网
  20. Android拉起拼多多

热门文章

  1. SCAU 课程设计 教务信息管理系统
  2. 都说日本留学穷人不要来,说说我在日本打工留学的真实感受|大学生日本留学|大学生留学日本|日本留学生网站|日本留学一年费用是多少钱
  3. 记忆力游戏(C#版)
  4. 如何在手机上登陆学校邮箱
  5. 如何加声调口诀_一年级-拼音声调标注口诀
  6. [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  7. css中如何使一段文字居中的同时超出换行的部分不居中
  8. crm2011下载报表
  9. 挂科一门就被退学!国科大考试就是这么刺激!亲眼所见大神6 个小时弄懂 600 多页的书!...
  10. 线性代数---行列式计算技巧篇