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

📄 incometax.java

📁 一个计算个人所得税的JAVA程序源码
💻 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 + -