2)/编写一个地铁按公里计价的程序。计价规则为:6km(含)内3元;6~12km(含)4 元; 12~22km(含)5元;22~32 km(含)6元;32 km 以上每加1元可乘坐20km,Java
时间: 2024-10-16 09:04:08 浏览: 4
为了编写一个Java程序来模拟地铁按公里计价,我们可以创建一个方法,接受乘客的行驶距离作为参数,并根据给定的规则计算票价。下面是一个简单的示例代码:
```java
public class FareCalculator {
private static final int BASE_FARE_1_TO_6KM = 3;
private static final int ADDITIONAL_FARE_6_TO_12KM = 1;
private static final int ADDITIONAL_FARE_12_TO_22KM = 1;
private static final int ADDITIONAL_FARE_22_TO_32KM = 1;
private static final double FLOOR_MULTIPLIER = 20.0;
public static double calculateFare(int distanceInKm) {
if (distanceInKm <= 6) {
return BASE_FARE_1_TO_6KM;
} else if (distanceInKm <= 12) {
return BASE_FARE_1_TO_6KM + ADDITIONAL_FARE_6_TO_12KM;
} else if (distanceInKm <= 22) {
return BASE_FARE_1_TO_6KM + ADDITIONAL_FARE_6_TO_12KM + ADDITIONAL_FARE_12_TO_22KM;
} else if (distanceInKm <= 32) {
int extraBlocks = (int) ((distanceInKm - 22) / FLOOR_MULTIPLIER);
return BASE_FARE_1_TO_6KM + ADDITIONAL_FARE_6_TO_12KM + ADDITIONAL_FARE_12_TO_22KM + extraBlocks;
} else {
// Additional blocks beyond 32 km
int extraBlocks = (int) ((distanceInKm - 32) / FLOOR_MULTIPLIER);
return BASE_FARE_1_TO_6KM + ADDITIONAL_FARE_6_TO_12KM + ADDITIONAL_FARE_12_TO_22KM + additionalBlocks * 2; // Considering each additional block costs twice as much
}
}
public static void main(String[] args) {
int distance = 35; // 示例距离
double fare = calculateFare(distance);
System.out.printf("The fare for %d km is %.2f yuan.", distance, fare);
}
}
```
这个程序会根据传入的距离`distanceInKm`计算相应的票价。注意,这里假设每次额外费用是以20公里为单位计算的。
阅读全文