同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
package kfc;
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;
}
}
package kfc;
public class Factory {
private Factory(){}
public static KFC creat(String name){
if (name.equals("汉堡包")) {
return new Humberger();
}else if(name.equals("可乐")) {
return new Cola();
}else if(name.equals("套餐1")) {
return new TC1();
}else if(name.equals("套餐2")){
return new TC2();
}else{
return null;
}
}
}
package kfc;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
import javax.print.attribute.standard.PrinterLocation;
public class DOS {
private ArrayList<KFC> aa = new ArrayList<>();
private int yhq = 0;
public DOS() throws IOException{
zhuJieMain();
}
public void zhuJieMain() throws IOException{
System.out.println("欢迎来到KFC");
System.out.println("1.点餐--------2.领取优惠券-------3.结账");
show();
}
public void jieZhang() throws IOException{
Scanner sc = new Scanner(System.in);
Collect c = new Collect();
c.setKfc(aa);
c.setYhq(yhq);
c.print();
int x1 = sc.nextInt();
c.setMoney(x1);
c.printXiaopiao();
}
public void show() throws IOException{
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{
System.out.println("本店推出以下产品:1.汉堡:10/个");
System.out.println("本店推出以下产品:2.可乐:8/杯");
System.out.println("---------------3.套餐1:可乐+鸡翅+薯条:20/份");
System.out.println("---------------4.套餐2:汉堡+可乐+薯条:30/份");
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
xuanze(x);
}
private void xuanze(int x) throws IOException {
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("套餐1");
} else if (x == 4) {
a = Factory.creat("套餐2");
} else {
System.out.println("没有该套餐");
}
aa.add(a);
System.out.println("继续y,或返回上一页x");
String s = sc.next();
while(true){
if (s.equals("x")){
zhuJieMain();
break;
}else if(s.equals("y")){
diancan();
break;
}else {
System.out.println("请重新输入");
break;
}
}
}
}
public void youhuiquan() throws IOException{
System.out.println("------1.满20减5,2.满50减20(只能持有一张)");
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
if(x==1){
yhq=20;
}else if(x==2){
yhq=50;
}else{
System.out.println("没有该操作");
}
System.out.println("你现有"+yhq+"元优惠券");
System.out.println("返回y");
String s = sc.next();
if (s.equals("y")){
zhuJieMain();
}else{
System.out.println("你还不想结账?");
}
}
}
package kfc;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
public class Collect {
Date date = new Date();
Calendar calender = Calendar.getInstance();
int day = calender.get(calender.DAY_OF_WEEK);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
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 int judge(){
int i=0;
int sum=0;
for(KFC kfc:aa){
sum+=kfc.getPrice();
}
if(day==7){
sum-=5;
if(sum<0){
sum = 0;
}
}
if(sum<20){
i = money - sum;
}
if(sum>=20&& sum<50){
if(yhq==20) {
i = money-sum + 5;
}else{
i = money-sum;
}
}
if(sum>=50){
if(yhq==20) {
i = money-sum + 5;
}
else if(yhq==50) {
i = money-sum + 20;
}else{
i = money-sum;
}
}
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() + ",");
}else{
s.append(kfc.getName());
}
}
System.out.println("您点了"+s);
System.out.println("共消费"+sum+"元");
System.out.println("付钱:");
}
public void printXiaopiao() throws IOException{
File file = new File("out.txt");
if(!file.exists()){
file.createNewFile();
}
FileWriter fw = new FileWriter("out.txt",false);
PrintWriter pw = new PrintWriter(fw);
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() + ",");
}else{
s.append(kfc.getName());
}
}
System.out.println("消费时间为:"+sdf.format(date));
pw.println("消费时间为:"+sdf.format(date));
pw.flush();
System.out.println("您点了"+s);
pw.println("您点了"+s);
pw.flush();
if(day==7){
System.out.println("恭喜你,星期六为活动日,所有用户消费任意金额可减免5元");
pw.println("恭喜你,星期六为活动日,所有用户消费任意金额可减免5元");
pw.flush();
sum-=5;
}
if(sum<0){
sum=0;
}
System.out.println("共消费"+sum+"元");
pw.println("共消费"+sum+"元");
pw.flush();
System.out.println("您支付了"+money+"元");
pw.println("您支付了"+money+"元");
pw.flush();
if((sum>=20 && sum<50 )&& yhq==20){
System.out.println("您使用了优惠券满20减5");
pw.println("您使用了优惠券满20减5");
pw.flush();
}
if(sum>=50 && yhq==50){
System.out.println("您使用了优惠券满50减20");
pw.println("您使用了优惠券满50减20");
pw.flush();
}
if(sum>=50 && yhq==20){
System.out.println("您使用了优惠券满20减5");
pw.println("您使用了优惠券满20减5");
pw.flush();
}
System.out.println("找您"+judge()+"元");
pw.println("找您"+judge()+"元");
pw.flush();
}
}
package kfc;
public class Cola extends KFC{
private int price = 8;
private String name = "可乐";
public int getPrice() {
return price;
}
@Override
public String getName() {
return name;
}
}
package kfc;
public class Humberger extends KFC{
private int price = 10;
private String name = "汉堡包";
public int getPrice() {
return price;
}
@Override
public String getName() {
return name;
}
}
package kfc;
public class TC1 extends KFC {
private String name = "套餐1:可乐+鸡翅+薯条";
private int price=20;
@Override
public String getName() {
return name;
}
@Override
public int getPrice() {
return price;
}
}
package kfc;
public class TC2 extends KFC {
private String name = "套餐2:汉堡+可乐+薯条:30/份";
private int price=30;
@Override
public String getName() {
return name;
}
@Override
public int getPrice() {
return price;
}
}
package kfc;
import java.io.IOException;
public class text {
public static void main(String[]args) throws IOException{
DOS a= new DOS();
}
}