JAVA计算个人所得税设计
- 格式:doc
- 大小:138.50 KB
- 文档页数:18
个人所得税计算程序设计实验工程1503 李景旺2015308200819 10.2 实验目的用MATLAB 编程计算,输入个人税前收入,求其应交多少个人所得税。
实验结果实验结果分析税前收入高于3500的计算结果都是正确的,但是税前收入低于3500的结果出现了错误。
错误是由于设计程序时忘记考虑税前收入低于3500的情况。
程序x=input('请输入税前收入')x=x-3500;switch fix(x/500)case{0,1,2}y=x*0.03;case num2cell(3:8)y=1500*0.03+(x-1500)*0.1;case num2cell(9:17)y=1500*0.03+3000*0.1+(x-4500)*0.2;case num2cell(18:69)y=1500*0.03+3000*0.1+4500*0.2+(x-9000)*0.25;case num2cell(70:109)y=1500*0.03+3000*0.1+4500*0.2+26000*0.25+(x-35000)*0.3;case num2cell(110:160)y=1500*0.03+3000*0.1+4500*0.2+26000*0.25+20000*0.3+(x-55000)*0.35; otherwisey=1500*0.03+3000*0.1+4500*0.2+26000*0.25+20000*0.3+25000*0.35+(x-8000 0)*0.45;endy心得设计程序解决实际问题时应充分考虑每一种可能存在的情况,一定不能遗漏。
运行后发现结果出现问题应及时修改程序,不断完善。
房价与财富转移的文献概述汤浩、刘旦(撰文研究了商品房平均价格水平、城镇居民收入差距和基尼系数之间的长期关系,表明商品房价格水平的上涨扩大了城镇居民收入差距。
对其原因分析如下:住房金融市场在操作上“嫌贫爱富”的贷款机制是扩大财富差距的主要原因。
实验报告——计算个人所得税一.需求:根据实验的要求,本实验的主要功能需求如下:1.要求能根据既定的个人所得税起征点和税率表计算出应该缴纳的个人所得税。
2.要求能对个人所得税起征点进行调整。
3.要求个人所得税各级税率也允许修改。
4.要求提供命令行形式的菜单实现。
针对该程序的实际需要,个人觉得实际应用中还有可能增加税率级数或对每级的起讫值有所调整;当税率值调整时,为避免每次都要设置税率参数,可将参数持久化到文件中,因此增加了以下需求:5.要求能重新构造税率表,并用新的税率表进行个人所得税的计算。
6.可将当前税率表存储到文件中或从已经存在的文件中读取参数。
二.系统分析与实现鉴于这是一个小系统,本报告没有写出详细的用例图及流程分析,只给出简要的系统设计。
以下是每个类的设计:TaxItem:当对税率表进行调整时,每个税率表的级数并不是一样的,根据面向对象的思想,每一个税率项应该作为最小的类。
因此系统中定义了一个类,TaxItem,记录每一个税率项的信息,它包括三个域,分别为税率项起点、终点和税率,即taxStartPoint、taxEndPoint和taxRate,它们定义为私有成员,于是定义了相应的访问器。
税率表里包含若干个税率项,可以用一个ArrayList来代替它,这样省去了再定义一个代表税率表的类。
Constants在进行大型程序设计时,有必要定义一个Constants类用于存储常量,因此本系统中定义了一个这样的类,里边只含一个常量,MAX_INCOME,用于存储现实中只收入的上限。
TaxComputer计算税率是一个业务逻辑,有必要将它独立出来,单独作为一个模块,本程序定义了TaxComputer用于实现这个功能,里边只有一个函数,compute,该函数通过传给他的税率表,起征点和收入值计算个人所得税。
把这个类设计为实用类,所以函数是静态的,可以通过类名进行访问。
FileAccessor这个类专门实现对计税参数的读写,包括主要的四个函数,saveParas用于保存参数,loadParas 用于读取参数,getTaxList和getStartingPoint得到税率表起征点。
《个人所得税计算系统》设计
一、需求说明
设计一个简易的个人所得税计算系统,通过输入个人应发工资计算出各个地区的三险(医疗保险、养老保险)一金(公积金)和个人所得税。
系统需要实现用户登录、退出、选择地区计算三险一金、个人所得税等功能,并且相关功能要实现循环使用。
相关数据如下图所示:
相关计算公式:
个人所得税 =(应发工资 - 三险一金 - 5000)* 税率–速算扣除数
税后工资 = 应发工资–个人所得税
实发工资 = 税后工资 - 三险一金
养老保险 = 应发工资 * 比例
医疗保险 = 应发工资 * 比例
失业保险 = 应发工资 * 比例
公积金 = 应发工资 * 比例
二、实现效果
2.1 用户登录
验证登录账号及密码,验证通过则进入系统,验证不通过则提示错误信息,并重新回到用户登录界面。
2.2 退出系统
选择退出系统则提示退出系统成功并回到系统登录界面。
2.3 计算个人所得税
成功登录系统后,选择城市,并输入应发工资计算出养老保险、医疗保险、失业保险、公积金、个人所得税、税后工资以及实发工资,并将相关数据打印出来,随后重新回到选择城市界面。
实验3-6计算个⼈所得税(10分)假设个⼈所得税为:税率×(⼯资−1600)。
请编写程序计算应缴的所得税,其中税率定义为:当⼯资不超过1600时,税率为0;当⼯资在区间(1600, 2500]时,税率为5%;当⼯资在区间(2500, 3500]时,税率为10%;当⼯资在区间(3500, 4500]时,税率为15%;当⼯资超过4500时,税率为20%。
输⼊格式:输⼊在⼀⾏中给出⾮负⼯资。
输出格式:在⼀⾏输出个⼈所得税,精确到⼩数点后2位。
输⼊样例1:1600输出样例1:0.00输⼊样例2:1601输出样例2:0.05输⼊样例3:3000输出样例3:140.00输⼊样例4:4000输出样例4:360.00输⼊样例5:5000输出样例5:680.00代码:# include <stdio.h># include <stdlib.h>int main() {double salary,pay;scanf("%lf",&salary);if (salary <= 1600) pay = 0;else if (salary <= 2500) {pay = (salary - 1600) * 0.05;}else if (salary <= 3500) {pay = (salary - 1600) * 0.1;}else if (salary <= 4500) {pay = (salary - 1600) * 0.15;}else {pay = (salary - 1600) * 0.2;}printf("%.2lf",pay);return 0;}提交截图:解题思路:只是主⼈的任务(分段函数的应⽤~)罢了,其实这么设置蛮不合理的,我觉得应该是每个档按照该档的税率交,⽐如:我每⽉薪资4500元,那么我需要交的费⽤是:0 + (2500 - 1600) * 0.05 + (3500 - 2500) * 0.1 + (4500 - 3500) * 0.15 = 295.0。
个人所得税计算器的程序设计及代码示例在现代社会中,个人所得税是居民必须缴纳的一项重要税种。
为了方便居民计算个人所得税,许多计算机程序员开发了个人所得税计算器。
本文将介绍个人所得税计算器的程序设计思路,并提供一个简单的代码示例。
一、程序设计思路个人所得税计算器的程序设计思路主要分为以下几个步骤:1. 用户输入收入金额:程序需要接受用户输入的收入金额,一般以年为单位。
可以通过输入框或命令行参数的方式获取用户输入。
2. 判断适用税率及速算扣除数:根据用户输入的收入金额,判断其适用的税率和速算扣除数。
个人所得税税率一般分为几个档次,不同档次的税率和速算扣除数不同。
3. 计算应缴纳的个人所得税:根据适用税率和速算扣除数,计算用户应缴纳的个人所得税金额。
4. 输出计算结果:将计算结果以适当的方式展示给用户,例如在界面上显示或通过命令行输出。
二、代码示例下面是一个使用Python编写的个人所得税计算器的简单代码示例:```pythonincome = float(input("请输入您的收入金额(年):")) if income <= 36000:tax_rate = 0.03deduction = 0elif income <= 144000:tax_rate = 0.1deduction = 2520elif income <= 300000:tax_rate = 0.2deduction = 16920elif income <= 420000:tax_rate = 0.25deduction = 31920elif income <= 660000:tax_rate = 0.3deduction = 52920elif income <= 960000:tax_rate = 0.35deduction = 85920else:tax_rate = 0.45deduction = 181920tax = (income * tax_rate) - deductionprint("您的个人所得税金额为:", tax)```以上代码首先通过`input`函数获取用户输入的收入金额,然后使用条件判断语句判断所适用的税率和速算扣除数,并计算出个人所得税金额。
【实验题1】安装JDK步骤如下。
1.打开JDK安装程序,按照提示进行JDK的安装。
2.环境变量的设定1.右击【我的电脑】,选择属性命令,在高级属性里,切换到高级选项卡,点击环境变量按钮。
2.在系统变量列表框里找到Path,双击Path,在变量已有的值后边填加“;d:\jdk\bin”,单击确定,进行保存。
3.打开命令提示框,输入java,提示设置成功【实验题2】使用eclipse开发简单的小程序---HellowWorld步骤如下。
1.新建项目:Text2.在项目里新建class类Hellowworld3.编写代码:public class HellowWord {public static void main(String[] args) {System.out.println("Hellow world!");}}4.调试运行【实验题3】从键盘输入小写字母,回显并输出其对应的大写字母。
步骤如下。
1.新建class类newZimu2.编写代码public class newZimu {public static void main(String[] args) {try{System.out.print("请输入一个小写字母:");int a = System.in.read();char b=(char)(a-32);System.out.print("大写字母是:"+b);}catch(Exception e){System.out.print(e);}}}3.调试运行【实验题4】计算个人所得税。
设某人月收入为x元(x由键盘输入),假设个人所得税征收方法如下:(1)当800<x≤1300时,应征税为(x-800)*5%;当1300<x≤2800时,应征税为(x-800)*10%;(2)当2800<x≤5800时,应征税为(x-800)*15%;当5800<x≤28000时,应征税为(x-800)*20%;(3)当28000<x时,应征税为(x-800)*30%步骤如下。
JAVA计算个人所得税设计首先,我们需要定义个人所得税的法定税率。
根据我国税法规定,个人所得税有多个不同的税率档位,每个档位对应不同的收入区间和税率。
我们可以使用一个数组来存储这些税率,以便在程序中使用。
```javadouble[] taxRates = {0.03, 0.10, 0.20, 0.25, 0.30};```接下来,我们需要定义个人所得税的税基。
税基是用于计算个人所得税的的收入金额。
我们可以在程序中定义一个变量来表示税基。
```javadouble taxBase;```然后,我们需要获取用户输入的个人收入金额,并进行相关的计算。
可以使用Scanner类来实现用户输入功能。
```javaimport java.util.Scanner;public static void main(String[] args)// 创建Scanner对象Scanner scanner = new Scanner(System.in);//提示用户输入收入金额System.out.print("请输入个人收入金额:");//获取用户输入的收入金额//计算个人所得税//输出个人所得税金额System.out.println("个人所得税金额为:" + tax);// 关闭Scanner对象scanner.close(;}//定义个人所得税税率double[] taxRates = {0.03, 0.10, 0.20, 0.25, 0.30};//定义个人所得税税基double taxBase;//判断收入所属档位,并计算个人所得税} else}}```这是一个简单的个人所得税计算程序,仅考虑了税率档位和收入金额的计算。
在实际应用中,还需要考虑其他因素,如税前扣除和税后抵扣。
此外,税法规定每年有一定的免税额,超过免税额部分才需要缴纳个人所得税。
这些因素可以进一步扩展和完善该程序。
个人所得税税率表及Java计算程序个人所得税税率表及Java计算程序应税工资调整前税率调整后(征求意见稿)调整后(终稿)税差1 税差2500 0 0 0 0 01000 0 0 0 0 01500 0 0 0 0 02000 0 0 0 0 02500 25 0 0 -25 -253000 75 0 0 -75 -753500 125 25 0 -100 -125 4000 175 50 15 -125 -160 4500 250 75 30 -175 -220 5000 325 125 45 -200 -280 5500 400 175 95 -225 -305 6000 475 225 145 -250 -330 6500 550 275 195 -275 -355 7000 625 325 245 -300 -380 7500 725 375 295 -350 -430 8000 825 475 345 -350 -480 8500 925 575 445 -350 -480 9000 1025 675 545 -350 -480 9500 1125 775 645 -350 -480 10000 1225 875 745 -350 -480 10500 1325 975 845 -350 -480 11000 1425 1075 945 -350 -480 11500 1525 1175 1045 -350 -480 12000 1625 1275 1145 -350 -480 12500 1725 1400 1245 -325 -480 13000 1825 1525 1370 -300 -455 13500 1925 1650 1495 -275 -430 14000 2025 1775 1620 -250 -405 14500 2125 1900 1745 -225 -380 15000 2225 2025 1870 -200 -355 15500 2325 2150 1995 -175 -330 16000 2425 2275 2120 -150 -305 16500 2525 2400 2245 -125 -280 17000 2625 2525 2370 -100 -255 17500 2725 2650 2495 -75 -230 18000 2825 2775 2620 -50 -205 18500 2925 2900 2745 -25 -180 19000 3025 3025 2870 0 -155 19500 3125 3150 2995 25 -130 20000 3225 3275 3120 50 -10520500 3325 3400 3245 75 -80 21000 3425 3525 3370 100 -55 21500 3525 3650 3495 125 -30 22000 3625 3775 3620 150 -522500 3750 3900 3745 150 -5 23000 3875 4025 3870 150 -5 23500 4000 4150 3995 150 -5 24000 4125 4275 4120 150 -5 24500 4250 4400 4245 150 -5 25000 4375 4525 4370 150 -5 25500 4500 4650 4495 150 -5 26000 4625 4775 4620 150 -5 26500 4750 4900 4745 150 -5 27000 4875 5025 4870 150 -5 27500 5000 5150 4995 150 -5 28000 5125 5275 5120 150 -5 28500 5250 5400 5245 150 -5 29000 5375 5525 5370 150 -5 29500 5500 5650 5495 150 -5 30000 5625 5775 5620 150 -5 30500 5750 5900 5745 150 -5 31000 5875 6025 5870 150 -5 31500 6000 6150 5995 150 -5 32000 6125 6275 6120 150 -5 32500 6250 6400 6245 150 -5 33000 6375 6525 6370 150 -5 33500 6500 6650 6495 150 -5 34000 6625 6775 6620 150 -5 34500 6750 6900 6745 150 -5 35000 6875 7025 6870 150 -5 35500 7000 7150 6995 150 -5 36000 7125 7275 7120 150 -5 36500 7250 7400 7245 150 -5 37000 7375 7525 7370 150 -5 37500 7500 7650 7495 150 -5 38000 7625 7775 7620 150 -5 38500 7750 7925 7745 175 -5 39000 7875 8075 7895 200 20 39500 8000 8225 8045 225 45 40000 8125 8375 8195 250 70 40500 8250 8525 8345 275 95 41000 8375 8675 8495 300 120 41500 8500 8825 8645 325 145 42000 8625 8975 8795 350 170 42500 8775 9125 8945 350 170 43000 8925 9275 9095 350 170 43500 9075 9425 9245 350 170 44000 9225 9575 9395 350 170 44500 9375 9725 9545 350 170 45000 9525 9875 9695 350 170 45500 9675 10025 9845 350 170 46000 9825 10175 9995 350 170 46500 9975 10325 10145 350 170 47000 10125 10475 10295 350 170 47500 10275 10625 10445 350 170 48000 10425 10775 10595 350 170 48500 10575 10925 10745 350 170 49000 10725 11075 10895 350 170 49500 10875 11225 11045 350 170 50000 11025 11375 11195 350 170 50500 11175 11525 11345 350 170 51000 11325 11675 11495 350 170 51500 11475 11825 11645350 170 52000 11625 11975 11795 350 170 52500 11775 12125 11945 350 170 53000 11925 12275 12095 350 170 53500 12075 12425 12245 350 170 54000 12225 12575 12395 350 170 54500 12375 12725 12545 350 170 55000 12525 12875 12695 350 170 55500 12675 13025 12845 350 170 56000 12825 13175 12995 350 170 56500 12975 13325 13145 350 170 57000 13125 13475 13295 350 170 57500 13275 13625 13445 350 170 58000 13425 13775 13595 350 170 58500 13575 13950 13745 375 170 59000 13725 14125 13920 400 195 59500 13875 14300 14095 425 220 60000 14025 14475 14270 450 245 60500 14175 14650 14445 475 270 61000 14325 14825 14620 500 295 61500 14475 15000 14795 525 320 62000 14625 15175 14970 550 345 62500 14800 15350 15145 550 345 63000 14975 15525 15320 550 345 63500 15150 15700 15495 550 345 64000 15325 15875 15670 550 345 64500 15500 16050 15845 550 345 65000 15675 16225 16020 550 345 65500 15850 16400 16195 550 345 66000 16025 16575 16370 550 345 66500 16200 16750 16545 550 345 67000 16375 16925 16720 550 345 67500 16550 17100 16895 550 345 68000 16725 17275 17070 550 345 68500 16900 17450 17245 550 345 69000 17075 17625 17420 550 345 69500 17250 17800 17595 550 345 70000 17425 17975 17770 550 345 70500 17600 18150 17945 550 345 71000 17775 18325 18120 550 345 71500 17950 18500 18295 550 345 72000 18125 18675 18470 550 345 72500 18300 18850 18645 550 345 73000 18475 19025 18820 550 345 73500 18650 19200 18995 550 345 74000 18825 19375 19170 550 345 74500 19000 19550 19345 550 345 75000 19175 19725 19520 550 345 75500 19350 19900 19695 550 345 76000 19525 20075 19870 550 345 76500 19700 20250 20045 550 345 77000 19875 20425 20220 550 345 77500 20050 20600 20395 550 345 78000 20225 20775 20570 550 345 78500 20400 2095020745 550 345 79000 20575 21125 20920 550 345 79500 20750 21300 21095 550 345 80000 20925 21475 21270 550 345 80500 21100 21650 21445 550 345 81000 21275 21825 21620 550 345 81500 21450 22000 21795 550 345 82000 21625 22175 21970 550 345 82500 21825 22350 22145 525 320 83000 22025 22525 22320 500 295 83500 22225 22750 22495 525 270 84000 22425 22975 22720 550 295 84500 22625 23200 22945 575 320 85000 22825 23425 23170 600 345 85500 23025 23650 23395 625 370 86000 23225 23875 23620 650 39586500 23425 24100 23845 675 420 87000 23625 24325 24070 700 445 87500 23825 24550 24295 725 470 88000 24025 24775 24520 750 495 88500 24225 25000 24745 775 520 89000 24425 25225 24970 800 545 89500 24625 25450 25195 825 570 90000 24825 25675 25420 850 595 90500 25025 25900 25645 875 620 91000 25225 26125 25870 900 645 91500 25425 26350 26095 925 670 92000 25625 26575 26320 950 695 92500 25825 26800 26545 975 720 93000 26025 27025 26770 1000 745 93500 26225 27250 26995 1025 770 94000 26425 27475 27220 1050 795 94500 26625 27700 27445 1075 820 95000 26825 27925 27670 1100 845 95500 27025 28150 27895 1125 870 96000 27225 28375 28120 1150 895 96500 27425 28600 28345 1175 920 97000 27625 28825 28570 1200 945 97500 27825 29050 28795 1225 970 98000 28025 29275 29020 1250 995 98500 28225 29500 29245 1275 1020 99000 28425 29725 29470 1300 1045 99500 28625 29950 29695 1325 1070 100000 28825 30175 29920 1350 1095 100500 29025 30400 30145 1375 1120 101000 29225 30625 30370 1400 1145 101500 29425 30850 30595 1425 1170 102000 29625 31075 30820 1450 1195 102500 29850 31300 31045 1450 1195 103000 30075 31525 31270 1450 1195 103500 30300 31750 31495 1450 1195 104000 30525 31975 31720 14501195 104500 30750 32200 31945 1450 1195附Java计算程序:public class Tax{static double[] free = {2000, 3000, 3500};static double[][] bands = {{ 0, 500, 2000, 5000, 20000, 40000, 60000, 80000, 100000}, { 0, 1500, 4500, 9000, 35000, 55000, 80000},{ 0, 1500, 4500, 9000, 35000, 55000, 80000}};static double[][] rates = {{5, 10, 15, 20, 25, 30, 35, 40, 45 },{5, 10, 20, 25, 30, 35, 45 },{3, 10, 20, 25, 30, 35, 45 }};static double tax(int type, double incomeForTax){double t = 0;int index = 1;incomeForTax = incomeForTax - free[type];if (incomeForTax< 0){return 0;}while (index < bands[type].length &&incomeForTax> bands[type][index]) {index ++;}for (inti = 0; i< index; i++){double delta = 0;if( i+1 bands[type][i+1] ) {delta = (bands[type][i+1] - bands[type][i]) * rates[type][i]/100;}else{delta = (incomeForTax - bands[type][i]) * rates[type][i]/100;}t += delta;}return t;}static public void main(String[]args){double income = 500;for (inti = 1; i< 210;i++){comp(income * i);}}static public void comp(double income) {double t1 = tax(0, income);double t2 = tax(1, income);double t3 = tax(2, income); System.out.print((int)income + "\t"); System.out.print((int)t1 + "\t"); System.out.print((int)t2 + "\t"); System.out.print((int)t3 + "\t"); System.out.print((int)(t2-t1) + "\t") ; System.out.print((int)(t3-t1) + "\n") ; }}。
工资纳税系统java课程设计一、课程目标知识目标:1. 学生能理解并掌握Java语言中面向对象编程的基本概念和技能;2. 学生能运用所学知识,设计并实现一个工资纳税系统,包括职工信息管理、工资计算和纳税处理等功能;3. 学生能理解我国个人所得税的计算方法及相关政策。
技能目标:1. 学生能够运用Java语言编写出结构清晰、可读性强的代码;2. 学生能够通过本课程的学习,掌握使用Java进行问题分析、设计和解决方案的能力;3. 学生能够运用调试工具检查并修复程序中的错误,提高程序的稳定性。
情感态度价值观目标:1. 学生通过课程学习,培养对编程的兴趣和热情,提高主动学习和解决问题的能力;2. 学生能够认识到编程在实际生活中的应用,增强将所学知识应用于实际问题的意识;3. 学生在课程学习中,培养团队合作精神,提高沟通与协作能力。
课程性质分析:本课程为Java语言课程设计,注重实践性和应用性,旨在让学生通过实际操作,掌握Java编程的基本技能。
学生特点分析:学生为高年级本科生,已具备一定的Java编程基础,具有较强的自学能力和问题解决能力。
教学要求:1. 理论与实践相结合,注重培养学生的实际编程能力;2. 引导学生主动探索和解决问题,提高学生的创新思维能力;3. 注重团队协作,培养学生的沟通与协作能力。
二、教学内容1. 面向对象编程基础回顾:复习Java中的类、对象、继承、多态等基本概念,巩固学生面向对象编程的思想。
教材章节:《Java面向对象程序设计》第1-3章2. 工资纳税系统需求分析:分析工资纳税系统的功能需求,明确系统所需处理的数据和业务流程。
教材章节:《软件工程》第4章 需求分析3. 系统设计:学习Java GUI编程,设计工资纳税系统的用户界面;学习数据库编程,设计系统数据存储结构。
教材章节:《Java GUI编程》第1-2章;《Java数据库编程》第1-2章4. 工资计算与纳税处理:学习个人所得税的计算方法,实现工资计算和纳税处理功能。
《JAVA语言程序设计》课程设计——计算个人所得税设计系别:计算机系专业:计算机科学与技术年级:07计算机本科(2)班姓名:钟俊杰指导教师:齐勇军2010年6月28日—2010年6月30日目录《JAVA语言程序设计》课程设计...............................................- 1 -一、摘要 ........................................................................................- 3 -二、需求分析................................................................................- 3 -2.1背景介绍 . (3)2.2功能需求 (4)三、总体设计................................................................................- 4 -四、详细设计................................................................................- 5 -五:代码实现及运行情况:........................................................- 5 -六、代码清单:............................................................................- 7 -七、小结 ..................................................................................... - 16 -八、参考文献............................................................................. - 18 -一、摘要本设计是一个基于命令行界面的计算个人所得税应用程序,根据用户输入的当月工资薪金总额计算应缴纳的个人所得税额。
为适应未来个人所得税法的可能变化,该程序支持对个人所得税起征点进行调整的功能,并且个人所得税各级税率也允许修改。
利用简单的菜单方式让用户选择所需的功能。
设计中主要用到JFrame 、Frame、JTextField、TextField、Button这几个类。
关键字:计算个人所得税、JFrame 、Frame、JTextField、TextField、Button二、需求分析2.1背景介绍个人所得税,是调整征税机关与自然人之间在个人所得税的征纳与管理过程中所发生的社会关系的法律规范的总称。
凡在中国境内有住所,或者无住所而在中国境内居住满一年的个人,从中国境内和境外取得所得的,以及在中国境内无住所又不居住或者无住所而在境内居住不满一年的个人,从中国境内取得所得的,均为个人所得税的纳税人。
随着社会和经济的发展,计算个人所得税已成为人们日常生活中必不可少的重要内容,因此一个计算所得税系统是人们生活中一个重要的计算工具。
根据此背景,我们开发了一个简单而且容易操作的个人所得税的系统,希望能够给人们带来方便。
2.2功能需求本系统是一个计算个人所得税的应用程序,用户可以输入的当月工资薪金总额,从而系统会自动计算应缴纳的个人所得税额。
同时,我们根据实际情况,还增加了个人所得税的修改等功能,通过简洁的菜单栏上的操作,用户可以轻松地根据实际情况作出税率等数据的调整,从而达到准确的计算结果。
三、总体设计根据Java的特点,我们利用类的设计,简单实现查询当前免征基数及税率、更改免征基数、更改税率、个人所得税的计算的功能。
方便用户使用及查询。
在类的设计过程中,主要用到了以下几个类:GRS:、Windowclose: 、Calculate: 、XiuGai1 、XiuGai2:四、详细设计以下是每个类的设计:GRS:主体类:此类是用于显示主窗体中,所有类都是此类的内部类。
Windowclose: 关闭窗体类,这个类的作用是当要关闭一个窗体调用这类Calculate:用于计算税,这个类主要用于完成税的计算,这个类继承了ActionListener 接口,用于监听calculate按钮产生的事件。
XiuGai1:修改免征基数XiuGai2:修改税率五:代码实现及运行情况:1.用javac Application运行程序的命令行显示如下界面:2、登录后进入选择功能界面:3、进行选择功能:选择功能1,计算个人所得税。
输入工资,计算出结果2.进行功能选择:选择功能2,查询免征基数和税率,查询结果如下图所示:4、进行功能选择:选择功能3,修改免征基数,运行结果如下图:5、进行功能选择:选择功能4,修改税率。
运行结果如下:六、代码清单:import java.awt.Choice;import java.awt.Dialog;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.GridLayout;import bel;import java.awt.List;import java.awt.ScrollPane;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import ng.String;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;import java.awt.BorderLayout;import java.awt.Frame;import bel;import java.awt.Panel;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;//用户登录界面public class GRS extends Frame implements ActionListener { private static final long serialVersionUID = 6347084101268070174L;static double base=1600; //免征基数static double[] taxRate={0.05, 0.10, 0.15, 0.20, 0.25};//各级税率public static void main(String[] args) {Frame frame = new Frame();new GRS(frame);}Label Label1 = new Label("用户名:");TextField textfieldialog = new TextField("密码:123");Label Label2 = new Label("用户密码:");TextField textfield2 = new TextField(10);Label Label5 = new Label("用户地区:");Choice choice = new Choice();Label Label6 = new Label("用户类别:");List list = new List(2, false);JButton button1 = new JButton("确定");JButton button2 = new JButton("取消");Dialog dialog = new Dialog(this, "提示信息", false);ScrollPane sp = new ScrollPane();public GRS(Frame frame) {super("个人所得税查询");add(Label1);add(textfieldialog);add(Label2);textfield2.setEchoChar('*');add(textfield2);add(Label5);choice.addItem("广东");choice.addItem("上海");choice.addItem("北京");add(choice);add(Label6);list.add("普通用户");list.add("管理员");sp.add(list);add(sp);add(button1);button1.addActionListener(this);add(button2);button2.addActionListener(this);setLayout(new GridLayout(5, 2, 5, 20));setBounds(430, 430, 300, 200);setResizable(false);setVisible(true);addWindowListener(new windowclose());}public class windowclose extends WindowAdapter {public void windowClosing(WindowEvent e) {System.exit(0);}}//主菜单public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("确定")) {if (textfield2.getText().trim().equals("123")) {addWindowListener(new windowclose());JFrame f = new JFrame("主菜单");JButton button5 = new JButton("1: 计算个人所得税");JButton button6 = new JButton("2: 查询免征基数和税率");JButton button7 = new JButton("3: 修改免征基数");JButton button8 = new JButton("4: 修改税率");f.add(button5);f.add(button6);f.add(button7);f.add(button8);button5.addActionListener(new ButAL());button6.addActionListener(new ChaXun());button7.addActionListener(new XiuGai1());button8.addActionListener(new XiuGai2());f.setLayout(new GridLayout(2, 2, 5, 20));f.setBounds(385, 420, 400, 220);f.setResizable(false);f.setVisible(true);}else {dialog.setLayout(newFlowLayout(FlowLayout.CENTER));Label tf = new Label("对不起,密码错误,请重试");dialog.add(tf);dialog.setBounds(455, 430, 250, 60);dialog.setResizable(false);dialog.setVisible(true);dialog.addWindowListener(new windowclose());}} elseSystem.exit(0);}//计算个人所得税private class ButAL implements ActionListener {double income = -1; //个人收入double revenue = -1; //个人所得税JTextField testField;JTextField resultField;GRS r;public void actionPerformed(ActionEvent event) {JFrame f = new JFrame("个人所得税的计算");JLabel jl = new JLabel("请输入你的工资:");JLabel result = new JLabel("计算的结果:");testField = new JTextField(5);resultField = new JTextField(5);JButton calculate = new JButton("计算");calculate.addActionListener(new Calculate());f.add(jl);f.add(testField);f.add(calculate);f.add(result);f.add(resultField);f.setLayout(new GridLayout(2, 3, 3, 20));f.setBounds(380, 500, 400, 100);f.setResizable(false);f.setVisible(true);}private class Calculate implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {String s1 = testField.getText().trim();income = Double.valueOf(s1);double taxible = income - r.base;if (taxible > 20000)revenue = (taxible - 20000) * r.taxRate[4] + 15000* r.taxRate[3] + 3000 * r.taxRate[2] + 1500* r.taxRate[1] + 500 * r.taxRate[0];else if (taxible > 5000)revenue = (taxible - 5000) * r.taxRate[3] + 3000 * r.taxRate[2]+ 1500 * r.taxRate[1] + 500 * r.taxRate[0];else if (taxible > 2000)revenue = (taxible - 2000) * r.taxRate[2] + 1500 * r.taxRate[1]+ 500 * r.taxRate[0];else if (taxible > 500)revenue = (taxible - 500) * r.taxRate[1] + 500 * r.taxRate[0];else if (taxible > 0)revenue = taxible * r.taxRate[0];else if (taxible <= 0)revenue = 0;String s2 = String.valueOf(revenue);resultField.setText(s2);}}}//查询免征基数和税率private class ChaXun implements ActionListener {GRS r;@Overridepublic void actionPerformed(ActionEvent e) {final JFrame f = new JFrame("查询"); //窗体1JTextField f1 = new JTextField();JTextField f2 = new JTextField();JTextField f3 = new JTextField();JTextField f4 = new JTextField();JTextField f5 = new JTextField();JTextField f6 = new JTextField();f.add(f1);f1.setText(" 免征基数为:" + String.valueOf(r.base)); //输入免征基数f.setLayout(new GridLayout(6, 1, 3, 5));f.add(f2);f.add(f3);f.add(f4);f.add(f5);f.add(f6);f2.setText(" 一级税率为:" + r.taxRate[0]);f3.setText(" 二级税率为:" + r.taxRate[1]);f4.setText(" 三级税率为:" + r.taxRate[2]);f5.setText(" 四级税率为:" + r.taxRate[3]);f6.setText(" 五级税率为:" + r.taxRate[4]);f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {f.setVisible(false);}});f.setBounds(385, 420, 400, 200);f.setResizable(false);f.setVisible(true);}}//修改免征基数private class XiuGai1 implements ActionListener{GRS r;TextField tf = new TextField(10);Frame f = new Frame("修改免征基数");@Overridepublic void actionPerformed(ActionEvent e) {f.add(new Label("现在的免征基数为:" + r.base), BorderLayout.NORTH);f.add(new Label("请输入新的免征基数: "), BorderLayout.CENTER);f.add(tf, BorderLayout.EAST);tf.addActionListener(new TextFieldListener());f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {f.setVisible(false);}});f.setBounds(425, 460, 300, 120);f.setResizable(false);f.setVisible(true);}private class TextFieldListener implements ActionListener { @Overridepublic void actionPerformed(ActionEvent e) {String s = tf.getText().trim();r.base = Double.valueOf(s);tf.setText("修改成功!");}}}//修改税率private class XiuGai2 implements ActionListener {int rateLevel = 0; //客户要修改的税率级别double newTaxRate = 0; //修改后的税率GRS r;Frame f = null;TextField tf1 = null;TextField tf2 = null;@Overridepublic void actionPerformed(ActionEvent e) {f = new Frame("修改税率"); //创建窗体tf1 = new TextField(6);tf2 = new TextField(6);Panel p1 = new Panel();Panel p2 = new Panel();JButton ok1=new JButton("确定");ok1.addActionListener(new TF1Listener());p1.add(new Label("请输入要修改的税率的级别:"), BorderLayout.WEST);p1.add(tf1,BorderLayout.EAST );p1.add(ok1,BorderLayout.EAST);f.add(p1, BorderLayout.NORTH);JButton ok2=new JButton("确定");ok2.addActionListener(new TF2Listener());f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {f.setVisible(false);}});p2.add(new Label(" 请输入你确定修改后的税率:"), BorderLayout.WEST);p2.add(tf2, BorderLayout.EAST);p2.add(ok2);f.add(p2, BorderLayout.SOUTH);f.setLayout(new GridLayout(2, 3, 3, 15));f.setBounds(425, 460, 550, 120);f.pack();f.setVisible(true);}private class TF1Listener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {String s1 = tf1.getText().trim();rateLevel = Integer.valueOf(s1);if(rateLevel>0 && rateLevel<6){r.taxRate[rateLevel-1] = rateLevel; //修改税率级别tf1.setText("请继续!");}else {tf1.setText("税率级别错误,修改失败!");}}}private class TF2Listener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {String s2 = tf2.getText().trim();double d = Double.valueOf(s2);r.taxRate[rateLevel - 1] = d;tf2.setText("修改成功!");}}}}七、小结本产品为“计算个人所得税”系统,其功能齐全,操作简单。