12 【程序 12 计算奖金】
题目:企业发放的奖金根据利润提成。利润(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%提成,从键盘输 入当月利润 I,求应发放奖金总数?
程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
package cskaoyan; public class cskaoyan12 {
@org.junit.Test
public void count() {
java.util.Scanner in = new java.util.Scanner(System.in);
double profit = in.nextDouble();
double bonus = 0;
double percent1 = 0.1;
double percent2 = 0.075;
double percent3 = 0.05;
double percent4 = 0.03;
double percent5 = 0.015;
double percent6 = 0.01; if (profit <= 100000) {
bonus = profit * percent1;
} else if (profit <= 200000) {
bonus = 100000 * percent1 + (profit - 100000) * percent2;
} else if (profit <= 400000) {
bonus = 100000 * percent1 + (200000 - 100000) * percent2 + (profit - 200000) * percent3;
} else if (profit <= 600000) {
bonus = 100000 * percent1 + (200000 - 100000) * percent2 + (400000 - 200000) * percent3
+ (profit - 400000) * percent4;
} else if (profit <= 1000000) {
bonus = 100000 * percent1 + (200000 - 100000) * percent2 + (400000 - 200000) * percent3
+ (600000 - 400000) * percent4 + (profit - 600000) * percent5;
} else {
bonus = 100000 * percent1 + (200000 - 100000) * percent2 + (400000 - 200000) * percent3
+ (600000 - 400000) * percent4 + (1000000 - 600000) * percent5 + (profit - 1000000) * percent6;
} System.out.println(bonus);
in.close();
}
}