问题及代码:
/*
*文件名称:个人所得税计算器
*作者:刘涛
完成日期:2016.3.12
*
*问题描述:编写选择结构程序,输入个人月收入总额,计算出他本月应缴纳税款和税后收入
*输入描述:输入月收入
程序输出:缴纳税款,税后收入
*/
#include <iostream>
using namespace std;
int main()
{
double dSalary,dTax=0,dNetLncome=0;//dTax为个人所得税,dNetLncome为税后收入
double dValue;
int t;
cout<<"请输入你本月的收入总和(元):";
cin>>dSalary;
dValue=dSalary-1500;
t=(dValue<1500)+(dValue<4500)+(dValue<9000)+(dValue<35000)+(dValue<55000)+(dValue<80000);
switch(t)
{
case 6:dTax=(dSalary-1500)*0.03-0.0;dNetLncome=dSalary-dTax;break;
case 5:dTax=(dSalary-1500)*0.1-105.0;dNetLncome=dSalary-dTax;break;
case 4:dTax=(dSalary-1500)*0.2-555.0;dNetLncome=dSalary-dTax;break;
case 3:dTax=(dSalary-1500)*0.25-1005.0;dNetLncome=dSalary-dTax;break;
case 2:dTax=(dSalary-1500)*0.30-2755.0;dNetLncome=dSalary-dTax;break;
case 1:dTax=(dSalary-1500)*0.35-5505.0;dNetLncome=dSalary-dTax;break;
default:dTax=(dSalary-1500)*0.45-13505.0;dNetLncome=dSalary-dTax;break;
}
cout<<"您本月应交个人所得税为:"<<dTax<<"元,税后收入是:"<<dNetLncome<<"元。\n";
cout<<"依法纳税,共享繁荣,谢谢使用!\n";
return 0;
}
运行结果:
<img src="https://img-blog.csdn.net/20160312141713792?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
知识点总结:主演考察if语句的嵌套和switch语句的使用,学会了利用t=(dValue<1500)+(dValue<4500)+(dValue<9000)+(dValue<35000)+(dValue<55000)+(dValue<80000);这一方法有效的提高了工作效率,节约了时间。
学习心得:一开始想用switch语句,可是发现case的情况太多了,根本无法一一列举出来,而用了上述的方法既高效又实用。
中间的时候还忘了看题目条件,忘了减去速算扣除数,导致了程序的错误。