《个人所得税课程设计.docx》由会员分享,可在线阅读,更多相关《个人所得税课程设计.docx(21页珍藏版)》请在三一办公上搜索。
1、面向对象程序设计课程设计报告题目:个人所得税系统院系:计算机与信息工程系专业:计算机科学与技术班级:2班(10级)学号:学生姓名:指导教师:成绩:2013年 6月2日面向对象程序设计摘要二、需求分析2.1背景介绍2.2功能需求三、总体设计四、详细设计五、六、七、八、九、十、个人所得税收取资料功能模块代码实现及运行情况:代码清单:小结参考文献1920一、摘要本设计是一个基于命令行界面的计算个人所得税应用程序, 根据用户输入的当月工资薪金总额计算应缴纳的个人所得税 额。为适应未来个人所得税法的可能变化,该程序支持对个 人所得税起征点进行调整的功能,并且个人所得税各级税率 允许修改。利用一些简单的菜
2、单方式让用户选择所需的功能。设计中主要用到 J Frame、Frame、JTextField、TextField、Button 这几个类.关键字:计算个人所得税、JFrame、Frame、JTextField、TextField、Button二、需求分析21背景介绍个人所得税,是调整征税机关与自然人之间在个人所得税的征纳 与管理过程中所发生的社会关系的法律规范的总称。凡在中国境内有 住所,或者无住所而在中国境内居住满一年的个人,从中国境内和境 外取得所得的,以及在中国境内无住所又不居住或者无住所而在境内 居住不满一年的个人,从中国境内取得所得的,均为个人所得税的纳 税人。随着社会和经济的发展,
3、计算个人所得税已成为人们日常生活中 必不可少的重要内容,因此一个计算所得税系统是人们生活中一个重 要的计算工具。根据此背景,我将开发了一个简单而且容易操作的个 人所得税的系统,希望能够给人们带来方便。2.2功能需求本系统是一个计算个人所得税的应用程序,用户可以输入的当月 工资薪金总额,从而系统会自动计算应缴纳的个人所得税额。同时,根 据实际情况,还增加了个人所得税的修改等功能,通过简洁的菜单栏 上的操作,用户可以轻松地根据实际情况作出税率等数据的调整,从 而达到准确的计算结果。三、总体设计根据Java的特点,我利用类的设计,简单实现查询当前免 征基数及税率、更改免征基数、更改税率、个人所得税的
4、计算的功能。 方便用户使用及查询。在类的设计过程中,主要用到了以下几个类: GRS:、Windowclose:、Calculate:、XiuGail 、XiuGai2:四、详细设计以下是每个类的设计:GRS:主体类:此类是用于显示主窗体中,所有类都是此类的内部类。Windowclose:关闭窗体类,这个类的作用是当要关闭一个窗体调用 、r九这类Calculate:用于计算税,这个类主要用于完成税的计算,这个类继承了 ActionListener接口,用于监听calculate按钮产生的事件.XiuGail:修改免征基数XiuGai2:修改税率五、个人所得税收取资料【附:个人所得税计算方法】我国
5、税法规定,公民每月工资、薪金收 入总额超过800元(2006年修订立法改为1,600元2008年,免征 额从1600元提高到2000元)者应缴纳个人所得税。收入总额减去免 征基数后剩余部分称为应纳税所得额,应纳税所得额按下表规定的超 额累进税率计算应缴纳的个人所得税(实际上个人所得税税率表共分 9级,最高税率为45%,本实验可简化为5级)。级别应纳税所得额税率1超过500元的52超过500元至2,000元的部分103超过2, 000元至5, 000元的部分154超过5, 000元至20,000元的部分205超过20,000元部分25六、功能模块系统的模块主要是按照功能进行划分的,个人所得税系统
6、包括计 算个人所得税模块、查询免征起征点和税率模块、修改税率模块及修 改免征基数模块。这四大模块完成了该项目主要功能。结构如下图所 示.七、代码实现及运行情况:1.用javac Application运行程序的命令行显示如下界面:用户名用户密码用户地区2、登录后进入选择功能界面:1密 上查询免征基数莉桐率1:计登个人所常洗3;修改兔征基数4;修改税率3、进行选择功能:选择功能1,计算个人所得税.输入工资,计算 出结果的计萱崩输入你的工资:计理的结果;1800-计尊10.02.进行功能选择:选择功能2,查询免征基数和税率,查询结果如下图所示:4、进行功能选择:选择功能3,修改免征基数,运行结果如
7、下图:现在的免狂甚数肯:-1600.01BOO|请输那新的免征基数5、进行功能选择:选择功能4,修改税率。运行结果如下:话输入要修改的税率的钗别 雪继续! 聊定诘输内你确定修故后的税率 修故成功?琐定八、代码清单:import java.awt.Choice ;import java.awt.Dialog;import java。awt。FlowLayout;import java。awt。Frame;import java。awt.GridLayout;import java。awtLabel;import java。awtList;import java。awt.ScrollPane;im
8、port java。awt。TextField;import java.awt.event.ActionEvent;import java。awtevent。ActionListener;import java.awto event。WindowAdapter;import java。awtevent。WindowEvent;import java.lang.String;import javaxo swing。JButton;import javax.swing。JFrame;import javaxo swingJLabel;import javaxo swing。JTextField;i
9、mport java。awt。BorderLayout;import java。awt.Frame;import java.awto Label;import java.awto Panel;import javao awt.TextField;import java.awt.event.ActionEvent;import java.awto evento ActionListener;import java.awt.evento WindowAdapter;import javao awto event.WindowEvent;用户登录界面public class GRS extends
10、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);码:123);false);Label Label1 = new Label
11、(用户名:); TextField textfieldialog = new TextField(*密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 b
12、utton2 = new JButton (”取消”); Dialog dialog = new Dialog (this,”提示信息”,ScrollPane sp = new ScrollPane ();public GRS(Frame frame) super(”个人所得税查询”);add(Label1);add(textfieldialog);add (Label2);textfieldlo setEchoChar(*,); add(textfield2); add(Label5);choice.addItem (“广东”); choiceo addItem(上海); choiceo a
13、ddItem(北京”); add(choice); add(Label6); lisLadd(”普通用户); listo add(管理员); spo add (list); add(sp);add(buttonl);buttonlo addActionListener(this); add (buttonl);buttonlo addActionListener (this); setLayout(new GridLayout (5, 2, 5, 20); setBounds (430, 430, 300,200); setResizable (false);setVisible(true);
14、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 (textfieldl o getText() o trim() oequals(”123) ) addWindowListener(
15、newwindowclose ();JFrame f = new JFrame(主菜单”);JButton button5 = new JButton (1:计算个人所得税);JButton button6 = new JButton(”2: 查询免征基数和税率);JButton button? = new JButton (3:修改免征基数”);JButton button8 = new JButton(4:修改税率”);f。add(button5); f.add(button6); f。add(button7); f.add(button8); button5o addActionList
16、ener(new ButAL(); button6。addActionListener (new ChaXun ();button?o addActionListener (new XiuGail ();button8.addActionListener(new XiuGai2 ();f.setLayout (new GridLayout (2, 2, 5, 20);fo setBounds(385, 420, 400, 220); f.setResizable (false);f.setVisible (true);else dialogo setLayout (new FlowLayout
17、(FlowLayout.CENTER);码错误,请重试”);60);windowclose();Label tf = new Label (”对不起,密 dialogoadd(tf);dialog.setBounds (455, 430, 250,dialogosetResizable(false); dialogosetVisible (true);dialog.addWindowListener(new else计算个人所得税ActionListener 所得税System.exit (0);private class ButAL implementsdouble income = -1;
18、double revenue = 1;/个人收个人voidJTextField testField; JTextField resultField; GRS r; publicactionPerfOrmed(ActionEvent event) JFrame f = new JFrame (个人所得税的计算”);JLabel jl = new JLabel(请输入你的工资:);JLabel result = new JLabel(”计算的结果:);testField = new JTextField(5);newresultFieldJTextField (5);JButton calcula
19、te = newJButton(计算);calculateaddActionListener(new Calculate。);f.add(jl);f.add(testField);f。add (calculate);f。add (result);f。add(resultField);f 。 setLayout(newGridLayout (2, 3, 3, 20);f。setBounds (380, 500,400, 100);f。setResizable (false);f.setVisible (true);private class Calculate implementsActionL
20、istener actionPerfOrmed (ActionEvent e) getText()。trim ();valueOf (s1);Override publicvoidString si = testField。income = Double。income - r。base;20000) * r。taxRate 4 + 15000taxRate 3 + 3000 * r.taxRate + 15001 + 500 * r.taxRate 0;5000) * r.taxRate 3 + 3000 * r.taxRate 2r。taxRate 1 + 500 * r.taxRate 0
21、;2000) * r.taxRate 2 + 1500 * r.taxRate1taxRate0;500) * r.taxRate 1 + 500 * r.taxRate 0;double taxible =if (taxible 20000) revenue = (taxible -* r 。* r.taxRateelse if (taxible 5000) revenue = (taxible+ 1500 *else if (taxible2000) revenue = (taxible+ 500 *r。else if (taxible500) revenue = (taxible -el
22、se if (taxible 0) revenue = taxible *r。taxRate0;else if (taxible = 0) revenue = 0;String s2 String.valueOf(revenue); resultField setText(s2);查询免征基数和税率private class ChaXun implements ActionListener GRS r; Override public void actionPerformed (ActionEvent e) final JFrame f = new JFrame (查询);窗体 1 JText
23、Field fl = new JTextField (); JTextField f2 = new JTextField (); JTextField f3 = new JTextField。; JTextField f4 = new JTextField (); JTextField f5 = new JTextField) JTextField f6 = new JTextField。; f。add (fl);fl。setText ( 免征基数为:+String.valueOf(r。base); /输入免征基数 f.setLayout(new GridLayout (6, 1, 3, 5)
24、; f。add(f2);f.add(f3); f.add(f4); f.add(f5); f。add (f6);f2。setText( 一 级税率为:” + r。 taxRate0);f3.setText( 二 级税率为:+ r。taxRate1);f4。setText ( 三 级税率为:taxRate2);f5setTex(四 级税率为: + ro taxRate );f6.setTex( ” 五 级税率为:+ ro taxRate 4);f o addWindowListener ( new WindowAdapter () Override publicvoidwindowClosing
25、(WindowEvent e) f.setVisible (false); ); f.setBounds (385, 420, 400, 200); f.setResizable (false); fosetVisible (true);修改免征基数private class XiuGail implements ActionListenerGRS r;TextField tf = new TextField(10);Frame f = new Frame(修改免征基数”);Overridepublic void actionPerformed(ActionEvent e)fo add(new
26、 Label(现在的免征基数为:”+ r.base) , BorderLayout。NORTH);fo add (new Label(请输入新的免征基数: ),BorderLayout.CENTER);fo add (tf, BorderLayout.EAST);tf o addActionListener ( newTextFieldListener();f.addWindowListenernewWindowAdapter() Override publicvoidwindowClosing(WindowEvent e) f。setVisible (false););f.setBounds
27、 (425, 460, 300, 120); f.setResizable(false); f。setVisible (true);private class TextFieldListener implements ActionListener Override public void actionPerformed (ActionEvent e) String s = tf。getText()。trim(); r。base = Double 0 valueOf(s); tfo setText (修改成功!”);修改税率private class XiuGai2 implements Act
28、ionListener int rateLevel = 0;客户要修改的税率级别double newTaxRate = 0; 修改后的税率GRS r; Frame f = null; TextField tf1 = null; TextField tf2 = null; Override public void actionPerformed(ActionEvent e)f = new Frame (修改税率);创建窗体 tf1 = new TextField(6); tf2 = new TextField (6); Panel p1 = new Panel(); Panel p2 = new
29、 Panel();JButton ok1=new JButton(” 确定”); ok1o addActionListener(new TF1Listener();p1.add(new Label(请输入要修改的税率的 级别:),BorderLayouto WEST);p1o add(tf1, BorderLayouto EAST ); p1o add (ok1, BorderLayout.EAST); fo add (p1, BorderLayout.NORTH);JButton ok2=new JButton( 确定”);ok2 o addActionListener(new TF2Lis
30、tener();f 。 addWindowListener ( new WindowAdapter() Overridepublic void windowClosing (WindowEvent e)fo 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
31、。setBounds(425, 460, 550, 120);fo pack();f。setVisible(true);private class TF1Listener implements ActionListener Override public void actionPerfOrmed(ActionEvent e)String s1 = tf1.getText().trim ();rateLevel = Integer.valueOf (s1);if(rateLevel0 & rateLevel6) r o taxRate rateLevel-1 =rateLevel; 修改税率级别
32、 tf1o setText(” 请继续!); else tf1o setText(税率级别错误,修改 失败!);private class TF2Listener implements ActionListener Overridepublic void actionPerformed(ActionEvent e)String s2 = tf2。getText () .trim(); double d = Doubleo valueOf (s2); r.taxRaterateLevel 1 = d; tf2o setText(修改成功!);九、小结本产品为“计算个人所得税系统,其功能齐全,操作
33、简单。根据 人们在生活中计算所得说的实际要求,本系统用户可以输入的当月工 资薪金总额,从而系统会自动计算应缴纳的个人所得税额。同时,根据 实际情况,还增加了个人所得税的修改等功能,通过简洁的菜单栏上 的操作,用户可以轻松地根据实际情况作出税率等数据的调整,从而 达到准确的计算结果.这次课程设计的题目虽然简单,但在此之前,我只学java的一 些基本基本语法,所以做起来有一定的难度.但经过我通过对查找资 料和询问同学的情况下最终完成了对该项目的的设计,在同学和老师 的指导帮助下,我明白了很多以前不懂的问题,最终我顺利完成了这 个“计算个人所得税系统。重要的是,我体会了一次自己学习并编 写了一个相关功能程序的经历。这个经历是宝贵的,它增强了作为一 名计算机专业的学生自学一门编程语言能力。但由于个人水平有限和 其他条件的限制,在编制过程中不能运用高级的编程思想,在总体布 局、内容舍取或其他方面一定还存在缺陷和值得商议之处,同时在某 些情况下,该程序可能会出现某些错误,这都是在日后应当改正的。所 以该程序还不能达到标准,敬请批评指正。十、参考文献1、Java语言程序设计郑莉、王行言、马素霞编著,清华大学出 版社,2009年7月2、Java实用程序设计100例袁海燕、王文涛编著,人民邮电出 版社,2005年5月