基于Java实现的用于计算个人所得税的程序
资源下载地址:https://download.csdn.net/download/sheziqiong/86768628
资源下载地址:https://download.csdn.net/download/sheziqiong/86768628
一、功能
基于命令行界面的计算个人所得税程序,根据用户输入的当月工资薪金总额计算应缴纳的个人所得税额
收入总额减去免征基数后剩余部分称为应纳税所得额,根据应纳税所得额按某种规定计算应缴纳的个人所得税
默认起征点为 1600 元
默认计税规则如下:
级别 应纳税所得额 税率 % 1 不超过 500 元的 5 2 超过 500 元至 2,000 元的部分 10 3 超过 2,000 元至 5,000 元的部分 15 4 超过 5,000 元至 20,000 元的部分 20 5 超过 20,000 元部分 25 该程序应支持对个人所得税起征点进行调整
个人所得税各级税率也允许修改
例如,张三某月工资薪金总收入为 4,300 元,减去免征基数 1,600 元,则应纳税所得额为 2,700 元。
应纳税所得额中,超过 2,000 部分为 2,700 – 2,000 = 700 元,按 15% 税率计算应纳税 105 元;而 500 元 至 2,000 元的部分为 1,500 元,按 10% 税率计算应纳税 150 元;不超过 500 元的部分为 500 元,按 5% 税率计算应纳税 25 元。
所以,该月张三应缴纳的个人所得税金额为 105 + 150 + 25 = 280 元。
二、文件结构
src
文件夹中为代码源程序run.sh
为编译运行的批处理文件,终端运行./run.sh
即可运行程序out
文件夹中为编译后的.class
文件JavaDoc
文件夹中为生成的JavaDoc
文档,用浏览器打开其中的index.html
即可
三、设计思路
1. UML 类图
2. 结构描述
我设计了三个类,其中:
- 类
Presentation
用于显示界面以及和用户交互 IO - 类
TaxTable
根据计税规则维护一个表,包括创建和修改,并包括规则某些金额的获取函数供其他类调用 - 类
TaxCalculator
用于计算所得税的具体金额
上面只为简述,各个类的详细信息、各变量含义、各函数含义与参数意义详见代码注释或
JavaDoc
文档
四、编译与运行
1. JDK 版本:Java8
2. 编译与运行
在主目录下(即 src 文件夹的父目录)运行:
javac -sourcepath src -d out src/*.java
cd out
java personaltax.Presentation
此外,我已将这三条命令写到了批处理文件 run.sh
中,也可以直接运行:
./run.sh
五、运行截图
运行后的开始界面,会显示当前各种信息:
指令“1”,计算所得税金额
这个测例即为要求文档中的例子,工资 4300 元所得税 280 元。
3. 指令“2”,改变起征点金额
- 指令“3”,改变税率及计税规则
- 指令“4”,退出程序
六、错误数据处理
除了基础功能外,如果输入了一些“不合法”的数据,程序也会提示并要求重新输入:
输入的指令并非 1、2、3 或 4:
输入的起征点金额不大于 0:
输入的税率不在 0-1 之间:
输入的税率不在 0-1 之间:
资源下载地址:https://download.csdn.net/download/sheziqiong/86768628
资源下载地址:https://download.csdn.net/download/sheziqiong/86768628
基于Java实现的用于计算个人所得税的程序相关推荐
- 基于java springboot的小说阅读微信小程序含后台管理系统源码
系统运行环境 开发工具 eclipse(idea),mysql5.7(大于5.5),navicat,小程序开发工具 硬件要求 windows操作系统 cpu:2.4GHz 内存:4G 硬盘:100G ...
- 并发型服务器响应方式,基于Java NIO 开发高性能并发型服务器程序的研究
基于Java NIO 开发高性能并发型服务器程序的研究 第8卷%第5期 软件导刊 2009年5月SoftwareGuide Vol.8No.5May.2009 基于JavaNIO开发高性能并发型服务器 ...
- 计算机毕业设计ssm基于java的仓储信息管理系统o9ypl系统+程序+源码+lw+远程部署
计算机毕业设计ssm基于java的仓储信息管理系统o9ypl系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于java的仓储信息管理系统o9ypl系统+程序+源码+lw+远程部署 本源码技术栈 ...
- 计算机毕业设计ssm基于Java通识课程管理系统v87xr系统+程序+源码+lw+远程部署
计算机毕业设计ssm基于Java通识课程管理系统v87xr系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于Java通识课程管理系统v87xr系统+程序+源码+lw+远程部署 本源码技术栈: ...
- [附源码]Nodejs计算机毕业设计基于Java的班主任管理系统的实现Express(程序+LW)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: Node.js+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vue ...
- [附源码]Python计算机毕业设计SSM基于Java的班主任管理系统的实现(程序+LW)
环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,St ...
- java计算两个日期之间的周数_编写一个JAVA类,用于计算两个日期之间的周数。...
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class dem ...
- 简单网络聊天程序java_基于Java实现hello/hi简单网络聊天程序
Socket简要阐述 Socket的概念 Socket的英文原义是"孔"或"插座". 在网络编程中,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连 ...
- 基于JAVA+SpringMVC+Mybatis+MYSQL的微信小程序图书借阅管理系统
项目介绍 一款用于图书推荐.搜索.借阅.交流的微信小程序 使用技术 前端 微信小程序 UI框架: Amaze UI 数据可视化处理库: Highcharts.js 后端 Web MVC框架: Spri ...
最新文章
- .NET简谈组件程序设计之(手动同步)
- JAVA线程的interrupt
- build.xml编译报错Specified VM install not found: type Standard VM, name jdk1.7.0_45
- Cartographor定位-shell脚本:不停拉起死掉的程序和脚本
- python 3.6.5编译安装_Linux系统安装Python3.6.5
- 滤波器开发之五:基于算术平均的限幅滤波器
- python之yield
- nginx 的启动、停止与重启
- 使用Windows迁移工具迁移2003至2012R2 二、IP迁移
- 基于RV1126平台imx291分析 --- 运行设备(VIDIOC_STREAMON)
- mysql java uuid_Java生成UUID 与 MySQL数据库如何生成uuid数据
- Spring-cloud学习教程视频
- Revertable STFT
- dex转为java_android - 将DEX反编译成Java源代码
- (图像加密)常用图像置乱算法matlab实现(三)
- 潇洒郎:Ten-fold-cross validation- Naïve Bayes Classifier 十字交叉验证-贝叶斯分类器 Python实现
- 【hadoop生态之Hbase】HBase部署与使用【笔记+代码】
- 激光雷达技术路线:机械式、MEMS是主流,OPA、Flash、FMCW发展空间大
- 仓库防霉防潮作业指导书
- 批量关闭公众号推送_微信发大招,长期不读的公众号可“批量关闭”!