简单KFC结账

本文介绍了KFC结账系统的设计,包括总接口定义,四个继承接口的详细说明,接口实现类的实现方式,购物车类的功能以及实现类的具体操作。主函数用于演示整个结账流程。

在这里插入图片描述
总接口

public interface Food {
    public abstract double Price();
    public abstract String Name();

}

四个继承接口

import java.util.Scanner;

public interface Hamber extends Food {
    public static void ham(){
        System.out.println("1.香辣鸡腿堡        ¥19");
        System.out.println("2.新奥尔良烤鸡腿堡  ¥19.5");
        System.out.println("0. 返回上个界面");

    }
}



import java.util.Scanner;

public interface Wing extends Food {
    public static void wing(){
        System.out.println("1.新奥尔良烤翅   ¥12.5");
        System.out.println("2.香辣鸡翅      ¥19.5");
        System.out.println("3.吮指原味鸡    ¥12 ");
        System.out.println("0. 返回上个界面");

    }
}


import java.util.Scanner;

public interface Snak extends Food{
    public static void sn(){
        System.out.println("1.土豆泥    ¥6.5");
        System.out.println("2.薯条      ¥12");
        System.out.println("3.黄金鸡块  ¥11.5 ");
        System.out.println("0. 返回上个界面");

    }
}


import java.util.Scanner;

public interface Drink extends Food {
    public static void dr() {
        System.out.println("1.可乐      ¥9");
        System.out.println("2.雪碧      ¥9");
        System.out.println("3.橙汁      ¥10 ");
        System.out.println("0. 返回上个界面");
    }
}

接口实现类

public class SpicyBurger implements Hamber {
    @Override
    public double Price() {
        return 19;
    }

    @Override
    public String Name() {
        return "香辣鸡腿堡";
    }
}

class NewOrleansBurger implements Hamber{
    @Override
    public double Price() {
        return 19.5;
    }

    @Override
    public String Name() {
        return "新奥尔良烤鸡腿堡";
    }
}

package KFC;

public class PotatoMud implements Snak {
    @Override
    public double Price() {
        return 6.5;
    }

    @Override
    public String Name() {
        return "土豆泥";
    }
}

class Frize implements Snak{
    @Override
    public double Price() {
        return 12;
    }

    @Override
    public String Name() {
        return "薯条";
    }
}

class GoldenChicken implements Snak{

    @Override
    public double Price() {
        return 11.5;
    }

    @Override
    public String Name() {
        return "黄金鸡块";
    }
}


public class NewOrleansWing implements Wing {
    @Override
    public double Price() {
        return 12.5;
    }

    @Override
    public String Name() {
        return "新奥尔良烤翅";
    }
}

class SuckFinger implements Wing{
    @Override
    public double Price() {
        return 12;
    }

    @Override
    public String Name() {
        return "吮指原味鸡";
    }
}

class SpicyWing implements Wing{
    @Override
    public double Price() {
        return 11.5;
    }

    @Override
    public String Name() {
        return "香辣鸡翅";
    }
}

public class Coka implements Drink{
    @Override
    public double Price() {
        return 9;
    }

    @Override
    public String Name() {
        return "可乐";
    }
}
class Sprint implements Drink{
    @Override
    public double Price() {
        return 9;
    }

    @Override
    public String Name() {
        return "雪碧";
    }
}

class Jiuce implements Drink{
    @Override
    public double Price() {
        return 10;
    }

    @Override
    public String Name() {
        return "橙汁";
    }
}

制造类 传递参数,传递总结,以及购买列表

import java.util.ArrayList;

public class HamberMake {   //生产汉堡,方便向总价和集合中写入
    public static double hamber(int i , double sum , ArrayList<String> c){  //三个参数分别代传参
        SpicyBurger spicyBurger = new SpicyBurger();
        NewOrleansBurger newOrleansBurger = new NewOrleansBurger();
            if (i == 1) {    //对应 1.香辣鸡腿堡
                sum += 19; //总价计算
                c.add(spicyBurger.Name() + "   ¥19\r\n");  //向集合中添加菜单
                Hamber.ham();
            }
            else if (i == 2) {   //对应 2.新奥尔良烤堡
                sum += 19.5;
                c.add(newOrleansBurger.Name() + "     ¥19.5\r\n");
                Hamber.ham();
            }
    return sum;
    }
}

import java.util.ArrayList;

public class WingMake {
    public static double wing(int i , double sum , ArrayList<String> c) {
        NewOrleansWing newOrleansWing = new NewOrleansWing();
        SpicyWing spicyWing = new SpicyWing();
        SuckFinger suckFinger = new SuckFinger();
            if (i == 1) {
                sum += newOrleansWing.Price();
                c.add(newOrleansWing.Name()+"    ¥12.5\r\n");
                Wing.wing();
            }
            else if (i == 2){
                sum += spicyWing.Price();
                c.add(spicyWing.Name()+"    ¥19.5\r\n");
                Wing.wing();
            }
            else if (i == 3){
                sum += suckFinger.Price();
                c.add(suckFinger.Name()+"    ¥12\r\n");
                Wing.wing();
            }
        return sum;
    }
}


import java.util.ArrayList;

public class SnakMake {
    public static double snak(int i , double sum , ArrayList<String> c) {
        PotatoMud potatoMud = new PotatoMud();
        Frize frize = new Frize();
        GoldenChicken goldenChicken = new GoldenChicken();
        if (i == 1) {
            sum += potatoMud.Price();
            c.add(potatoMud.Name()+"    ¥6.5\r\n");
            Snak.sn();
        }
        else if (i == 2){
            sum += frize.Price();
            c.add(frize.Name()+"    ¥12\r\n");
            Snak.sn();
        }
        else if (i == 3){
            sum += goldenChicken.Price();
            c.add(goldenChicken.Name()+"    ¥11.5\r\n");
            Snak.sn();
        }
        return sum;
    }
}


import java.util.ArrayList;

public class DrinkMake {
    public static double drink(int i , double sum , ArrayList<String> c,int count) {
        Coka coka = new Coka();
        Sprint sprint = new Sprint();
        Jiuce jiuce = new Jiuce();
        if (count%2 == 0){   // 第二杯半价
            if (i == 1) {
                sum += (coka.Price()/2);
                c.add(coka.Name()+"    ¥4.5\r\n");
                Drink.dr();
            }
            else if (i == 2){
                sum += (sprint.Price()/2);
                c.add(sprint.Name()+"    ¥4.5\r\n");
                Drink.dr();
            }
            else if (i == 3){
                sum += (jiuce.Price()/2);
                c.add(jiuce.Name()+"    ¥5\r\n");
                Drink.dr();
            }
        }
        else {
            if (i == 1) {
                sum += coka.Price();
                c.add(coka.Name() + "    ¥9\r\n");
                Drink.dr();
            } else if (i == 2) {
                sum += sprint.Price();
                c.add(sprint.Name() + "    ¥9\r\n");
                Drink.dr();
            } else if (i == 3) {
                sum += jiuce.Price();
                c.add(jiuce.Name() + "    ¥10\r\n");
                Drink.dr();
            }
        }
        return sum;
    }
}

购物车类

import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Scanner;

public class Cart {   //购物车
    private double sum;
    private int money = 0;
    private double result = 0;
    public void setSum(double order){
        sum += order;
    }

    public double getSum() {
        return sum;
    }
    public void Show(){
        System.out.println("当前总价   ¥"+sum);
    }
    public void Pay(){
        System.out.println("输入付款金额");
        Scanner sc = new Scanner(System.in);
        money += sc.nextInt();
    }
    public void Calculate(double sum){
        System.out.println("支付金额为 "+money);
        while (money<sum){
            double last;
            BigDecimal bg = new BigDecimal(sum - money);  //保留两位小数操作
            last = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            System.out.println("支付金额不足,请继续支付"+last);
            Pay();
        }
        result = money - sum;
        BigDecimal bg = new BigDecimal(result);  //保留两位小数操作
        result = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
        System.out.println("找零"+result);
    }
    public double Sale(){
        String []arr = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        Calendar calendar = Calendar.getInstance();
        System.out.println("今天是:"+arr[calendar.get(Calendar.DAY_OF_WEEK)-1]); //1.数组下标从0开始;2.老外的第一天是从星期日开始的
        if (arr[calendar.get(Calendar.DAY_OF_WEEK)-1] == "星期日"){
            System.out.println("所有商品享受八折优惠");
            sum *= 0.8;
            BigDecimal bg = new BigDecimal(sum);
            sum = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            System.out.println("总价为   "+sum);
            return sum;
        }
        else {
            System.out.println("今天不参与8折活动");
            return sum;
        }
    }
    public double Change(){
        return result;
    }
    public int getMoney(){
        return money;
    }

}

实现类

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class Order {
    double sum = 0;
    Cart cart = new Cart();
    ArrayList<String> list = new ArrayList<>();

    public void Order() throws IOException {
        System.out.println("进入购买选单");
        System.out.println("=====================================");
        System.out.println("通过数字键选择");
        System.out.println("1.               汉堡类");
        System.out.println("2.               鸡翅类");
        System.out.println("3.               小吃类");
        System.out.println("4.               饮料类");
        System.out.println("0.               结算界面");
        System.out.println("=====================================");

        Scanner sc = new Scanner(System.in);
        int o1 = sc.nextInt();
        switch (o1) {
            case 1:
                Hamber.ham();
                Scanner choice = new Scanner(System.in);
                int ch = choice.nextInt();
                while (ch!=0) {
                    sum = HamberMake.hamber(ch, sum, list);
                    choice = new Scanner(System.in);
                    ch = choice.nextInt();
                }
                this.Order();
                break;
            case 2:
                Wing.wing();
                choice = new Scanner(System.in);
                ch = choice.nextInt();
                while (ch!=0) {
                    sum = WingMake.wing(ch, sum, list);
                    choice = new Scanner(System.in);
                    ch = choice.nextInt();
                }
                this.Order();
                break;
            case 3:
                Snak.sn();
                choice = new Scanner(System.in);
                ch = choice.nextInt();
                while (ch!=0) {
                    sum = SnakMake.snak(ch, sum, list);
                    choice = new Scanner(System.in);
                    ch = choice.nextInt();
                }
                this.Order();
                break;
            case 4:
                Drink.dr();
                choice = new Scanner(System.in);
                ch = choice.nextInt();
                int count = 1;
                while (ch!=0) {
                    sum = DrinkMake.drink(ch, sum, list,count);
                    choice = new Scanner(System.in);
                    ch = choice.nextInt();
                    count++;
                }
                this.Order();
                break;
            case 0:
                Purcash();
                Save();
        }

    }

    public void Purcash(){
        System.out.println("您的订单为");
        System.out.println(list);
        System.out.println("总价   "+sum);
        cart.setSum(sum);
        sum =cart.Sale();
        cart.Pay();
        cart.Calculate(sum);
    }
    public void Save() throws IOException {
        File file= new File("E:\\KFC\\receipt.txt");
        file.createNewFile();
        try {
            FileWriter fileWriter = new FileWriter(file);
            fileWriter.write("==============================\r\n");
            fileWriter.write(String.valueOf(list));
            fileWriter.write("\r\n\r\n");
            fileWriter.write("合计   "+"¥"+sum+"\r\n");
            fileWriter.write("收款"+"¥"+cart.getMoney()+"\r\n");
            fileWriter.write("找零"+"¥"+cart.Change()+"\r\n");
            fileWriter.write("==============================");
            fileWriter.flush();
            fileWriter.close();
        }catch (IOException e){
            e.printStackTrace();
        }


    }
}

主函数

import java.io.IOException;
import java.util.Calendar;

public class main {
    public static void main(String[] args) throws IOException {
        Order K1 = new Order();
        K1.Order();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值