Rust语言编程实例100题-002
题目:企业发放的奖金根据利润提成。
- 利润(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,求应发放奖金总数?
程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
知识点:if条件判断,数据运算
// 输入数据
let mut input_data = String::new();
// 最后的利润
let mut bonus: f64 = 0.0;
println!("请输入您的利润:");
// 接收输入数据
std::io::stdin().read_line(&mut input_data).expect("read_line failed!");
// 判断输入的数据是否符合要求
match input_data.trim().parse::<i32>() {
Ok(data) => {
let bonus1: f64 = 100_000.0 * 0.1;
let bonus2: f64 = bonus1 + 100_000.0 * 0.075;
let bonus4: f64 = bonus2 + 100_000.0 * 0.05;
let bonus6: f64 = bonus4 + 100_000.0 * 0.03;
let bonus10: f64 = bonus6 + 400_000.0 * 0.015;
// 分档计算
if data <= 100_000 {
bonus = f64::from(data) * 0.1;
} else if data <= 200_000 {
bonus = bonus1 + (f64::from(data) - 100_000.0) * 0.075;
} else if data <= 400_000 {
bonus = bonus2 + (f64::from(data) - 200_000.0) * 0.05;
} else if data <= 600_000 {
bonus = bonus4 + (f64::from(data) - 400_000.0) * 0.03;
} else if data <= 1_000_000 {
bonus = bonus6 + (f64::from(data) - 600_000.0) * 0.015;
} else if data > 1_000_000 {
bonus = bonus10 + (f64::from(data) - 1_000_000.0) * 0.01;
}
// 最后保留2位小数
println!("应发奖金总数: bonus = {:.2} 元", bonus);
}
Err(_) => {
println!("你输入的 {} 不是一个整数!", input_data.trim())
}
};
程序执行结果:
实验数据:34534005
输出结果:
请输入您的利润:
34534005
应发奖金总数: bonus = 366840.05 元
网友评论