《个人所得税计算系统》设计
- 需求说明
设计一个简易的个人所得税计算系统,通过输入个人应发工资计算出各个地区的三险(医疗保险、养老保险)一金(公积金)和个人所得税。系统需要实现用户登录、退出、选择地区计算三险一金、个人所得税等功能,并且相关功能要实现循环使用。相关数据如下图所示:
相关计算公式:
个人所得税 =(应发工资 - 三险一金 - 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);
}
}
}