📄 incometax.java
字号:
import java.io.*;
/**个人所得税计算工具,可修改起征点及各级税率
*/
public class IncomeTax{
/**税率表
*/
private static TaxTable tt;
/**显示菜单
*/
private static void showMenu(){
System.out.println("个人所得税计算工具,请选择:");
System.out.println("1.计算个人所得税");
System.out.println("2.查看当前起征点及各级税率");
System.out.println("3.修改起征点");
System.out.println("4.修改各级税率");
System.out.println("0.退出");
}
/**处理菜单选项
* @param cmd 用户输入的菜单选项
*/
private static void handleMenuCmd(int cmd){
double data;
int intData;
switch(cmd){
case 1:
System.out.println("请输入工资总额(单位:元)(如:4300.00):");
data=obtainDoubleInput();
if(data<0){
showMenu();
return;
}
System.out.println("个人所得税为(单位:元):"+(double)((long)((tt.CountIncomeTax(data))*100))/100);
break;
case 2:
System.out.println("起征点:"+tt.getBASE()+"元");
System.out.println("税率表:");
System.out.println("┏━━━━━━━━━━━━━━━━━━━┓");
System.out.println("┃ 级别 应纳税所得额 税率%┃");
System.out.println("┃ 1 不超过500元的 "+(int)(tt.getTaxRate(1)*100)+" ┃");
System.out.println("┃ 2 超过500元至2000元的部分 "+(int)(tt.getTaxRate(2)*100)+" ┃");
System.out.println("┃ 3 超过2000元至5000元的部分 "+(int)(tt.getTaxRate(3)*100)+" ┃");
System.out.println("┃ 4 超过5000元至20000元的部分 "+(int)(tt.getTaxRate(4)*100)+" ┃");
System.out.println("┃ 5 超过20000元部分 "+(int)(tt.getTaxRate(5)*100)+" ┃");
System.out.println("┗━━━━━━━━━━━━━━━━━━━┛");
break;
case 3:
System.out.println("当前起征点为:"+tt.getBASE()+"元");
System.out.println("请输入新的起征点(单位:元)(如:1000.00):");
data=obtainDoubleInput();
if(data<0){
showMenu();
return;
}
tt.setBASE(data);
System.out.println("起征点修改为(单位:元):"+tt.getBASE());
break;
case 4:
System.out.println("请输入要修改的税率级别:");
intData=obtainIntInput();
if(intData<1||intData>tt.getTaxLevelTotal()){
showMenu();
return;
}
System.out.println("您要修改第 "+intData+" 级的税率,该级税率为:"+(int)(tt.getTaxRate(intData)*100)+"%");
System.out.println("请输入新的税率(小数表示,如:0.25):");
data=obtainDoubleInput();
if(data<0){
showMenu();
return;
}
if(tt.setTaxRate(intData,data))
System.out.println("第 "+intData+" 级税率,修改为:"+(int)(tt.getTaxRate(intData)*100)+"%");
else
System.out.println("输入税率有误!");
showMenu();
break;
}
}
/**获取用户的整数输入
*
* @return 返回用户输入的整数
*/
private static int obtainIntInput(){
try{
int cmd;
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
cmd=Integer.valueOf(in.readLine()).intValue();
return cmd;
}catch(Exception exc){
System.out.println("");
System.out.println("请按菜单或提示,输入正确的数据。");
System.out.println("");
return -1;
}
}
/**获取用户的双精度浮点数输入
*
* @return 返回用户输入的双精度浮点数
*/
private static double obtainDoubleInput(){
try{
double data;
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
data=Double.valueOf(in.readLine()).doubleValue();
return data;
}catch(Exception exc){
System.out.println("");
System.out.println("请按菜单或提示,输入正确的数据。");
System.out.println("");
return -1;
}
}
/**主程序入口
*
* @param args 命令行参数
*/
public static void main(String args[]){
int cmd;
tt=new TaxTable();
tt.setBASE(1600);
showMenu();
for(;;){
cmd=obtainIntInput();
if(cmd==0)
break;
if(cmd<0){
showMenu();
break;
}
handleMenuCmd(cmd);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -