首先,我们应先了解需求是什么。
需求:2023年1月1日后,国家将个人所得税的起征点上调至5000元人民币。这也就是说税前工资扣除五险一金(我们假设五险一金占据税前工资的百分之十)后如果不足五千元就不用交税,如果大于五千元,那么超出五千元的部分按照相应的比例和梯度进行缴税。具体比例如下: 0 - 3000元的部分,交税百分之三 3000 - 12000元的部分,交税百分之十 12000 - 25000元的部分,交税百分之二十 25000 - 35000元的部分,交税百分之二十五 35000 - 55000元的部分,交税百分之三十 55000 - 80000元的部分,交税百分之三十五 超过80000元的部分,交税百分之四十五 举个例子:张三入职了一家互联网公司,税前工资为9000元,那么五险一金就是900元,那他每个月应该缴纳个税的部分就是,9000 - 900 - 5000 = 3100 元,需要缴纳的个人所得税就是:3000×3% + 100×10% = 100 元,那他的税后工资就是 8000 元。 要求要实现一个 个人所得税的计算程序,能够让用户输入自己的税前工资,自动计算出应该纳税的数额,并得出税后工资,输出出来。
接下来,我们要进行一定的分析。
分析: 我们应该清楚,程序要求我们能够让用户输入税前工资所以先实现输入功能接着要明确哪些部分才属于纳税部分,我们要先计算出五险一金的数额随后用税前工资减去五险一金并与起征点作比较,如果大于五千就按照比例交税,如果小于五千就不用交税输出计算结果即可下面我们设计一定的步骤:
执行流程: 接收税前工资计算五险一金的额度,并得出扣除五险一金后的额度利用if…else分支结构判断够不够纳税标准,并计算出纳税金额和税后工资输出结果程序结束最后,我们给出代码实现:
相关代码: ...package com.kxjh.gs;import java.util.Scanner;public class demo1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in);//接收用户输入的税前工资,这里我定义成整数 int wages = sc.nextInt();//接着定义一个变量保存五险一金的额度 double insurance = wages * 0.1;//接着我们定义一个变量保存扣除五险一金后的工资部分 double money = wages - insurance; //还需要定义一个变量来表示超出5000元的部分 double money1 = money - 5000;//我们再定义一个变量用来保存纳税金额,初始值为0 double dockwages = 0;//再定义一个变量保存税后工资,初始值为0; double afterTaxWages = 0;//使用if语句判断输入的工资是否大于零,提升程序的健壮性 if (wages >= 0) { //使用f语句判断扣除五险一金后工资是否达到纳税标准 if (money > 5000) { //使用if...else if ...else 分支嵌套语句判断纳税的梯度,并计算纳税额度以及税后工资然后输出 if (money1 > 0 && money1 dockwages = (money1 - 3000) * 0.1 + 3000 * 0.03; afterTaxWages = money - dockwages; //输出结果 System.out.println("您输入的税前工资为:" + wages); System.out.println("您的五险一金额度为:" + insurance); System.out.println("您的纳税金额为:" + dockwages); System.out.println("您的税后工资为:" + afterTaxWages); } else if (money1 > 12000 && money1 dockwages = (money1 - 25000) * 0.25 + 3000 * 0.03 + 9000 * 0.1 + 13000 * 0.2; afterTaxWages = money - dockwages; //输出结果 System.out.println("您输入的税前工资为:" + wages); System.out.println("您的五险一金额度为:" + insurance); System.out.println("您的纳税金额为:" + dockwages); System.out.println("您的税后工资为:" + afterTaxWages); } else if (money1 > 35000 && money1 dockwages = (money1 - 55000) * 0.35 + 3000 * 0.03 + 9000 * 0.1 + 13000 * 0.2 + 10000 * 0.25 + 20000 * 0.3; afterTaxWages = money - dockwages; //输出结果 System.out.println("您输入的税前工资为:" + wages); System.out.println("您的五险一金额度为:" + insurance); System.out.println("您的纳税金额为:" + dockwages); System.out.println("您的税后工资为:" + afterTaxWages); } else { dockwages = (money1 - 80000) * 0.45 + 3000 * 0.03 + 9000 * 0.1 + 13000 * 0.2 + 10000 * 0.25 + 20000 * 0.3 + 25000 * 0.35; afterTaxWages = money - dockwages; //输出结果 System.out.println("您输入的税前工资为:" + wages); System.out.println("您的五险一金额度为:" + insurance); System.out.println("您的纳税金额为:" + dockwages); System.out.println("您的税后工资为:" + afterTaxWages); } } else { //给出提示信息 System.out.println("您的工资扣除五险一金后不足五千,不用缴纳个税!您的税前工资是:" + wages + "元,您的五险一金额度是:" + insurance + "元,您的到手工资应为:" + money + "元。"); } } else { //给出提示信息 System.out.println("您输入的工资不大于零,请重新输入!"); } }}...这样,这个程序就完成了。欢迎留言点赞,热爱编程的Panic~