在Java中机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
时间: 2024-10-10 08:13:04 浏览: 47
根据座舱和月份计算价格
在Java中,你可以创建一个计算机票价格的方法来处理这个需求。首先,我们可以定义一个机票类(Ticket),包含原始价格(originalPrice)、月份(month)和舱位(class)属性。然后,我们可以在该类中实现折扣策略的方法`calculatePrice()`。下面是一个简单的示例:
```java
public class Ticket {
private double originalPrice;
private String month;
private String classType; // "头等舱" 或 "经济舱"
public Ticket(double price, String month, String classType) {
this.originalPrice = price;
this.month = month;
this.classType = classType;
}
// 计算打折后的价格
public double calculatePrice() {
double discount = 1; // 默认无折扣
if (classType.equals("头等舱")) {
if (isSeason(month, "旺季")) {
discount = 0.9;
} else if (isSeason(month, "淡季")) {
discount = 0.7;
}
} else if (classType.equals("经济舱")) {
if (isSeason(month, "旺季")) {
discount = 0.85;
} else if (isSeason(month, "淡季")) {
discount = 0.65;
}
}
return originalPrice * discount;
}
// 判断是否为旺季
private boolean isSeason(String month, String season) {
String[] seasons = {"5", "6", "7", "8", "9", "10"};
return months.contains(month) && Arrays.asList(seasons).contains(season);
}
// 获取实际价格并打印结果
@Override
public String toString() {
return "打折后价格:" + calculatePrice();
}
}
// 使用示例
public static void main(String[] args) {
double price = 1000.0;
String month = "7";
String classType = "头等舱";
Ticket ticket = new Ticket(price, month, classType);
System.out.println(ticket); // 输出打折后的价格
}
```
阅读全文