出租车计费
示例:某市出租车计费标准如下图所示, 请根据此标准完成一个出租车计费模拟功能,能够计算总费用和列出产生费用 项目详细情况说明,帮助出租车师傅和乘客了解计费标准
二、代码
public static void main(String[] args) {
double cost = 0.0D;
double price = 2.3D;
Scanner input = new Scanner(System.in);
System.out.println("输入里程数:");
double mile = (double)input.nextInt();
cost = mile < 3.0D ? 13.0D : (mile - 3.0D) * price + 13.0D;
System.out.println("请输入时间");
double daytime = input.nextDouble();
if (daytime >= 0.0D && daytime <= 5.0D || daytime >= 23.0D && daytime <= 24.0D) {
price *= 1.2D;
cost = (mile - 3.0D) * price + 13.0D;
}
boolean lowspeed;
if (mile > 15.0D) {
System.out.println("起始距离是否超过2公里,输入shi表示超过,其他表示没有");
lowspeed = input.next().equals("shi");
if (lowspeed) {
cost += price * 0.5D * (mile - 15.0D);
}
}
System.out.println("是否有低速行驶,输入yes表示有,其他表示没有");
lowspeed = input.next().equals("yes");
if (lowspeed) {
System.out.println("请输入行驶的分钟数");
int lowtime = input.nextInt();
if ((daytime < 7.0D || daytime > 9.0D) && (daytime < 17.0D || daytime > 19.0D)) {
cost += (double)(lowtime / 5) * price;
} else {
price *= 2.0D;
cost += (double)(lowtime / 5) * price;
}
}
System.out.println("是否有预约叫车,输入have表示有,其他表示没有");
boolean order = input.next().equals("have");
if (order) {
System.out.println("请输入预约时长");
double ortime = input.nextDouble();
if (ortime > 4.0D) {
cost += 6.0D;
} else {
cost += 4.0D;
}
}
if (cost % 1.0D > 0.5D) {
++cost;
} else {
cost /= 1.0D;
}
int cost1 = (int)cost;
System.out.println(cost1 + 1);
}
这道题对于初学者来说还是蛮难的,但后来的话只要想通了要根据价格一步步的对其应该收什么费来进行判断,并且添加上去,就可以根据这条思路来写程序了。用equals来判断。