纳税计算——案例2_7

纳税计算——案例2_7

题目

在我国,个人所得税是基于纳税人的情况和应征收人计算的。纳税人情况共分为三种:单身纳税人、已婚纳税人和家庭纳税人。另外,对于不同情况的纳税人,其税率是分档计算的,我国2008年的个人所得税税率如下表所示。

税率 单身纳税人 已婚纳税人 家庭纳税人
10% 低于等于6000元 低于等于12000元 低于等于10000元
15% 6001~27950 元 12001~46700元 10001~37450元
27% 27951~67700元 46701~112850元 37451~96700元
30% 67701~141250元 112851~171950元 96701~156600 元
35% 141251元及以上 171951元及以上 156601元及以上

思路

我们首先判断三类人,然后再根据不同的类型计算。这里推荐将判断、计算分成不同的方法。

  • 判断:
    直接用if-else进行判断,判断后进入不同的方法。
public static void judge(){ //判断家庭类型
        if (status == 1) 
            ans1();
        else if(status==2)
            ans2();
        else
            ans3();
    }
  • 计算:
    计算其实特别简单,就是一道初中的数学题,这里不再过多赘述。注意要确定好税率的范围,也是用if-else。

  • 使用多个方法:

    我们一般不喜欢把所有代码全塞到main方法里而是按功能拆分成不同方法,详细见CSDN博客:类、方法和对象


本题答案&代码

import java.util.Scanner;
import javax.lang.model.util.ElementScanner6;

public class Example2_7 {
    private static int status=0;
    private static double tax=0.0;
    private static double income = 0;

    public static void data() {
        System.out.println("请输入纳税人的类型:1-单身,2-已婚,3-家庭。");
        Scanner inStatus = new Scanner(System.in);
        status = inStatus.nextInt(); //输入纳税人的类型
        System.out.println("请输你的可纳税收入:");
        Scanner inIncome = new Scanner(System.in);
        income = inStatus.nextDouble(); //输入收入
        judge();
    }

    public static void judge(){ //判断家庭类型
        if (status == 1) 
            ans1();
        else if(status==2)
            ans2();
        else
            ans3();
    }
    
    public static void ans1() { //单身
        if (income <= 6000)
            tax = income * 0.1;
        else if (income <= 27950)
            tax = 6000 * 0.1 + (income - 6000) * 0.15;
        else if (income <= 67700)
            tax = 6000 * 0.1 + (27950 - 6000) * 0.15 + (income - 27950) * 0.27;
        else if (income <= 141250)
            tax = 6000 * 0.1 + (27950 - 6000) * 0.15 + (67700 - 27950) * 0.27 + (income - 67700) * 0.3;
        else
            tax = 6000 * 0.1 + (27950 - 6000) * 0.15 + (67700 - 27950) * 0.27 + (141250 - 67700) * 0.3
                    + (income - 141250) * 0.35;
    }

    public static void ans2() { //已婚
        if (income <= 12000)
            tax = income * 0.1;
        else if (income <= 46700)
            tax = 12000 * 0.1 + (income - 12000) * 0.15;
        else if (income <= 112850)
            tax = 12000 * 0.1 + (46700 - 12000) * 0.15 + (income - 46700) * 0.27;
        else if (income <= 171950)
            tax = 12000 * 0.1 + (46700 - 12000) * 0.15 + (112850 - 46700) * 0.27 + (income - 112850) * 0.3;
        else
            tax = 12000 * 0.1 + (46700 - 12000) * 0.15 + (171950 - 46700) * 0.27 + (171951 - 171950) * 0.3
                    + (income - 171950);
    }

    public static void ans3() { //家庭
        if(income<=10000)
            tax = income * 0.1;
        else if(income<=37450)
            tax=1000*0.1+(income-10000)*0.15;
        else if(income<=96700)
            tax = 1000 * 0.1 + (37450 - 10000) * 0.15 + (income - 37450) * 0.27;
        else if(income<=15600)
            tax = 1000 * 0.1 + (37450 - 10000) * 0.15 + (96700 - 37450) * 0.27 + (income - 96700)*0.3;
        else
            tax = 1000 * 0.1 + (37450 - 10000) * 0.15 + (96700 - 37450) * 0.27 + (15600 - 96700) * 0.3
                    + (income - 15600) * 0.35;
    }
    
    public static void main(String[] args) {
        Example2_7 input = new Example2_7();
        input.data();
        System.out.println("纳税人需要缴的税额为:"+tax+"元人民币");
    }
}

你可能感兴趣的:(java,编辑器)