一、问题及代码
项目1:个人所得税计算器
编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:关于个人所得税的有关背景知识)。
自选if语句的嵌套或/和switch语句完成程序设计;
/* 文件名称:个人所得税计算器
* 作 者: 李钦
* 完成日期: 2016 年 4 月 5 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:
* 问题描述: 略
* 程序输出: 略
* 问题分析: 略
* 算法设计: if(),else if()
*/
#include<iostream>
using namespace std;
int main()
{
double dSalary,dTax=0,dNetIncome=0;
cout<<"请输入您本月的收入总额(元):";
cin>>dSalary;
if(dSalary<3500)
{
dTax=0;
dNetIncome=dSalary-dTax;
}
else if(1500>dSalary-3500)
{
dTax=(dSalary-3500)*0.03;
dNetIncome=dSalary-dTax;
}
else if(4500>dSalary-3500)
{
dTax=(dSalary-3500)*0.10-105;
dNetIncome=dSalary-dTax;
}
else if(9000>dSalary-3500)
{
dTax=(dSalary-3500)*0.20-555;
dNetIncome=dSalary-dTax;
}
else if(35000>dSalary-3500)
{
dTax=(dSalary-3500)*0.25-1005;
dNetIncome=dSalary-dTax;
}
else if(55000>dSalary-3500)
{
dTax=(dSalary-3500)*0.3-2755;
dNetIncome=dSalary-dTax;
}
else if(80000>dSalary-3500)
{
dTax=(dSalary-3500)*0.35-5505;
dNetIncome=dSalary-dTax;
}
else if(80000<dSalary-3500)
{
dTax=(dSalary-3500)*0.45-13505;
dNetIncome=dSalary-dTax;
}
cout<<"您本月应缴个人所得税"<<dTax<<"元,税后收入是"<<dNetIncome<<endl;
cout<<"依法纳税,共享繁荣。谢谢使用!\n";
return 0;
}
二、运行结果:
三、心得体会:
1,了解if else语句,switch语句,不代表就会用,也不一定能熟练使用,很多问题都是敲代码时才发现的。
会敲代码,可以报错后慢慢调试,才可以学到语句的精髓。
2,语句框架是程序的躯体,算法才是程序的灵魂!
刚开始敲出来没有错,可运行结果老不如人意,反复调试后才发现算法有误。
3,代码要追求简洁,同样的问题用易懂简单的语句写,避免重复累赘的部分。
四、知识点总结
1,if(),else。if(),相当于符合条件1()的执行,不然不符合条件1()但符合条件2()的执行。
这种特性避免了几个条件间相同部分的编写。
2,switch(x) case x,()里可以加字符型整型,也可以加关系表达式运算表达式,case跟的字符类型与()的类型相同。
开关语句中switch() case()里不能写变量,写了就会报错case expression not constant
只能写定量!!!
我就在这里搞了好久,百度知道不能加变量后,两相权衡,果断弃switch,选if else