/*
Copyright(C)计算机与控制工程学院学生
作者:刘慧艳
完成日期:2014.04.15
版本号:V1.0
问题描述:个人所得税计算器
*/
#include <iostream>
using namespace std;
int main()
{
double offset,tax=0,netincome=0;
double salary,value,rate;
int step;
cout<<"请输入您本月的收入(元):";
cin>>salary;
value=salary-3500;
cout<<value;
if(value<=0.0)
tax=0.0;//不需要缴税
else
{
//这一组if用来确定缴税的档次
if(value<=1500)
step=1;
else if(value<=4500)
step=2;
else if(value<=9000)
step=3;
else if(value<=35000)
step=4;
else if(value<=55000)
step=5;
else if(value<=80000)
step=6;
else
step=7;
//根据确定的档次,得到税率和速算扣除数
switch(step)
{
case 1:
rate=0.03,offset=0.0;break;
case 2:
rate=0.1,offset=105.0;break;
case 3:
rate=0.2,offset=555.0;break;
case 4:
rate=0.25,offset=1005.0;break;
case 5:
rate=0.30,offset=2755.0;break;
case 6:
rate=0.35,offset=5505.0;break;
case 7:
rate=0.45,offset=13505.0;
}
tax=(value*rate-offset);
}
netincome=salary-tax;
cout<<"您本月应交税:"<<tax<<"元"<<endl;
cout<<"您本月税后收入:"<<netincome<<"元"<<endl;
return 0;
}
一分钱难倒英雄汉,一个符号毁了整个程序啊真是。写这个程序的时候思路很清晰,写的也很顺利,本来以为一运行就顺利完成了。但万万没想到啊,输入了一个8500,结果居然是交税0元!自己改了一中午也没找错在哪。找了王颖同学来又整整找了二十分钟错才发现原来就掉了最开始value的一个小于号。幸亏是有兄弟不孤单啊,不然真找疯了。