郑州轻工业大学Java实验二快递计价器-2

现需要编写一个简易快递计价程序。具体来说:

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)

输出样例:

SLExpress:14
DDExpress:6
SLExpress:12
SLExpress:12
SLExpress:12
DDExpress:7

输出解释:

n件快递的运费,每行表示一件快递。

 代码如下:

import java.util.Scanner;

public class Main {
	public static void main(String[] aegs) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();//接收从键盘输入的数字,表示需要计算的快递件数
		String ch1="SL";
		SLExpress w1=new SLExpress();
		DDExpress w2=new DDExpress();
		for(int i=0;i<n;i++) {
			String ch=sc.next();//接收快递名字
			if(ch1.equals(ch)) {//判断快递名字是否是顺路快递
				w1.weight=sc.nextInt();
				System.out.println("SLExpress:"+w1.SLExpress(w1.weight));
			}
			else {
				w2.weight=sc.nextInt();
				System.out.println("DDExpress:"+w2.DDExpress(w2.weight));
			}
		}
	}
}
/*
 * 、抽象快递类Express,其包含一个属性int weight表示快递重量(单位为kg),一个方法getWeight()用于返回快递重量和一个抽象方法getTotal()用于计算快递运费。

2、两个类继承Express,分别是:
(a)顺路快递SLExpress:计价规则为首重(1kg)12元,每增加1kg费用加2元。
(b)地地快递DDExpress:计价规则为首重(1kg)5元,每增加1kg费用加1元。

3、Main:
接收用户通过控制台输入的N行信息,自动计算每件快递的运费。
 */
abstract class Express{//抽象快递类
	int weight;//表示快递重量kg
	int getWeight(int weight) {//用于返回快递重量和一个抽象方法getTotal()用于计算快递运费
		return this.weight;
	}
	abstract int getTotal();//抽象方法
}

class SLExpress extends Express{//顺路快递
	int SLExpress(int weight) {//录入货物重量 并返回运费数
		return 12+(weight-1)*2;
	}

@Override
int getTotal() {
	// TODO 自动生成的方法存根
	return 0;
}
}
class DDExpress extends Express{//地地快递
	int DDExpress(int weight) {录入货物重量 并返回运费数
		return 5+(weight-1)*1;
	}

	@Override
	int getTotal() {
		// TODO 自动生成的方法存根
		return 0;
	}
}

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
受用户输入的快递重量和快递型(顺路快递或地地快递),然后根据输入的型创建对应的对象,并调用对象的getTotal()方法计算快递运费,最后输出结果。以下是可能的实Express.java: ``` public abstract class Express { protected int weight; public Express(int weight) { this.weight = weight; } public int getWeight() { return weight; } public abstract double getTotal(); } ``` SLExpress.java: ``` public class SLExpress extends Express { private static final double BASE_PRICE = 12.0; private static final double EXTRA_PRICE = 2.0; public SLExpress(int weight) { super(weight); } @Override public double getTotal() { double total = BASE_PRICE; if (weight > 1) { total += EXTRA_PRICE * (weight - 1); } return total; } } ``` DDExpress.java: ``` public class DDExpress extends Express { private static final double BASE_PRICE = 5.0; private static final double EXTRA_PRICE = 1.0; public DDExpress(int weight) { super(weight); } @Override public double getTotal() { double total = BASE_PRICE; if (weight > 1) { total += EXTRA_PRICE * (weight - 1); } return total; } } ``` Main.java: ``` import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter weight: "); int weight = scanner.nextInt(); System.out.print("Enter type (SL or DD): "); String type = scanner.next(); Express express; if (type.equals("SL")) { express = new SLExpress(weight); } else if (type.equals("DD")) { express = new DDExpress(weight); } else { System.out.println("Invalid type"); return; } double total = express.getTotal(); System.out.printf("Total: %.2f\n", total); } } ``` 在这个程序中,我们使用了抽象抽象方法来实快递的通用结构和不同计价规则的区别实。在Main中,我们使用Scanner来接收用户的输入,然后根据输入的型创建对应的对象并调用getTotal()方法计算运费,最后输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值