一问题与分析
/*
* 文件名称:yue.obj
* 作 者:汪荣悦
* 完成日期:2016 年 4月 7日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分: 关于个人所得税的有关背景知识
计算方法:个人所得税=(收入总额-3500)*税率-速算扣除数
我国个人所得税起征点基数为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
* 输入描述:无
* 问题描述:个人所得税计算器
* 程序输出:编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
using namespace std;
int main( )
{
double dRate,dTax=0,dNetIncome=0;
int dSalary,b;//b为速算扣除数
cout<<"请输入您本月的收入总额(元):";
cin>>dSalary;
// 下面求解应缴个人所得税dTax和税后收入dNetIncome
if(dSalary<3500)
{
dTax=0;
dNetIncome=dSalary;
}
else
{
if((dSalary-3500)<9001)
{
switch((dSalary-3500)/1500)
{
case 0: ;
case 1:dRate=0.03,b=0; break;
case 2: ;
case 3:dRate=0.10,b=105; break;
case 4: ;
case 5: ;
case 6:dRate=0.20,b=555; break;
}
}
else
{
if((dSalary-3500)<35001)
dRate=0.25,b=1005;
if((dSalary-3500)<55000)
dRate=0.30,b=2755;
if((dSalary-3500)<80000)
{
dRate=0.35,b=5505;
}
else
{
dRate=0.45,b=13505;
}
}
dTax=(dSalary-3500)*dRate-b;
dNetIncome =dSalary-dTax;
}
cout<<"您本月应缴个人所得税 "<<dTax<<" 元,税后收入是 "<<dNetIncome<<" 元。\n";
cout<<"依法纳税,共享繁荣。谢谢使用!\n";
return 0;
}
二 测试用例
三 心得体会
这次用if语句的嵌套和switch语句配合使用,编程编了好久,错误也出现了很多,感觉改错误有点难。
四 总结
(1)switch语句中必须用int型常量;
(2)运算符运算时,要注意运算符的优先级,必要时要记得添加();
(3)用if语句的嵌套时,记得{ }的配套