用java写出地铁计费系统要求
时间: 2024-03-18 09:40:12 浏览: 70
好的,我可以为您提供一个简单的地铁计费系统的Java代码,满足以下要求:
1. 用户输入起点站和终点站,程序自动计算路程和费用
2. 实现不同时间段的不同计费标准
3. 实现不同乘客身份(如学生、老人等)的不同优惠政策
以下是代码示例:
```java
import java.util.Scanner;
public class SubwayFareSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎使用地铁计费系统!");
System.out.println("请输入起点站名称:");
String startStation = scanner.nextLine();
System.out.println("请输入终点站名称:");
String endStation = scanner.nextLine();
int distance = getDistance(startStation, endStation); // 获取路程
double fare = getFare(distance); // 获取费用
System.out.println("您的路程为" + distance + "公里,需要支付" + fare + "元。");
}
// 根据起点站和终点站计算路程(这里只是简单的示例,实际情况需要根据地铁线路计算)
private static int getDistance(String startStation, String endStation) {
return Math.abs(endStation.hashCode() - startStation.hashCode()); // 使用hashCode计算距离
}
// 根据路程和时间计算费用
private static double getFare(int distance) {
double fare = 0;
int hour = java.time.LocalTime.now().getHour(); // 获取当前小时数
if (hour >= 6 && hour < 9) { // 早高峰
fare = distance <= 6 ? 3 : (distance <= 12 ? 4 : 5);
} else if (hour >= 17 && hour < 20) { // 晚高峰
fare = distance <= 6 ? 4 : (distance <= 12 ? 5 : 6);
} else { // 非高峰时段
fare = distance <= 6 ? 2.5 : (distance <= 12 ? 3.5 : 4.5);
}
// 检查是否有优惠政策
// 比如学生、老人等
// 这里只是示例,实际情况需要根据具体政策计算
if (isStudent()) {
fare *= 0.8; // 学生8折
} else if (isElderly()) {
fare *= 0.5; // 老人5折
}
return fare;
}
// 判断是否为学生
private static boolean isStudent() {
// 这里只是示例,实际情况需要根据用户输入或其他方式判断
return false;
}
// 判断是否为老人
private static boolean isElderly() {
// 这里只是示例,实际情况需要根据用户输入或其他方式判断
return false;
}
}
```
该示例代码实现了一个简单的地铁计费系统,其中包括根据起点站和终点站计算路程、根据路程和时间计算费用以及判断是否有优惠政策等功能。但需要注意的是,实际情况下需要根据地铁线路、计费标准和优惠政策等具体情况进行调整。
阅读全文