⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex6_14.java

📁 判断三角形
💻 JAVA
字号:
//6.14 税款类Tax
import javax.swing.JOptionPane;
public class Ex6_14{
   public static void main (String[] args) {
      int[][] brackets1 = {
        {27050, 65550, 136750, 297350},
        {45200, 109250, 166500, 297350},
        {22600, 54625, 83250, 148675},
        {36250, 93650, 151650, 297350}
      };
      int[][] brackets2 = {
        {6000, 27950, 67700, 141250, 307050},
        {12000 , 46700, 112850, 171950, 307050},
        {6000, 23350, 56425, 85975, 153525},
        {10000, 37450, 96700, 156600, 307050}
      };
      double[] rates1 = {0.15, 0.275, 0.305, 0.355, 0.391};
      double[] rates2 = {0.1, 0.15, 0.27, 0.30, 0.35, 0.386};
      Tax tax1=new Tax(0,brackets1,rates1,5000);
      System.out.println("2001 年税款表");
      System.out.println("Income"+"\t"+"tax_single"+"\t"+"tax_m_j"+"\t"+"tax_m_s"+"\t"+"tax_h");
      for(int taxableIncome=50000;taxableIncome<=60000;taxableIncome+=1000){
          tax1.setTaxableIncome(taxableIncome);
          tax1.setFilingStatus(0);
          double  tax_single=tax1.findTax();
          tax1.setFilingStatus(1);
          double  tax_married_jointly=tax1.findTax();
          tax1.setFilingStatus(2);
          double  tax_married_separately=tax1.findTax();
          tax1.setFilingStatus(3);
          double  tax_household=tax1.findTax();
          System.out.println(taxableIncome+"\t"+tax_single+"\t"+tax_married_jointly+"\t"+tax_married_separately+"\t"+tax_household);
      }
      Tax tax2=new Tax(0,brackets2,rates2,5000);
      System.out.println("2002 年税款表");
      System.out.println("Income"+"\t"+"tax_single"+"\t"+"tax_m_j"+"\t"+"tax_m_s"+"\t"+"tax_h");
      for(int taxableIncome=50000;taxableIncome<=60000;taxableIncome+=1000){
          tax2.setTaxableIncome(taxableIncome);
          tax2.setFilingStatus(0);
          double  tax_single=tax2.findTax();
          tax2.setFilingStatus(1);
          double  tax_married_jointly=tax2.findTax();
          tax2.setFilingStatus(2);
          double  tax_married_separately=tax2.findTax();
          tax2.setFilingStatus(3);
          double  tax_household=tax2.findTax();
          System.out.println(taxableIncome+"\t"+tax_single+"\t"+tax_married_jointly+"\t"+tax_married_separately+"\t"+tax_household);
      }
   }
}

class Tax{  //Tax类
   public final static int SINGLE_FILER=0;
   public final static int MARRIED_JOINTLY=1;
   public final static int MARRIED_SEPERATELY=2;
   public final static int HEAD_OF_HOUSEHOLD=3;
   private int filingStatus;
   private int[][] brackets={  //2001年的纳税等级
    {27050, 65550, 136750, 297350}, // SINGLE_FILER
    {45200, 109250, 166500, 297350}, // MARRIED_JOINTLY
    {22600, 54625, 83250, 148675}, // MARRIED_SEPERATELY
    {36250, 93650, 151650, 297350} // HEAD_OF_HOUSEHOLD
   };
   private double[] rates={0.15,0.275,0.305,0.355,0.391}; //2001年的税率
   private double taxableIncome;
   Tax(){ filingStatus=SINGLE_FILER;
          taxableIncome=0;
   }
   public Tax(int filingStatus,int[][] brackets,double[] rates,double taxableIncome){
      this.filingStatus=filingStatus;
      this.brackets=brackets;
      this.rates=rates;
      this.taxableIncome=taxableIncome;
   }

  public int getFilingStatus() {
    return filingStatus;
  }

  public void setFilingStatus(int filingStatus) {
    this.filingStatus = filingStatus;
  }
  public void setBrackets(int[][] brackets) {
    this.brackets = brackets;
  }

  public void setRates(double[] rates) {
    this.rates = rates;
  }

  public double getTaxableIncome() {
    return taxableIncome;
  }

  public void setTaxableIncome(double taxableIncome) {
    this.taxableIncome = taxableIncome;
  }
  public double findTax(){
    double tax=0;
    int i=0;
    if(taxableIncome<=brackets[filingStatus][0])
    	return rates[0]*taxableIncome;
    else
    	tax=brackets[filingStatus][0]*rates[0];
    for(i=1;i<brackets[0].length;i++){//计算每一等级的税款
        if(taxableIncome<=brackets[filingStatus][i])
        	return tax+=rates[i]*(taxableIncome-brackets[filingStatus][i-1]);
        else
            tax+=rates[i]*(brackets[filingStatus][i]-brackets[filingStatus][i-1]);
    }
    if (i==brackets[filingStatus].length && taxableIncome > brackets[filingStatus][i - 1])
      tax+=(taxableIncome - brackets[filingStatus][i - 1]) * rates[i];
    return tax;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -