01 Java基础语法—第4节流程控制

一、出租车计费训练任务(分支语句)

问题描述

本次任务一起来解决出租车计费问题。某市出租车计费标准如下图所示, 请根据此标准完成一个出租车计费模拟功能,能够计算总费用和列出产生费用 项目详细情况说明,帮助出租车师傅和乘客了解计费标准。
在这里插入图片描述
结合上述表格,可以得出:总车费=里程费用+低速行驶费(或者等候费) +预约叫车服务费+空驶费+夜间收费+燃油附加费。需要收集的数据有:里程数低速行驶时长(早晚高峰期行驶时长和其他时间段行驶时长)、是否预约叫车 (按四小时为标准)、开始乘坐出租车时间出租车到达终点站时间,结合这 些数据和表中提供的标准就可以使用程序进行计算总车费了。

代码

【自己写的】

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Test_1 {
   

	public static void main(String[] args) throws ParseException {
   
		float price_1 = 2.3f;//基本单价
		double price_2 = 0.0;//空驶费
		double price_3 = 0.0;//低速行驶费-非高峰期时段
		double price_4 = 0.0;//低速行驶费-高峰时段
		double price_5 = 13.0;//3km以内收费
		double price_6 = 0.0;//预约叫车服务费
		double nightMoney = 0.0;//夜间费用
		double price_7 = 1.0;//燃油附加费
		
		System.out.println("请用户按要求输入以下数值。");
		Scanner input = new Scanner(System.in);
		
		System.out.println("请您输入总里程数(公里):");
		double distance = input.nextDouble();
		if(distance > 15) {
   
			System.out.println("您是否返回2公里范围内呢?(Yes/No)");
			String f_5 = input.nextLine();
			if(f_5.equals("Yes") || f_5.equals("yes")) {
   
				System.out.println("无需加收空驶费");
			}else {
   
				 price_2 = (double)Math.round((distance - 15)*price_1*(1 + 0.5));
				System.out.println("空驶费为:" + price_2);
			}
		}else if(distance <= 3) {
   
			price_5 = 13;//3公里以内收费
		}
		
		System.out.println("请您输入总乘车时间(h):");
		double time = input.nextDouble();
		
		//是否预约车
		while(true) {
   //while循环目的是用户输入错误提醒他/她重新输入
			System.out.println("您是否预约叫车呢?(Yes/No)");
			String f_1 = input.next();
			if(f_1.equals("Yes")|| f_1.equals("yes")) {
   
				System.out.println("是否在4小时以内预约呢?,请输入Yes/No");
				String f_2 = input.next();
				if(f_2.equals("Yes") || f_2.equals("yes")) {
   
					price_6 = 5;
				}else price_6 = 6;
				break;
			}else if(f_1.equals("No") || f_1.equals("no")){
   
				System.out.println("您没有预约");
				break;
			}else {
   
				System.out.println("您没有按照要求输入!请重新输入。");
				
			}
		}
		
		//低速行驶费
		System.out.println("是否有低速行驶呢?(Yes/No)");
		String f_3 = input.next();
		if(f_3.equals("Yes") || f_3.equals("yes")) {
   
			System.out.println("请输入不含早晚高峰期间低速行驶时长(分钟):");
			int noHeightDriving = input.nextInt();
			System.out.println("请输入早晚高峰期间低速行驶时长(分钟):");
			int heightDriving = input.nextInt();
			
			price_3 = (double)Math.round(noHeightDriving / 5 * 2.3);
			price_4 = (double)Math.round(heightDriving / 5 * 2 * 2.3);
			
		}
		
		//夜间费
		System.out.println("请输入开始乘车时间,24小时制(hh:mm:ss):");
		String firstTime = input.next();
		System.out.println("请输
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛涛同学debug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值