Java学习之流程控制练习

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

package com.day05.homework1;
import java.util.Scanner;
public class Taxt {
     
	public static void main(String[] args) {
     
		int totalMoney=0;//总车费
		double mileageMoney=0;//里程费用
		double totalMileage = 0;//总里程
		double orderMoney=0;//预约费用
		double slowTime = 0;//低速行驶时长
		double slowMoney=0;//低速行驶费用
			
		Scanner input= new Scanner(System.in);
		System.out.println("请输入开始乘车时间:");
		int timeStart = input.nextInt();
		System.out.println("请输入到达目地时间:");
		int timeFinish = input.nextInt();
		int time = timeFinish-timeStart;//路程总时长
		System.out.println("请输入低俗行驶的时长(分钟):");
		slowTime =input.nextInt();
		//低速行驶费用
		if (7<=timeStart&&timeStart<9 || 17<=timeStart&&timeStart<19) {
     
			slowMoney=(slowTime/5)*(2*2.3);
		}else {
     
			slowMoney=(slowTime/5)*(1*2.3);
		}
		//预约费用
		System.out.println("请输入是否预约车");
		String isOrder = input.next();
		if (isOrder.equals("是")) {
     
			System.out.println("是否提前4个小时预约");
			String orderTime = input.next();
			if (orderTime.equals("是")) {
     
				orderMoney=6;
			}else {
     
				orderMoney=5;
			}
		}else {
     
			System.out.println("您没有预约车");
		}
		//行驶路程费用
		System.out.println("输入行驶路程(公里):");
		totalMileage =input.nextInt();
		
		if (totalMileage<=3) {
     //行驶在3公里范围内
			totalMoney=13;
		}else if (totalMileage>15) {
     //里程超过15公里
			//白天费用
			mileageMoney =(15*2.3)+(totalMileage-15)*2.3*(1+0.5);
			//夜间费用
			if (23<=timeStart&&0<=timeStart&&timeStart<5) {
     
				mileageMoney =(15*2.3)+(totalMileage-15)*2.3*(1+0.5)*(totalMileage*2.3*(1+0.2));
			}
		}else if (totalMileage<15) {
     //里程在3-15公里内
			//白天费用
			mileageMoney=totalMileage*2.3;
			//夜间费用
			if (23<=timeStart&&0<=timeStart&&timeStart<5) {
     
				mileageMoney=totalMileage*2.3+totalMileage*2.3*(1+0.2);
			}
		}	
		
		//总共费用
		totalMoney=(int)(slowMoney+orderMoney+mileageMoney);
		System.out.println("您本次的费用为:"+totalMoney+"元");
	}
}

2、计算应缴金额
商场根据会员积分打折:
2000 分以内打 9 折,
4000 分以内打 8 折,
8000 分以内打 7.5 折,
8000 分以上打 7 折,使用 if-else-if 结构,实现手动输入购物金额和积分,计算出应缴金额:

package com.day05.homework3;
import java.util.Scanner;
public class Market {
     
	public static void main(String[] args) {
     
		double totalMoney=0;//总应缴金额
		int money=0;//购买金额
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入你购买的金额:");
		if(scanner.hasNextInt()) {
     
			money = scanner.nextInt();
		}else {
     
			System.out.println("请正确输入金额:");
		}
		System.out.println("请输入你的积分:");
		if(scanner.hasNextInt()) {
     
			int integral =scanner.nextInt();
			if(integral<=2000) {
     
				totalMoney=money*0.9;
			}else if(integral<=4000) {
     
				totalMoney=money*0.8;
			}else if(integral<=8000) {
     
				totalMoney=money*0.75;
			}else {
     
				totalMoney=money*0.7;
			}
		}else {
     
			System.out.println("请正确输入积分");
		}
		System.out.println("你应缴的费用为:"+totalMoney);
	}

}

3 、计算该年该月天数一年中有 12 个月,而每个月的天数是不一样的。其中大月 31 天,分别为1,3,5,7,8,10,12 月,小月 30 天,分别 为 4,6,9,11 月。还有二月比较特殊,平年的二月只有 28 天,而闰年的二月有 29 天,由用户在控制台输入年份和月份,程序计算该年该月的天数。

package com.day05.homework3;
import java.util.Scanner;
public class TestDay {
     
	public static void main(String[] args) {
     
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入四位数的年份:");
		int year=scanner.nextInt();
		System.out.println("请输入年份:");
		if(scanner.hasNextInt()) {
     
			int month=scanner.nextInt();
			switch(month) {
     
				case 1:
				case 3:
				case 5:
				case 7:
				case 8:
				case 10:
				case 12:
					System.out.println("该月份有"+31+"天");
					break;
				case 4:
				case 6:
				case 9:
				case 11:
					System.out.println("该月份有"+30+"天");
					break;
				case 2:
					if(year%4==0&&year%100!=0||year%400==0) {
     
						System.out.println("该月份有"+29+"天");
					}else {
     
						System.out.println("该月份有"+28+"天");
					}
			}
		}
	}

}

4 、图形打印任务在控制台中,编写三个 Demo,分别输出如下图形:
Java学习之流程控制练习_第2张图片
图一:

package com.day05.homework3;
public class Demo1 {
     
	public static void main(String[] args) {
     
		for(int i=0;i<5;i++) {
     
			for(int j=0;j<i+1;j++) {
     
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

图二:

package com.day05.homework3;
public class Demo2 {
     
	public static void main(String[] args) {
     
		for(int i=0;i<5;i++) {
     
			for(int j=i+1;j<=5;j++) {
     
				System.out.print("*");
			}
			System.out.println();
		}	
	}
}

图三:

package com.day05.homework3;
public class Demo3 {
     
	public static void main(String[] args) {
     
		for(int i=0;i<5;i++) {
     
			for(int j=i+1;j<5;j++) {
     
				System.out.print(" ");
			}
			for(int j=1;j<=i*2+1;j++) {
     
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

5、表 、打印九九乘法表 ,效果如图:
Java学习之流程控制练习_第3张图片

package com.day05.homework3;
public class Multiplication {
     
	public static void main(String[] args) {
     
		for(int i=1;i<=9;i++) {
     
			for(int j=1;j<=i;j++) {
     
				System.out.print(j+"*"+i+"="+i*j+"\t");
			}
			System.out.println();
		}
	}
}

6 、打印三位数中的所有水仙花数
所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。
如: 153 是一个水仙花数,因为 153= 1³+5³+3³

package com.day05.homework3;
import java.util.Scanner;
public class Daffodils {
     
	public static void main(String[] args) {
     
		System.out.println("三位数的水仙花数:");
		for (int i = 100; i < 1000; i++) {
     
			int a = i%10;//个位数
			int b = i%100/10;//十位数
			int c = i%1000/100;//百位数
			if(a*a*a+b*b*b+c*c*c==i) {
     
				System.out.println(i);
			}
		}
	}
}

你可能感兴趣的:(java,java,后端)