/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 作 者:赵冠哲
* 完成日期:2012 年 10 月 24 日
* 版 本 号:v1.0
* 输入描述:个人月收入总额
* 问题描述:按2011年9月1日起我国调整的个人所得税征收办法,起征点为3500元,超出部分按以下7级计算:
* 1 超过0至1500 税率3% 速算扣除数0
* 2 超过1500元至4500元的部分 税率10% 速算扣除数105
* 3 超过4500元至9000元的部分 税率20% 速算扣除数555
* 4 超过9,000元至35,000元的部分 税率25% 速算扣除数1005
* 5 超过35,000元至55,000元的部分 税率30% 速算扣除数2755
* 6 超过55,000元至80,000元的部分 税率35% 速算扣除数5505
* 7 超过80,000以上 税率45% 速算扣除数13505
* 个人所得税=(收入总额-3500)*税率-速算扣除数
* 程序输出:应缴税款和税后收入
* 问题分析:先判断超出多少,然后根据设定的值运算
* 算法设计:
*/
#include <iostream>
using namespace std;
int main()
{
double dSalary,dTax=0,dNetIncome=0,rate,cut,residue;
int a;
cout<<"请输入您本月的收入总额(元):";
cin>>dSalary;
residue=dSalary-3500;
if(residue<=0)
dTax=0;
else
{
if(residue<=1500)
a=1;
else if(residue<=4500)
a=2;
else if(residue<=9000)
a=3;
else if(residue<=35000)
a=4;
else if(residue<=55000)
a=5;
else if(residue<=80000)
a=6;
else
a=7;
switch(a)
{
case 1:
rate=0.03,cut=0;break;
case 2:
rate=0.1,cut=105;break;
case 3:
rate=0.2,cut=555;break;
case 4:
rate=0.25,cut=1005;break;
case 5:
rate=0.3,cut=2755;break;
case 6:
rate=0.35,cut=13505;break;
case 7:
rate=0.45,cut=13505;break;
}
dTax=residue*rate-cut;
}
dNetIncome=dSalary-dTax;
cout<<"您本月应缴个人所得税"<<dTax<<"元,税后收入是"<<dNetIncome<<"元。\n";
cout<<"依法纳税,共享繁荣。谢谢使用!\n";
return 0;
}
运行结果:
心得体会:
个人觉得这个任务相对较难,想了很久,不断的修改,一个小小的字符反复检查修改了很多遍。最耗时间的是自己把“}”给丢了,导致只能算出超过3500元的税额,低于3500的不能算出。觉得C++有点难度了,做错的地方也多了起来。有点怀疑自己的能力,到底自己适不适合学C++,哎,没有回头路了,加油。
知识点总结:
学会使用switch语句。确定分支。