《个人所得税计算系统》设计
一、需求说明
设计一个简易的个人所得税计算系统,通过输入个人应发工资计算出各个地区的三险(医疗保险、养老保险)一金(公积金)和个人所得税。系统需要实现用户登录、退出、选择地区计算三险一金、个人所得税等功能,并且相关功能要实现循环使用。相关数据如下图所示:
相关计算公式:
个人所得税 =(应发工资 - 三险一金 - 5000)* 税率 – 速算扣除数
税后工资 = 应发工资 – 个人所得税
实发工资 = 税后工资 - 三险一金
养老保险 = 应发工资 * 比例
医疗保险 = 应发工资 * 比例
失业保险 = 应发工资 * 比例
公积金 = 应发工资 * 比例
二、实现效果
2.1 用户登录
验证登录账号及密码,验证通过则进入系统,验证不通过则提示错误信息,并重新回到用户登录界面。
2.2 退出系统
选择退出系统则提示退出系统成功并回到系统登录界面。
2.3 计算个人所得税
成功登录系统后,选择城市,并输入应发工资计算出养老保险、医疗保险、失业保险、公积金、个人所得税、税后工资以及实发工资,并将相关数据打印出来,随后重新回到选择城市界面。
实现代码:
import java.util.Scanner; public class T1_IncomeTax { public static void main(String[]agrs) { Scanner sc = new Scanner(System.in); System.out.println("欢迎访问个人所得税计算系统!请先登录......"); System.out.println("***************用户登录***************"); String user_name;//用户名 String user_password;//密码 do { System.out.println("请输入账号:"); user_name = sc.next(); System.out.println("请输入密码:"); user_password = sc.next(); System.out.println("默认账户名:0000,密码123456"); }while(!"0000".equals(user_name)||!"123456".equals(user_password)); //}while((user_name!=0000)&&(user_password!=123456)); System.out.println("***************恭喜你登录成功!!***************"); int user_choiceNo = 7; while(user_choiceNo!=0000) { System.out.println("请选择你所在的城市:"); System.out.println("1、昆明;2、成都;3、西安;4、北京;5、上海;\r 6、深圳;7、退出系统"); user_choiceNo = sc.nextInt(); String user_city = null;//用户所在城市 double Eendowment_Insurance = 0.08;//养老保险 double Medical_Insurance = 0.02;//医疗保险 double Unemployment_Insurance = 0;//失业保险 double Accumulation_Fund = 0;//公积金 switch (user_choiceNo) { case 1: user_city = "昆明"; Unemployment_Insurance = 0.005; Accumulation_Fund = 0.10; break; case 2: user_city = "成都"; Unemployment_Insurance = 0.01; Accumulation_Fund = 0.07; break; case 3: user_city = "西安"; Unemployment_Insurance = 0.01; Accumulation_Fund = 0.08; break; case 4: user_city = "北京"; Unemployment_Insurance = 0.002; Accumulation_Fund = 0.12; break; case 5: user_city = "上海"; Unemployment_Insurance = 0.005; Accumulation_Fund = 0.07; break; case 6: user_city = "深圳"; Unemployment_Insurance = 0.05; Accumulation_Fund = 0.01; break; case 7: System.out.println("您已经退出系统!"); break; default: break; } System.out.println("请输入你的应发工资【"+user_city+"】:"); double user_income = sc.nextInt(); double EI = user_income*Eendowment_Insurance;//计算后的养老保险 double MI = user_income*Medical_Insurance;//计算后的医疗保险 double UI = user_income*Unemployment_Insurance;//计算后的失业保险 double AF = user_income*Accumulation_Fund;//计算后的公积金 double sl = 0;//税率 double ss = 0;//速算扣除法 double gs = 0;//个人所得税 double sh = 0;//税后工资 double sf = 0;//实发工资 if(user_income>=0) { }else if(user_income<=5000){ sl = 0; ss = 0; }else if(user_income<=8000){ sl = 0.03; ss = 0; }else if(user_income<=17000){ sl = 0.1; ss = 210; }else if(user_income<=30000){ sl = 0.2; ss = 1410; }else if(user_income<=40000){ sl = 0.25; ss = 2660; }else if(user_income<=60000){ sl = 0.3; ss = 4410; }else if(user_income<=85000){ sl = 0.35; ss = 7610; }else{ sl = 0.45; ss = 15160; } gs = (user_income-(EI+MI+UI+AF)-5000)*sl-ss; sh = user_income - gs; sf = sh - (EI+MI+UI+AF); System.out.println("***************个人所得税详细信息【"+user_city+"】***************"); System.out.print("养老保险【"+Eendowment_Insurance*100+"%】:"+EI+"\t"); System.out.print("医疗保险【"+Medical_Insurance*100+"%】:"+MI+"\n"); System.out.print("失业保险【"+Unemployment_Insurance*100+"%】:"+UI+"\t"); System.out.print("公积金【"+Accumulation_Fund*100+"%】:"+AF+"\n"); System.out.printf("个人所得税:%.2f\n",gs); System.out.println("------------------------------------------"); System.out.printf("税后工资:%.2f\n",sh); System.out.printf("实发工资:%.2f\n",sf); } } }