📄 tax.java
字号:
public class Tax {
/**数据成员*/
//纳税人状态
int filingStatus;
public final static int SINGLE_FILER=0;
public final static int MARRIED_JOINTLY=1;
public final static int MARRIED_SEPARATELY=2;
public final static int HEAD_HOUSEHOLD=3;
//各种纳税人的纳税等级
int [][]brackets;
//各种纳税等级的税率
double[] rates;
//存储可征税收入
double taxableIncome;
//无参构造方法
public Tax()
{
//2001年各等级税率
rates=new double[]{0.10,0.15,0.27,0.30,0.35,0.386};
//2001年各种纳税人的纳税等级
brackets=new int[][]{
{6000,27950,67700,141250,307050},
{12000,46700,112850,171950,307050},
{6000,23350,56425,85975,153525},
{10000,37450,96700,156600,307050}
};
//默认纳税人状态
filingStatus=SINGLE_FILER;
//默认可纳税收入
taxableIncome=0.0;
}
//带参的构造函数
public Tax(int taxerStatus,int[][] taxBrackets,double[] taxRates,double income)
{
//纳税人状态
filingStatus=taxerStatus;
//可纳税收入
taxableIncome=income;
//各纳税人的纳税等级
brackets=new int[taxBrackets.length][];
for(int i=0;i<taxBrackets.length;i++)
{
brackets[i]=new int [taxBrackets[i].length];
for(int j=0;j<taxBrackets[i].length;j++)
{
brackets[i][j]=taxBrackets[i][j];
}
}
//各等级的税率
rates=new double[taxRates.length];
for(int i=0;i<taxRates.length;i++)
{
rates[i]=taxRates[i];
}
}
//获取纳税人等级
int getFilingStatus()
{
return filingStatus;
}
//获取税率等级
double[] getRates()
{
return rates;
}
//获取各种纳税人的纳税等级
int[][] getBrackets()
{
return brackets;
}
//获取可纳税收入
double getTaxableIncome()
{
return taxableIncome;
}
//设置纳税人状态
void setFilingStatus(int newStatus)
{
filingStatus=newStatus;
}
//设置各种纳税等级的税率
void setRates(double[] newRates )
{
for(int i=0;i<newRates.length;i++)
{
rates[i]=newRates[i];
}
}
//设置各种纳税人的纳税等级
void setBrackets(int[][] newBrackets)
{
for(int i=0;i<newBrackets.length;i++)
for(int j=0;j<newBrackets[i].length;j++)
{
brackets[i][j]=newBrackets[i][j];
}
}
//设置可纳税收入
void setTaxableIncome(double newTaxableIncome)
{
taxableIncome=newTaxableIncome;
}
public double findTax()
{
double tax=0;
if(taxableIncome<=brackets[filingStatus][0])
return tax=taxableIncome*rates[0];//Done
else tax=brackets[filingStatus][0]*rates[0];
for(int i=1;i<brackets[filingStatus].length;i++)
{
if(taxableIncome>brackets[filingStatus][i])
tax+=(brackets[filingStatus][i]-brackets[filingStatus][i-1])*rates[i];
else
{
tax+=(taxableIncome-brackets[filingStatus][i-1])*rates[i];
return tax;
}
}
//高出最高的可税收入坎
return tax+=(taxableIncome-brackets[filingStatus][brackets[filingStatus].length-1])*rates[rates.length-1];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -