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

相关计算公式:
个人所得税 =(应发工资 - 三险一金 - 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);
}
}
}
Java基础寒假作业-个人所得税计算系统的更多相关文章
- Java基础寒假作业-简易计算器
需求: 使用Java编写计算器的控制台程序,完成简单的加减乘除运算.实现以下功能: 1.运算选择 请用户选择一个算法(1.加法 2.减法 3.乘法 4.除法 5.关闭计算器) 2.计算 a)加法:实现 ...
- java实现第七届蓝桥杯寒假作业
题目6.寒假作业 寒假作业 现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ (如果显示不出来,可以参见[图1. ...
- java 寒假作业
寒假作业 现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ (如果显示不出来,可以参见[图1.jpg]) 每个方 ...
- 微冷的雨Java基础学习手记(一)
使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...
- 【java基础】选择排序and冒泡排序
前言 : 今天学习的是J2SE视频里的第五章,数组部分,它里面留了一个经典的作业,就是让我们去从1倒9按一定规格排序,这让我想起了学习vb的时候最最让我头疼的两种排序方法,选择排序法 和 冒泡排序法. ...
- java基础之:堆排序
最近做题目饱受打击,愈发觉得打好基础的重要性,于是乎,决心把基本的排序算法还有数组操作一一实现,目的在于一方面能够得到对JAVA基础的巩固,另一面在实现的过程中发现不足. 今天所实现的堆排序(最大堆) ...
- JavaSE学习总结(一)——Java基础
一.Java是什么 Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台.Java 是一项用于开发应用程序的技术,可以让 Web 变得更有意思和更实用.有许多 ...
- JAVA第九次作业
JAVA第九次作业 (一)学习总结 1.用思维导图对javaIO操作的学习内容进行总结. 参考资料: XMind. 2.下面的程序实现了文件的拷贝,但采用的是一个字节一个字节的读写方式,效率很低.使用 ...
- 夯实Java基础系列6:一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别!
目录 抽象类介绍 为什么要用抽象类 一个抽象类小故事 一个抽象类小游戏 接口介绍 接口与类相似点: 接口与类的区别: 接口特性 抽象类和接口的区别 接口的使用: 接口最佳实践:设计模式中的工厂模式 接 ...
随机推荐
- k8s StatefulSet控制器-独立存储
k8s-StatefulSet控制器-独立存储 1. StatefulSet控制器-独立存储 独享存储:StatefulSet的存储卷使用VolumeClaimTemplate创建,称为卷申请模板,当 ...
- 应用springMVC时如果配置URL映射时如下配置
应用springMVC时如果配置URL映射时如下配置 [html] view plaincopy<servlet> <servlet-name>appServlet</s ...
- SpringMVC(4):文件上传与下载
一,文件上传 文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理 ...
- Dubbo提供者的异步执行
从前面"对提供者的异步调用"例子可以看出,消费者对提供者实现了异步调用,消费者线程的执行过程不再发生阻塞,但提供者对IO耗时操作仍采用的是同步调用,即IO操作仍会阻塞Dubbo的提 ...
- 【.NET6】gRPC服务端和客户端开发案例,以及minimal API服务、gRPC服务和传统webapi服务的访问效率大对决
前言:随着.Net6的发布,Minimal API成了当下受人追捧的角儿.而这之前,程序之间通信效率的王者也许可以算得上是gRPC了.那么以下咱们先通过开发一个gRPC服务的教程,然后顺势而为,再接着 ...
- Jenkins远程发布制品
目录 一.简介 二.实现 一.简介 WEB服务很少会与Jenkins服务器在同一台机器,所以需要将构建好的制品包,发放到远程服务器进行部署. 二.实现 插件名:Publish over SSH 作用: ...
- Linux下安装Calibre
目录 一.介绍 二.安装 三.测试 四.报错处理 一.介绍 Calibre是基于python的电子书制作软件,可导出PDF.EPUB.MOBI.Word格式电子书. 二.安装 yum -y insta ...
- inndy_rop
又学习到了一个新知识 拿到题目例行检查,发现是32位的程序,放入ida中 进入main看到了一个overflow函数进入查看 存在明显的栈溢出,看到题目知道要用rop来做,但是完全没有思路, 后来发现 ...
- how2heap libc2.31学习
今天是四月十九,想在五月份之前把how2heap中的高版本(2.31)的例子过一遍.所以这个系列目前还是在更新中.如果比较简单就几句话带过了,遇到难一点的会写的详细一点. fastbin_dup 源代 ...
- Python小组作业:基于yolov5的口罩佩戴识别
Python老师给了三个小组项目:1.自身专业问题 2.人工智能 3.游戏或者小工具 提前告知了,写游戏不好拿高分,小工具又不能展示自己的水平.大一刚来也没碰到什么专业问题,于是经过讨论,决定了做人工 ...