Java基础寒假作业-个人所得税计算系统

简介: Java基础寒假作业-个人所得税计算系统

《个人所得税计算系统》设计



一、需求说明


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


0.png1.png



相关计算公式:

个人所得税 =(应发工资 - 三险一金 - 5000)* 税率 – 速算扣除数


税后工资 = 应发工资 – 个人所得税


实发工资 = 税后工资 - 三险一金


养老保险 = 应发工资 * 比例


医疗保险 = 应发工资 * 比例


失业保险 = 应发工资 * 比例


公积金 = 应发工资 * 比例



2.png


二、实现效果

2.1 用户登录

验证登录账号及密码,验证通过则进入系统,验证不通过则提示错误信息,并重新回到用户登录界面。

3.png


2.2 退出系统

选择退出系统则提示退出系统成功并回到系统登录界面。


3.png


2.3 计算个人所得税

成功登录系统后,选择城市,并输入应发工资计算出养老保险、医疗保险、失业保险、公积金、个人所得税、税后工资以及实发工资,并将相关数据打印出来,随后重新回到选择城市界面。


4.png


5.png


实现代码:


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);
    }
  }
}
相关文章
|
2月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
66 5
|
2月前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
167 3
|
2月前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
70 1
|
2月前
|
Java
Java基础学习day05-作业
本文为Java基础学习第五天作业,通过五个案例练习类与对象的定义、构造方法、set/get方法及成员方法的应用。涵盖女友、学生、教师、手机和电影等类的设计与测试,强化面向对象编程基础。
76 2
|
2月前
|
Java
Java基础学习day04-作业
本作业包含8个Java编程案例,涵盖数组的定义与遍历、求和、最值计算、去极值求平均、元素倍增、二维数组行和计算及查找指定元素等内容,旨在巩固Java基础语法与数组操作技能。
206 1
|
2月前
|
算法 Java
Java基础学习day03-作业
本内容包含多个Java编程案例,涵盖条件判断、循环、数组、随机数生成、素数判断等基础算法练习,适用于巩固Java语法与逻辑思维训练。
122 6
|
2月前
|
Java
Java基础学习day02-作业
本内容包含13个Java编程练习需求,涵盖变量定义、数据类型转换、运算符使用、键盘输入及条件判断等基础语法实践,适合初学者巩固Java核心基础知识。
80 5
|
Java
Java基础学习day01-作业
通过多个Java编程案例,学习变量定义、数据类型使用及控制台输出。涵盖字符串、数值、布尔值等字面量输出,变量赋值与修改,以及实际应用场景如学生信息和商品价格变化的模拟,夯实基础语法掌握。
90 0
|
5月前
|
机器学习/深度学习 存储 算法
Java 大视界 -- Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用(165)
本文围绕 Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用展开,剖析作业现状与挑战,阐述技术原理及应用方法,结合案例与代码,给出具有实操性的解决方案。
Java 大视界 -- Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用(165)
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
346 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)