第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;
}

 

运行结果:

心得体会:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值