Java出租车计费训练任务
2020-08-09 20:17
59 查看
出租车计费训练任务
Java出租车计费训练任务
本次任务一起来解决出租车计费问题。某市出租车计费标准如下图所示,
请根据此标准完成一个出租车计费模拟功能,能够计算总费用和列出产生费用
项目详细情况说明,帮助出租车师傅和乘客了解计费标准。
任务概述
收费表
任务提示
结合上述表格,可以得出:总车费=里程费用+低速行驶费(或者等候费)
+预约叫车服务费+空驶费+夜间收费+燃油附加费。需要收集的数据有:里程数、低速行驶时长(早晚高峰期行驶时长和其他时间段行驶时长)、是否预约叫车(按四小时为标准)、开始乘坐出租车时间、出租车到达终点站时间,结合这些数据和表中提供的标准就可以使用程序进行计算总车费了。
任务过程
- 声明好程序所需的变量,用于存储数据,请注意数据类型。
- 提示用户输入总里程数、总乘车时间、是否预约叫车(如果是预约叫车
还需要确认是否在 4 小时以内)、是否有低速行驶(如果有,提示输入低速行驶时间,需要考虑早晚高峰),如果里程超过 15 公里,需要输入是否往返
公里范围内,决定空驶费。分别将这些用户输入的值,通过赋值存入对应的变量中。 - 根据计费标准和用户输入的数据进行总费用计算处理。
- 输出总费用和每个产生费用单项的详细情况说明。
代码
// An highlighted block package day02; import java.util.Scanner; public class Demo2_4_7 { /** * m=是否预约 * n=预约时间 * z=总里程 * p=基本单价 * t=总时间 * dt=低速时间 * zaowan=是否早晚发高峰 * ks=是否往返载客 * y=是否夜间 * * num=总钱数 * e=预约费用 * f=里程费 * d=低速行驶费用 * */ public static void main(String[] args) { //总钱数 double num = 0; //预约叫车的费用 double e = 0; //里程费 double f = 0; //基本单价 double p = 2.3; //低速行驶费 double d = 0; //空驶费 double k = 0; //夜间费用 double q = 0; //油费 double o = 1; //-------------预约叫车代码 System.out.println("是否预约叫车"); Scanner yuyue = new Scanner(System.in); Scanner yuyueshijian = new Scanner(System.in); boolean m = yuyue.nextBoolean(); if(m) { System.out.println("你已成功预约"); System.out.println("请输入提前多久预约-超过4h收取服务费6元,4h以下为5元"); int n = yuyueshijian.nextInt();//预约时间 if(n>4) { e = 6; }else e = 5; } //------------输入总乘车时间 Scanner chengcheshijian = new Scanner(System.in); System.out.println("输入你乘车总时间"); int t = chengcheshijian.nextInt(); //------------输入总里程代码 Scanner zonglicheng = new Scanner(System.in); System.out.println("输入你目的地的总里程"); int z = zonglicheng.nextInt(); if(z>3) { f = 13+(z-3)*p; }else { System.out.println("总费用"+f+e+o); } //------------输入是否需要低速行驶和早晚高峰 Scanner shifoudisu = new Scanner(System.in); Scanner disushijian = new Scanner(System.in); Scanner zaowangaofeng = new Scanner(System.in); System.out.println("是否需要低速行驶"); boolean s = shifoudisu.nextBoolean(); if(s) { System.out.println("输入低速行驶时间"); int dt =disushijian.nextInt(); //--是否早晚高峰 System.out.println("是否早晚高峰"); boolean zaowan = zaowangaofeng.nextBoolean(); if(zaowan) { d = dt/5*2*p; }else d = dt/5*p; } //-------------空驶费 Scanner shifouwangfan = new Scanner(System.in); if(z>15) { System.out.println("是否往返载客"); boolean ks = shifouwangfan.nextBoolean(); if(ks) { k = (z-15)*p*1.5; } }else k = 0; //-------------是否夜间驾驶 Scanner shifouyejian = new Scanner(System.in); System.out.println("是否夜间驾驶"); boolean y =shifouyejian.nextBoolean(); if(y) { q = (z-3)*p*0.2; }else q = 0; //总费用 num = e+f+q+d+o+k; System.out.println("总费用="+Math.round(num)+"元"); System.out.println("预约叫车的费用="+Math.round(e)+"元"); System.out.println("里程费="+Math.round(f)+"元"); System.out.println("低速行驶费="+Math.round(d)+"元"); System.out.println("空驶费="+Math.round(k)+"元"); System.out.println("夜间费用="+Math.round(q)+"元"); System.out.println("油费="+Math.round(o)+"元"); } }
相关文章推荐
- JAVA选队长游戏训练任务
- 深入理解java中的static关键字
- SpringBoot快速指导中文翻译
- Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和项目实例图
- SpringBoot2 整合Ehcache组件,轻量级缓存管理
- java:用户交互Scanner
- Java语言学习day 06 - 面向对象01
- Spring快速入门指南网站翻译
- Java - 继承、抽象类
- javasrcipt中型知识点
- JAVA基础(异常的捕获与处理)
- 错误:java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
- 9、SpringBoot:MVC自动配置原理
- javasrcipt小知识
- java三大特性之多态性(全面解读)和面试分析
- 面向对象基础2-Java学习日记(9)
- Eclipse修改默认编码为UTF-8
- Eclipse快速自动补全
- Win10 JDK1.8.0_92环境变量配置
- java基础知识复习总结2