《C语言及程序设计》实践参考——个税计算器之码数分离
返回:贺老师课程教学链接
【项目5-个税计算器之码数分离】
在学习分支结构时,我们做过一个个人所得税计算器if语句版,在其中,税率等数据直接写进了程序。这并不是一个好的方案。
下面定义了一个结构体数组,保存各个收入范围个税计算的基础数据,这样,一定程度上,将代码与数据分离,这是工程中常见的做法。
请先对照附后的个人所得税计算方法,理解下面的结构体数组:
struct TaxNode
{int payTax;double rate;int deducted;
} taxNode[10]=
{{0,0.03,0},{1500,0.10,105},{4500,0.20,555},{9000,0.25,1005},{35000,0.30,2755},{55000,0.35,5505},{80000,0.45,13505}
};
编写程序,利用这个结构体数组,输入个人月收入总额,计算并输出他本月应缴税款和税后收入。
附:关于个人所得税的有关背景知识
计算方法:个人所得税=(收入总额-3500)*税率-速算扣除数
从2011年9月1日起,我国个人所得税起征点基数为3500元,超出部分按以下7级计算。
序号 | 收入范围 | 税率 | 速算扣除数 |
---|---|---|---|
1 | 超过0至1500 | 3% | 0 |
2 | 超过1500元至4500元的部分 | 10% | 105 |
3 | 超过4500元至9000元的部分 | 20% | 555 |
4 | 超过9,000元至35,000元的部分 | 25% | 1005 |
5 | 超过35,000元至55,000元的部分 | 30% | 2755 |
6 | 超过55,000元至80,000元的部分 | 35% | 5505 |
7 | 超过80,000以上 | 45% | 13505 |
例如:王某月收入总额3600元,个人所得税=(3600-3500)*3%=3元;
再例:李某月收入13500元,个人所得税=(13500-3500)*25%-1005=2500-1005=1495元。
更多了解速算扣除数,请找百度百科。
[参考解答]
#include <stdio.h>
#define BaseSalary 3500
struct TaxNode
{int payTax;double rate;int deducted;
} taxNode[10]=
{{0,0.03,0},{1500,0.10,105},{4500,0.20,555},{9000,0.25,1005},{35000,0.30,2755},{55000,0.35,5505},{80000,0.45,13505}
};
int main()
{double dSalary,dTax=0,dNetIncome=0;double dValue; //表示超出起征点的收入printf("请输入您本月的收入总额(元):");scanf("%lf", &dSalary);dValue=dSalary-BaseSalary;int i;if(dValue<=0.0){dTax=0.0;}else{for(i = 6; i >= 0; i--){printf("%d\n",i);if(dValue > taxNode[i].payTax){dTax = dValue * taxNode[i].rate - taxNode[i].deducted;break;}}}dNetIncome=dSalary-dTax; //计算得到printf("您本月应缴个人所和税 %.2lf 元,税后收入是 %.2lf 元。\n", dTax, dNetIncome);printf("依法纳税,共享繁荣。谢谢使用!\n");return 0;
}
《C语言及程序设计》实践参考——个税计算器之码数分离相关推荐
- C语言结构体工资缴税,C语言进阶-第11~13讲:结构体实践(成绩处理个税计算器之码数分离)...
任务和代码(一): 成绩处理 /* *All rights reserved *文件名称:main.c *作者: Osseyda *完成日期:2017.11.6 *版本号:v2. * *问题描述:定义 ...
- 进阶项目5-个税计算器之码数分离
任务和代码:编写程序,利用这个结构体数组,输入个人月收入总额,计算并输出他本月应缴税款和税后收入. 附:关于个人所得税的有关背景知识 计算方法:个人所得税=(收入总额-3500)*税率-速算扣除数 ...
- C语言及程序设计 实践参考——个人所得税计算器switch语句版
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 返回:贺 ...
- C语言及程序设计 实践参考——个人所得税计算器if语句版
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 返回:贺 ...
- C语言及程序设计 实践参考——定期存款利息计算器
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 返回:贺 ...
- 法雷序列的c语言程序,程序设计实践(一).PDF
程序设计实践(一) 程序设计实践(一): 风格.设计和实现 王新宇 2004.10.16 Outline 风格 原则 示例 设计和实践 马尔可夫链(Markov Chain) C, JAVA, C++ ...
- C语言课间程序设计实践报告
<贪吃蛇>简介 玩家使用方向键操控一条长长的蛇不断吞下豆子,同时蛇身随着吞下的豆子不断变长,当蛇头撞到蛇身或障壁时游戏结束.贪吃蛇最初为人们所知的是诺基亚手机附带的一个小游戏,它 ...
- 《C++语言基础》实践参考——友元类
返回:贺老师课程教学链接 [项目5-友元类] 定义下面两个类的成员函数(为体验友元类,实际上本例并不一定是一个好的设计,将两个类的合并为一个DateTime,日期.时间都处理更好) class Dat ...
- 《C++语言基础》实践参考——我的向量类
返回:贺老师课程教学链接 项目要求 [项目4-我的向量类] 建立一个向量类MyVector,声明如下,请完成类的定义 class MyVector //定义向量类 { public:MyVector( ...
最新文章
- GDB attach到进程
- js判断是否在iframe和禁止网页在iframe中显示
- 计算机应用基础模4答案,2012年自考“计算机应用基础”练习题及答案四
- 域控 批量导入 用户_kerberos域用户提权分析
- ssh框架分页显示问题
- bellman ford 算法 判断是否存在负环
- 汇编语言第二课作业2.3
- java 使用vsphere 创建虚拟机‘_Java数组的创建及使用
- 将对象转成 json 以及 将字符串 hash(SHA1) 加密
- AtmosphericCorrection大气校正_landsat8
- MySQL常用命令收录
- 软件实习项目4——校园一卡通管理系统(实验准备与设计)
- 百度文库免费下载,精选六种方法!
- Excel数据分析入门-数据透视表
- LCM ASN 在MOBILE下收货流程的后台数据流
- Dell OptiPlex 7090插入耳机有声音没有麦克风的解决方案
- 统一软件过程的基本概念
- 我弟今年高考,报的志愿是电子信息,到现在录取的是计算机科学与技术,哪个专业更好一些,2021年电子信息科学与技术专业大学排名及分数线【统计表】...
- 打破 FOXMAIL 疯狂占用磁盘读写资源的魔障
- 免费打造个人网站,免费域名,免费空间,ftp使用,数据库等,免费就能搭建个人网站