代码实现:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元

import java.util.Scanner;

/*
 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;
 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;
 20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;
 60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,
 从键盘输入当月l利润I,求应发放奖金总数? 
 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。*/

public class Test12 {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		System.out.println("请输入利润(注意 : 利润为整数,单位:元)");
		long profit = 0;
		while (true) {
			String s = sc.nextLine();
			try {
				profit = Integer.parseInt(s);
				break;
			} catch (NumberFormatException e) {
				System.out.println("录入错误,请重新输入整数(单位:元):");
			}
		}
		System.out.println("应发奖金:" + bonus(profit));
	}

	private static long bonus(long profit) {
		long prize = 0;
		long profit_sub = profit;
		if (profit > 1000000) {
			profit = profit_sub - 1000000;
			profit_sub = 1000000;
			prize += profit * 0.01;
		}
		if (profit > 600000) {
			profit = profit_sub - 600000;
			profit_sub = 600000;
			prize += profit * 0.015;
		}
		if (profit > 400000) {
			profit = profit_sub - 400000;
			profit_sub = 400000;
			prize += profit * 0.03;
		}
		if (profit > 200000) {
			profit = profit_sub - 200000;
			profit_sub = 200000;
			prize += prize * 0.05;
		}
		if (profit > 100000) {
			profit = profit_sub - 100000;
			profit_sub = 100000;
			prize += profit * 0.075;
		}
		prize += profit_sub * 0.1;
		return prize;
	}
}

 

posted on 2017-03-09 19:47  LoaderMan  阅读(2676)  评论(0编辑  收藏  举报

导航