一、问题及代码
/*
* 文件名称:Ex1-1.cpp
* 作 者:刘俊博
* 完成日期:2017 年 3 月 24 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:个人收入
* 问题描述:个人所得税计算器
* 程序输出:个人所得税和税后收入
* 问题分析:
* 算法设计:
*/
#include<iostream>
using namespace std;
int main()
{
double dSalary,dTax=0,dNetIncome=0;
int a,b;
cout<<"请输入您本月的收入总额(元):\n";
cin>>dSalary;
a=dSalary-3500;
if(a<=0)
b=1;
else if(a<=1500)
b=2;
else if(a<=4500)
b=3;
else if(a<=9000)
b=4;
else if(a<=35000)
b=5;
else if(a<=55000)
b=6;
else if(a<=80000)
b=7;
else
b=8;
switch(b)
{
case 1:
cout<<"您本月应缴纳的个人所得税"<<dTax<<"元,税后收入是"<<dSalary<<"元。\n";break;
case 2:{
dTax=a*0.03;
dNetIncome=dSalary-dTax;
cout<<"您本月应缴纳的个人所得税"<<dTax<<"元,税后收入是"<<dNetIncome<<"元。\n";break;}
case 3:{
dTax=a*0.1-105;
dNetIncome=dSalary-dTax;
cout<<"您本月应缴纳的个人所得税"<<dTax<<"元,税后收入是"<<dNetIncome<<"元。\n";break;}
case 4:{
dTax=a*0.2-555;
dNetIncome=dSalary-dTax;
cout<<"您本月应缴纳的个人所得税"<<dTax<<"元,税后收入是"<<dNetIncome<<"元。\n";break;}
case 5:{
dTax=a*0.25-1005;
dNetIncome=dSalary-dTax;
cout<<"您本月应缴纳的个人所得税"<<dTax<<"元,税后收入是"<<dNetIncome<<"元。\n";break;}
case 6:{
dTax=a*0.30-2755;
dNetIncome=dSalary-dTax;
cout<<"您本月应缴纳的个人所得税"<<dTax<<"元,税后收入是"<<dNetIncome<<"元。\n";break;}
case 7:{
dTax=a*0.35-5505;
dNetIncome=dSalary-dTax;
cout<<"您本月应缴纳的个人所得税"<<dTax<<"元,税后收入是"<<dNetIncome<<"元。\n";break;}
case 8:{
dTax=a*0.45-13505;
dNetIncome=dSalary-dTax;
cout<<"您本月应缴纳的个人所得税"<<dTax<<"元,税后收入是"<<dNetIncome<<"元。\n";break;}
}
cout<<"依法纳税,共享繁荣。谢谢使用!\n";
return 0;
}
二、运行结果
三、心得体会:switch语句不能使用浮点型来选择,多次错误后才知道,以后一定多加注意。
四、知识点总结:switch语句可以用来选择,而且后面一定要加break语句,不然会出现一些不想看到的结果。