用C++写,企业发放的奖金来自利润提成。利润 i 低于或等于10万元的,可提成10%为奖 金;利润 i 高于10万元,低于或等于20万元(100000< i ≤200000时,低于10万元的部分按10%提成,高于10万元的部分可提成7.5%);200000< i ≤400000时,低于20万的部分仍按上述办法提成(下同),高于20万元的部分按5%提成;400000<≤600000时,高于40万元的部分按3%提成;600000< i ≤1000000时,高于60万元的部分按1.5%提成; i >1000000时,超过100万元的部分按1%提成。从键盘输入当月利润 i ,求应发奖金总数。要求:(1)用 if 语句编程序; (2)用 switch 语句编程序。
时间: 2023-11-28 08:48:34 浏览: 130
用 if 语句编程序:
```c++
#include <iostream>
using namespace std;
int main() {
double i, bonus;
cout << "请输入当月利润:";
cin >> i;
if (i <= 100000) {
bonus = i * 0.1;
} else if (i <= 200000) {
bonus = 10000 + (i - 100000) * 0.075;
} else if (i <= 400000) {
bonus = 17500 + (i - 200000) * 0.05;
} else if (i <= 600000) {
bonus = 27500 + (i - 400000) * 0.03;
} else if (i <= 1000000) {
bonus = 33500 + (i - 600000) * 0.015;
} else {
bonus = 39500 + (i - 1000000) * 0.01;
}
cout << "应发奖金总数为:" << bonus << endl;
return 0;
}
```
用 switch 语句编程序:
```c++
#include <iostream>
using namespace std;
int main() {
double i, bonus;
cout << "请输入当月利润:";
cin >> i;
int level = (i - 1) / 100000; // 利润水平
switch (level) {
case 0:
bonus = i * 0.1;
break;
case 1:
bonus = 10000 + (i - 100000) * 0.075;
break;
case 2:
case 3:
bonus = 17500 + (i - 200000) * 0.05;
break;
case 4:
case 5:
bonus = 27500 + (i - 400000) * 0.03;
break;
case 6:
case 7:
case 8:
case 9:
bonus = 33500 + (i - 600000) * 0.015;
break;
default:
bonus = 39500 + (i - 1000000) * 0.01;
break;
}
cout << "应发奖金总数为:" << bonus << endl;
return 0;
}
```
注意,switch 语句中 case 后面的语句块是可以合并的,所以可以将利润在 200000 和 400000 之间的情况合并在一起,类似地,利润在 600000 和 1000000 之间的情况也可以合并在一起。
阅读全文