编辑代码

//switch语句实现
#include <iostream>
using namespace std;

int main()
{
    double profit = 0; // 利润
    double bonus = 0; // 奖金
    int grade = 0; // 利润等级
    cout << "请输入当月利润(元):";
    cin >> profit;
    grade = profit / 100000; // 利润除以10万得到等级
    if (grade > 10) // 如果等级大于10,说明利润超过100万
    {
        grade = 10; // 将等级设为10
    }
    switch (grade) // 根据等级计算奖金
    {
        case 0: // 利润低于或等于10万
            bonus = profit*0.1; // 奖金为利润的10%
            break;
        case 1: // 利润高于10万,低于或等于20万
            bonus = 100000 * 0.1 + (profit - 100000) * 0.075; // 奖金为10万的10%加上超过10万的部分的7.5%
            break;
        case 2: // 利润高于20万,低于或等于40万
        case 3: // 利润高于20万,低于或等于40万
            bonus = 100000 * 0.1 + 100000 * 0.075 + (profit - 200000) * 0.05; // 奖金为20万的奖金加上超过20万的部分的5%
            break;
        case 4: // 利润高于40万,低于或等于60万
        case 5: // 利润高于40万,低于或等于60万
            bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (profit - 400000) * 0.03; // 奖金为40万的奖金加上超过40万的部分的3%
            break;
        case 6: // 利润高于60万,低于或等于100万
        case 7: // 利润高于60万,低于或等于100万
        case 8: // 利润高于60万,低于或等于100万
        case 9: // 利润高于60万,低于或等于100万
            bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (profit - 600000) * 0.015; // 奖金为60万的奖金加上超过60万的部分的1.5%
            break;
        case 10: // 利润高于100万
            bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (profit - 1000000) * 0.01; // 奖金为100万的奖金加上超过100万的部分的1%
            break;
    }
    cout << "应发奖金为:" << bonus << "元" << endl;
    return 0;
}