某市出租车计费标准如下图所示,请根据此标准完成一个出租车计费模拟功能,能够计算总费用和列出产生费用项目详细情况说明,帮助出租车师傅和乘客了解计费标准
综合上述表格可以得出总费用=里程费用+低速行驶费(或者等候费)+预约叫车服务费+空驶费+夜间收费+燃油附加费,需要收集的数据有:里程数、低速行驶时长、(早晚高峰行驶时长和其他时间段行驶时长)。是否预约叫车(按四小时为标准)开始乘坐出租车时间,出租车到达终点站时间,结合这些数据和表中提供的标准就可以使用程序计算总车费了
1.声明好程序所需的变量,用于储存数据,请注意数据类型
2.提示用户输入里程,总乘车时间,是否预约叫车(如果是预约叫车,还需确认是否在四小时之内),是否有低速行驶,(如果有,提示输入低速行驶时间,需要考虑早高晚高峰),如果里程超过15公里,需要输入是否往返两公里范围内,决定空驶费。分别将这些用户输入值通过赋值存入对应的变量中
3.根据计费标准和用户输入的数据进行总费用计算处理
4.输出总费用和每个产生费用单项的详细说明
package day01_text1; import java.util.Scanner; public class demo03 { /* * 出租车计费模拟功能 */ public static void main(String[] args) { Scanner input =new Scanner(System.in); double liChengFei=0;//里程费 double diSuXingShiFei=0;//低速行驶费 double yuYueJiaoCheFuWuFei=0;//预约叫车服务费 double kongShiFei=0;//空驶费 double yeJianShouFei=0;//夜间收费 double ranYouFuJiaFei=1;//燃油附加费 double danJia=2.3;//单价 double zongFeiYong;//总费用 /* * 里程费 */ System.out.println("请输入总里程"); double zongLiCheng=input.nextDouble(); if(zongLiCheng>3) { liChengFei=13+(zongLiCheng-3)*danJia; }else { liChengFei=13; } /* * 低速行驶费用 */ System.out.println("是否有低速行驶:true或false"); boolean diSu =input.nextBoolean(); if(diSu) { System.out.println("请输入低速时行驶时间"); double diSuXingShiShiJian=input.nextDouble(); System.out.println("是否为早晚高峰:true或false"); boolean gaoFeng =input.nextBoolean(); if(gaoFeng) { diSuXingShiFei=(diSuXingShiShiJian/5)*danJia*2; }else { diSuXingShiFei=diSuXingShiShiJian*danJia; } } /* * 预约叫车服务费 */ System.out.println("是否预约叫车:true或false"); boolean yuYue =input.nextBoolean(); if(yuYue) { System.out.println("请输入提前预约叫车的时间"); int siXiaoShiZhiNei=input.nextInt(); if(siXiaoShiZhiNei>4) { yuYueJiaoCheFuWuFei=6; }else { yuYueJiaoCheFuWuFei=5; } } /* * 空驶费 */ if(zongLiCheng>15) { System.out.println("是否往返两公里范围内:true或false"); boolean wangFan=input.nextBoolean(); if(!wangFan) { kongShiFei=(zongLiCheng-15)*danJia*1.5; } } /* * 夜间收费 */ System.out.println("请输入是否为夜间行驶23:00(含)~次日5点(不含):true或false"); boolean yeJianXingShi=input.nextBoolean(); if(yeJianXingShi) { yeJianShouFei=(zongLiCheng-3)*danJia*0.2;//注意哦 因为这里是加收的,所以不是*1.2 } zongFeiYong=liChengFei+diSuXingShiFei+yuYueJiaoCheFuWuFei+kongShiFei+yeJianShouFei+ranYouFuJiaFei; System.out.println("本次总费用:"+Math.round(zongFeiYong)); System.out.println("里程费用:"+Math.round(liChengFei)); System.out.println("低速行驶费:"+ Math.round(diSuXingShiFei)); System.out.println("预约叫车服务费:"+Math.round(yuYueJiaoCheFuWuFei)); System.out.println("空驶费:"+Math.round(kongShiFei)); System.out.println("夜间收费:"+Math.round(yeJianShouFei)); System.out.println("燃油附加费:"+Math.round(ranYouFuJiaFei)); } }
代码执行结果