main方法设计简单的飞机行李托还计费系统。假设飞机上个人托运行李的条件足:行弅重藝 在20 公斤以下免费托运,20~30 公斤超出部分 了元/公斤:30~40 公厅超出部分10TE/ : 40-50公斤超出部分 15 元/公斤:50公厅以上不允许个人携带。
时间: 2024-09-27 20:09:01 浏览: 5
好的,我们可以创建一个简单的命令行应用程序来模拟这个行李托运费用计算。首先,我们需要定义一个`Baggage`类,包含重量、价格范围以及对应的价格。然后,我们可以在`main`方法中让用户输入行李重量,根据规则计算并打印费用。
```java
public class Baggage {
private static final int[] PRICE_RANGES = {0, 20, 30, 40, 50};
private static final double[] PRICES_PER_KILO = {0, 0, 10, 20, 30};
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的行李重量(单位:公斤):");
double weight = scanner.nextDouble();
if (weight <= 0) {
System.out.println("行李重量必须大于0,请重新输入。");
return;
}
double totalFee = calculateFee(weight);
System.out.printf("行李重量为%.2f公斤,费用为¥%.2f。\n", weight, totalFee);
}
private static double calculateFee(double weight) {
for (int i = 0; i < PRICE_RANGES.length - 1; i++) {
if (weight <= PRICE_RANGES[i + 1]) {
double rate = PRICES_PER_KILO[i] / (PRICE_RANGES[i + 1] - PRICE_RANGES[i]);
return Math.min(PRICE_RANGES[i + 1], weight) * rate;
}
}
// 如果超过50公斤,直接返回最大费用
return priceForRange(PRICE_RANGES[PRICE_RANGES.length - 1], weight);
}
private static double priceForRange(int maxWeight, double weight) {
if (weight > maxWeight) {
return maxWeight * PRICES_PER_KILO[PRICE_RANGES.length - 1];
} else {
throw new IllegalArgumentException("行李重量不应超过" + maxWeight + "公斤");
}
}
}
```
在这个程序中,我们使用了两个静态数组`PRICE_RANGES`和`PRICES_PER_KILO`分别表示每个区间的价格上限和每公斤的价格。`calculateFee`方法遍历这些区间,找到适用的费用计算公式,而`priceForRange`方法处理超出范围的情况。