yi

package design;

public abstract class CashSuper {
    public abstract double AcceptCash(double money); 
}


package design;

public class CashNormal extends CashSuper {

    @Override
    public double AcceptCash(double money) {
        // TODO Auto-generated method stub
        return money;
    }

}


package design;

public class CashReback extends CashSuper {
    private Double reback=0.0;
    private Double money=0.0;
    public CashReback(String moneyOne,String rebackOne)
    {
        money=Double.parseDouble(moneyOne);
        reback=Double.parseDouble(rebackOne);
    }
    @Override
    public double AcceptCash(double moneyOne) {
        // TODO Auto-generated method stub
        return moneyOne-Math.floor(moneyOne/money)*reback;
    }

}




package design;

public class CashRebate extends CashSuper {
    private double discount=1;
    public CashRebate(String discountOne)
    {
        discount=Double.parseDouble(discountOne);
    }
    @Override
    public double AcceptCash(double money) {
        // TODO Auto-generated method stub
        return money*discount;
    }

}




package design;

public class CashContext {
    private CashSuper cash;

    public CashContext(String type) {
        switch (type) {
        case "普通用户":
            cash = new CashNormal();
            break;
        case "打六折":
            cash = new CashRebate("0.6");
            break;
        case "满300减100":
            cash = new CashReback("300", "100");
            break;
        default:
            System.out.println("请重新输入");
        }
    }

    public Double AcceptCash(Double money) {
        return cash.AcceptCash(money);
    }

}


package design;

import java.util.Scanner;

public class MainThree {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String type;
        Double price = 0.0;
        Double sum = 0.0;
        Scanner cin = new Scanner(System.in);
        while (cin.hasNext()) {
            type = cin.next();
            price = cin.nextDouble();
            CashContext cash = new CashContext(type);
            sum += cash.AcceptCash(price);
            System.out.println(sum);
        }
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值