Java小白之编写:计算个税的程序

使用Java语言设计编写计算个人所得税的小程序

首先,我们应先了解需求是什么。

需求:

2019年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 元。
要求要实现一个 个人所得税的计算程序,能够让用户输入自己的税前工资,自动计算出应该纳税的数额,并得出税后工资,输出出来。

接下来,我们要进行一定的分析。

分析:

  1. 我们应该清楚,程序要求我们能够让用户输入税前工资所以先实现输入功能
  2. 接着要明确哪些部分才属于纳税部分,我们要先计算出五险一金的数额
  3. 随后用税前工资减去五险一金并与起征点作比较,如果大于五千就按照比例交税,如果小于五千就不用交税
  4. 输出计算结果即可

下面我们设计一定的步骤:

执行流程:

  1. 接收税前工资
  2. 计算五险一金的额度,并得出扣除五险一金后的额度
  3. 利用if…else分支结构判断够不够纳税标准,并计算出纳税金额和税后工资
  4. 输出结果程序结束

最后,我们给出代码实现:

相关代码:

...
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 <= 3000) {
                    dockwages = money1 * 0.03;
                    afterTaxWages = money - dockwages;
                    //输出结果
                    System.out.println("您输入的税前工资为:" + wages);
                    System.out.println("您的五险一金额度为:" + insurance);
                    System.out.println("您的纳税金额为:" + dockwages);
                    System.out.println("您的税后工资为:" + afterTaxWages);
                } else if (money1 > 3000 && money1 <= 12000) {
                    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 <= 25000) {
                    dockwages = (money1 - 12000) * 0.2 + 3000 * 0.03 + 9000 * 0.1;
                    afterTaxWages = money - dockwages;
                    //输出结果
                    System.out.println("您输入的税前工资为:" + wages);
                    System.out.println("您的五险一金额度为:" + insurance);
                    System.out.println("您的纳税金额为:" + dockwages);
                    System.out.println("您的税后工资为:" + afterTaxWages);
                } else if (money1 > 25000 && money1 <= 35000) {
                    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 <= 55000) {
                    dockwages = (money1 - 35000) * 0.3 + 3000 * 0.03 + 9000 * 0.1 + 13000 * 0.2 + 10000 * 0.25;
                    afterTaxWages = money - dockwages;
                    //输出结果
                    System.out.println("您输入的税前工资为:" + wages);
                    System.out.println("您的五险一金额度为:" + insurance);
                    System.out.println("您的纳税金额为:" + dockwages);
                    System.out.println("您的税后工资为:" + afterTaxWages);
                } else if (money1 > 55000 && money1 <= 80000) {
                    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~

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l_0_f

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值