分数 15 现需要编写一个简易快递计价程序。具体来说: 1、抽象快递类Express,其包含一个属性int weight表示快递重量(单位为kg),一个方法getWeight()用于返回快递重量和一个抽象方法getTotal()用于计算快递运费。 2、两个类继承Express,分别是: (a)顺路快递SLExpress:计价规则为首重(1kg)12元,每增加1kg费用加2元。 (b)地地快递DDExpress:计价规则为首重(1kg)5元,每增加1kg费用加1元。 3、Main: 接收用户通过控制台输入的N行信息,自动计算所有快递的运费总和。 输入样例: 6 SL 2 DD 2 SL 1 SL 1 SL 1 DD 3 输入解释: 第1行n表示需要计算的快递件数 第2至n+1表示每个快递信息,即选哪家快递公司 以及快递的重量(单位kg) 输出样例: 63 输出解释: 所有快递总运费。 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB
代码如下
import java.util.*;
abstract class Express{
int weight;
public int getWeight(){
return weight;
}
abstract int getTotal(int weight);
}
class SLExpress extends Express{
private int money = 12;
int getTotal(int weight){ //甚至这里加上public也可以
if(weight > 1){
this.money += 2*(weight-1);
}
return money;
}
}
class DDExpress extends Express{
private int money = 5;
int getTotal(int weight){
if(weight > 1){
this.money += (weight-1);
}
return money;
}
}
public class Main{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int n =s.nextInt();
int fee = 0;
for(int i =0 ; i<n;i++){
String op = s.next();
if(op.equals("SL")){
SLExpress money1 = new SLExpress();
int weight = s.nextInt();
fee += money1.getTotal(weight);
}else{
DDExpress money2 = new DDExpress();
int weight = s.nextInt();
fee += money2.getTotal(weight);
}
}
System.out.println(fee);
}
}
标签:getTotal,weight,int,money,Express,快递,计价器
From: https://blog.csdn.net/2302_78965451/article/details/139534452