第9周任务2-个人所得税计算器

#include <iostream>
using namespace std;
int main()
{
    double dSalary,dTax,dNetIncome;
    double dValue;   //在模板基础上加一个变量,表示超出起征点的收入
    double dRate, dOffset;  //分别表示税率和速算扣除数
	int iStep;  //加入中间量“档次”,便于计算 
    cout<<"请输入您本月的收入总额(元):";
    cin>>dSalary;
    dValue=dSalary-3500;
    if(dValue<=0.0)    
       dTax=0.0;   
    else
    {
	 if (dValue<=1500)
		 iStep=1;
	 else if (dValue<=4500)
		 iStep=2;
     else if (dValue<=9000)
		 iStep=3;
     else if (dValue<=35000)
		 iStep=4;
	 else if (dValue<=55000)
		 iStep=5;
	 else if (dValue<=80000)
		 iStep=6;
	 else 
		 iStep=7;

     switch (iStep)  
	 {
            case 1: dRate=0.03, dOffset=0.0;    break; 
            case 2: dRate=0.1,  dOffset=105.0;  break;
            case 3: dRate=0.2,  dOffset=555.0;  break;
            case 4: dRate=0.25, dOffset=1005.0; break;
            case 5: dRate=0.3,  dOffset=2755.0; break;
            case 6: dRate=0.35, dOffset=5055.0; break;
            case 7: dRate=0.45, dOffset=13505.0;
	 }
       dTax = dValue * dRate - dOffset;
 }
    dNetIncome = dSalary-dTax;
    cout<<"您本月应缴个人所得税 "<<dTax<<" 元,税后收入是 "<<dNetIncome<<" 元。\n";
    cout<<"依法纳税,共享繁荣。谢谢使用!\n";
    return 0;
}

 

运行结果:

第9周任务2-个人所得税计算器_第1张图片

第9周任务2-个人所得税计算器_第2张图片

第9周任务2-个人所得税计算器_第3张图片

心得体会:

       课文原文有说:“‘case常量表达式’只是起语句标号作用,并不是在该处进行条件判断。”在这一点上,switch语句不同于if-else语句。case后面只是一个常量表达式,而不应出现条件表达式。故而加入iStep作为中间量,便于switch语句的表达。

你可能感兴趣的:(第9周任务2-个人所得税计算器)