JAVA计算个人所得税设计
JAVA语言程序设计课程设计 计算个人所得税设计系别:计算机系专业:计算机科学与技术年级:07计算机本科(2)班姓名:钟俊杰指导教师:齐勇军2010年6月28日2010年6月30日目录JAVA语言程序设计课程设计- 1 -一、摘要- 2 -二、需求分析- 3 -21背景介绍- 3 -22功能需求- 4 -三、总体设计- 4 -四、详细设计- 4 -五:代码实现及运行情况:- 5 -六、代码清单:- 7 -七、小结- 16 -八、参考文献- 17 -一、摘要 本设计是一个基于命令行界面的计算个人所得税应用程序,根据用户输入的当月工资薪金总额计算应缴纳的个人所得税额。为适应未来个人所得税法的可能变化,该程序支持对个人所得税起征点进行调整的功能,并且个人所得税各级税率也允许修改。利用简单的菜单方式让用户选择所需的功能。设计中主要用到JFrame 、Frame、JTextField、TextField、Button这几个类。关键字:计算个人所得税、JFrame 、Frame、JTextField、TextField、Button二、需求分析21背景介绍 个人所得税,是调整征税机关与自然人之间在个人所得税的征纳与管理过程中所发生的社会关系的法律规范的总称。凡在中国境内有住所,或者无住所而在中国境内居住满一年的个人,从中国境内和境外取得所得的,以及在中国境内无住所又不居住或者无住所而在境内居住不满一年的个人,从中国境内取得所得的,均为个人所得税的纳税人。随着社会和经济的发展,计算个人所得税已成为人们日常生活中必不可少的重要内容,因此一个计算所得税系统是人们生活中一个重要的计算工具。根据此背景,我们开发了一个简单而且容易操作的个人所得税的系统,希望能够给人们带来方便。22功能需求 本系统是一个计算个人所得税的应用程序,用户可以输入的当月工资薪金总额,从而系统会自动计算应缴纳的个人所得税额。同时,我们根据实际情况,还增加了个人所得税的修改等功能,通过简洁的菜单栏上的操作,用户可以轻松地根据实际情况作出税率等数据的调整,从而达到准确的计算结果。三、总体设计 根据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 java.awt.Label;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 java.lang.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 java.awt.Label;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 XiuG