1. #include <iostream>
  2. using namespace std;
  3. int main( )
  4. {
  5. double dSalary,dTax=0,dNetIncome=0;  //请欣符合匈牙利命名法的变量名
  6. double dValue;   //在模板基础上加一个变量,表示超出起征点的收入
  7. cout<<"请输入您本月的收入总额(元):";
  8. cin>>dSalary;
  9. dValue=dSalary-3500;   //在起征点基础上考虑纳税
  10. if(dValue<=0.0)
  11. dTax=0.0;
  12. else
  13. {
  14. if(dValue<=1500)
  15. dTax=dValue*0.03-0.0;   //直接根据税率和速算扣除数计算
  16. else if(dValue<=4500)
  17. dTax=dValue*0.10-105.0;
  18. else if(dValue<=9000)
  19. dTax=dValue*0.20-555.0;
  20. else if(dValue<=35000)
  21. dTax=dValue*0.25-1005.0;
  22. else if(dValue<=55000)
  23. dTax=dValue*0.30-2755.0;
  24. else if(dValue<=80000)
  25. dTax=dValue*0.35-5505.0;
  26. else
  27. dTax=dValue*0.45-13505.0;
  28. }
  29. dNetIncome=dSalary-dTax;   //计算得到
  30. cout<<"您本月应缴个人所得税 "<<dTax<<" 元,税后收入是 "<<dNetIncome<<" 元。\n";
  31. cout<<"依法纳税,共享繁荣。谢谢使用!\n";
  32. return 0;
  33. }

参考2:在参考1基础上做些改进的解法

[cpp] view plain copy print?

  1. #include <iostream>
  2. using namespace std;
  3. int main( )
  4. {
  5. double dSalary,dTax = 0,dNetIncome = 0;  //请欣符合匈牙利命名法的变量名
  6. double dValue;   //在模板基础上加一个变量,表示超出起征点的收入
  7. double dRate, dOffset;  //分别表示税率和速算扣除数
  8. cout<<"请输入您本月的收入总额(元):";
  9. cin>>dSalary;
  10. dValue = dSalary - 3500;   //在起征点基础上考虑纳税
  11. if(dValue <= 0.0)
  12. dTax = 0.0;  //不需要交税
  13. else
  14. {
  15. if(dValue <= 1500)
  16. dRate = 0.03, dOffset = 0.0;   //这一组if语句用于得到税率和速算扣除数
  17. else if(dValue <= 4500)
  18. dRate = 0.1, dOffset = 105.0;
  19. else if(dValue <= 9000)
  20. dRate = 0.2, dOffset = 555.0;
  21. else if(dValue <= 35000)
  22. dRate = 0.25, dOffset = 1005.0;
  23. else if(dValue <= 55000)
  24. dRate = 0.3, dOffset = 2755.0;
  25. else if(dValue <= 80000)
  26. dRate = 0.35, dOffset = 5505.0;
  27. else
  28. dRate = 0.45, dOffset = 13505.0;
  29. dTax = dValue * dRate - dOffset;  //计算所得税,体会将“确定参数”与“计算”分开的好处:思路更明晰,不易在计算公式上犯大错
  30. }
  31. dNetIncome = dSalary-dTax;        //计算税后收入
  32. cout<<"您本月应缴个人所得税 "<<dTax<<" 元,税后收入是 "<<dNetIncome<<" 元。\n";
  33. cout<<"依法纳税,共享繁荣。谢谢使用!\n";
  34. return 0;
  35. }

参考3:下面是用switch语句完成的程序。如果感觉这样做还不如直接用if,这种看法也是对的,这种解法的意义也就仅在于练习switch了。

[cpp] view plain copy print?

  1. #include <iostream>
  2. using namespace std;
  3. int main( )
  4. {
  5. double dSalary,dTax = 0,dNetIncome = 0;  //请欣符合匈牙利命名法的变量名
  6. double dValue;   //在模板基础上加一个变量,表示超出起征点的收入
  7. double dRate, dOffset;  //分别表示税率和速算扣除数
  8. int iStep;       //用于确定交税的“档次”
  9. cout<<"请输入您本月的收入总额(元):";
  10. cin>>dSalary;
  11. dValue = dSalary - 3500;   //在起征点基础上考虑纳税
  12. if(dValue <= 0.0)
  13. dTax = 0.0;  //不需要交税
  14. else
  15. {
  16. //这一组if语句确定交税的档次
  17. if(dValue <= 1500)
  18. iStep = 1;
  19. else if(dValue <= 4500)
  20. iStep = 2;
  21. else if(dValue <= 9000)
  22. iStep = 3;
  23. else if(dValue <= 35000)
  24. iStep = 4;
  25. else if(dValue <= 55000)
  26. iStep = 5;
  27. else if(dValue <= 80000)
  28. iStep = 6;
  29. else
  30. iStep = 7;
  31. //根据确定的档次,得到税率和速算扣除数,这样处理和问题中给出的列表形式有较好的对应
  32. //如果按照教材中的例子,通过类似c=s/n(n最大取500)的形式得到switch的<表达式>,下面的清单得列的很长
  33. switch(iStep)
  34. {
  35. case 1:
  36. dRate = 0.03, dOffset = 0.0;  break;
  37. case 2:
  38. dRate = 0.1, dOffset = 105.0;  break;
  39. case 3:
  40. dRate = 0.2, dOffset = 555.0;   break;
  41. case 4:
  42. dRate = 0.25, dOffset = 1005.0;  break;
  43. case 5:
  44. dRate = 0.3, dOffset = 2755.0;   break;
  45. case 6:
  46. dRate = 0.35, dOffset = 5505.0;   break;
  47. case 7:
  48. dRate = 0.45, dOffset = 13505.0;
  49. }
  50. dTax = dValue * dRate - dOffset;  //计算所得税,体会将“确定参数”与“计算”分开的好处:思路更明晰,不易在计算公式上犯大错
  51. }
  52. dNetIncome = dSalary-dTax;        //计算税后收入
  53. cout<<"您本月应缴个人所得税 "<<dTax<<" 元,税后收入是 "<<dNetIncome<<" 元。\n";
  54. cout<<"依法纳税,共享繁荣。谢谢使用!\n";
  55. return 0;
  56. }

C++第3次实验(基础班)—选择结构程序设计(参考答案)-项目1:个人所得税计算器相关推荐

  1. c语言实验选择结构程序设计答案,实验2:选择结构程序设计 (答案)

    实验2:选择结构程序设计 一.实验目的 1.掌握关系.逻辑运算符及其表达式的正确使用. 2.掌握if语句和switch语句的使用. 3.了解vc++C程序调试的基本方法 二.实验环境 turbo c2 ...

  2. 周信东c语言实验二实验报告,实验三 循环结构程序设计参考答案

    C语言实操课循环结构答案 实验三 循环结构程序设计(参考答案) 1.设计程序sy3-1.c ,要求打印小学九九乘法表. 算法分析: 根据九九乘法表可知,该表共有9行,第i行有i个表达式,而且表达式中的 ...

  3. C语言 第五章 选择结构 答案,c语言第五章 选择结构程序设计(习题册答案).doc

    第五章 选择结构程序设计 基础练习(A) 一.填空题 1.关系表达式的运算结果是 逻辑 值.C语言没有逻辑型数据,以 1 代表"真",以 0代表"假". 2.逻 ...

  4. c语言选择结构程序设计实验报告6,c语言-选择结构程序设计实验报告4.doc

    c语言-选择结构程序设计实验报告4.doc 实验报告 实验题目:选择结构程序设计 实验目的: 了解C语言表示逻辑量的方法(以0代表"假"以非0代表"真"). 学 ...

  5. c语言选择结构程序设计报告,《C语言程序设计》实验报告选择结构程序设计.doc...

    <C语言程序设计>实验报告选择结构程序设计.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会 ...

  6. 桂 林 理 工 大 学实 验 报 告实验四 选择结构程序设计

    桂 林 理 工 大 学 实  验  报  告 班级 计算机类 学号3202052 姓名  实验名称实验四 选择结构程序设计          日期  2020年 11月22 日 一.实验目的: 熟悉掌 ...

  7. c语言用if语句abc输出最大值,C语言基础入门选择结构-if语句(78页)-原创力文档...

    C语言基础入门选择结构-if语句_电脑基础知识_IT/计算机_专业资料.第9单元选择结构-if语句<程序设计基础>北京八维研修学院第1节选择结构导入?... <程序设计基础> ...

  8. c语言程序设计杜红燕,C语言习题集与实验指导 教学课件 伍鹏、杜红、王圆妹、邓绍金 第4章 选择结构程序设计.pdf...

    第4章 选择结构程序设计 第4章 选择结构程序设计 当你对C语言程序设计有了一定了解和掌握后, 若想要处理一些更复杂的任务时,比如根据判定条件 执行相应的程序,那该如何处理呢? 控制语句能够控制程序的 ...

  9. C语言 选择结构程序设计

    实验三 选择结构程序设计 实验学时: 2 学时 实验目的: 1.掌握关系表达式和逻辑表达式的使用. 2. 熟练掌握 if 语句.嵌套的 if 语句和 switch 语句. 3. 掌握 break 语句 ...

最新文章

  1. 这次我让你彻底弄懂 RESTful
  2. React源码分析与实现(一):组件的初始化与渲染
  3. android 稳定性测试工具,APP 稳定性测试工具-Fastbot_Android详解
  4. 吴恩达机器学习系列课程--个人笔记
  5. What means the error-message 'java.lang.OutOfMemoryError: GC overhead limit exceeded' in Java?
  6. php变量教学,PHP变量详解
  7. 创业团队吸贤大法,如何设计完美的员工股权激励计划?
  8. swf缓存文件在哪里_移动web缓存介绍
  9. AD9的PCB技巧——封装的更新
  10. 巧用 Cowrie 部署 SSH 蜜罐,让黑客攻击无处遁形!
  11. 车载T- BOX全国产化电子元件推荐方案
  12. Rxjava(Subject)-BehaviorSubject--代码分析
  13. 5.10 数据的升序和降序排序 [原创Excel教程]
  14. FLUENT算例2:混合弯管的流动与传热
  15. vs2013配置OpenGL+简单案例分析
  16. 5个Python开发实用工具
  17. 研发二部二组-问题点归纳
  18. 谈瓦克生产基地爆炸停产对中国多晶硅市场的影响
  19. python爬虫requests.post()_网页爬虫 - Python requests爬虫,如何post payload里的数据,谢谢!...
  20. 深入理解异或运算 xor 的含义——再探不使用加减乘除实现加法运算、不使用额外空间交换两个变量的值

热门文章

  1. Android提取字符串中的特殊字符(以手机号为例)并修改样式和添加点击事件
  2. python简易英文字典_bing的简单英文字典工具
  3. ubuntu22安装和卸载nvidia驱动
  4. 蝴蝶飞舞动画背景SVG
  5. 新疆着力构建物联网现代产业体系
  6. 怎么把扫描文件转换成word
  7. 硬件中断和软件中断的区别
  8. Java 程序的工作原理
  9. 电商数据仓库的架构、模型与应用实践
  10. 电波声声动人 节目精彩感人