专项附加扣除简易系统的设计与实现

专项附加扣除简易系统的设计与实现 系统管理员主要需求如下

(1)系统登录

(2)人员专项附加扣除信息

      包括继续教育,大病医疗,住房贷款信息,住房租金,赡养老 人,子女教育,3岁以下婴幼儿        照护等信息。采集信息样式可参考: https://wcdn.etax.chinatax.gov.cn/bbxzdownload/declare/zxfjkcxxcj/grsdszxfjkcxxb.pdf 或http://gz.bendibao.com/life/2019110/247224.shtml

(3)人员年度专项附加扣除额

   详细扣除规则见: https://www.shui5.cn/article/81/124070.html

(4)继续教育方面

   每年定额扣除3600元(继续教育)或4800元(学历教育)或8400(继续 +学历教育)。

(5)大病医疗方面

   超过1.5万元的部分每年限额8万元据实扣除

(6)住房租金与房贷利息方面

  住房租金与房贷利息只能选择一项进行扣除首套房贷款利息方面,每年按1.2万元标准 定额扣     除;住房租金方面,根据不同城市标准定,较高每月定额扣除1500元

(7)纳税方面

   纳税人为独生子女的,按照每月3000元的标准定额扣除;非独生子女需要填写共同赠养 人,每人分摊的额度不能超过每月1500元;可以由赡养人均摊或约定分摊,也可以由被赡养人指 定分摊。

(8)子女教育方面 

   每个子女每月2000元的标准定额扣除。

(9)3岁以下婴幼儿子女

   纳税人照护3岁以下婴幼儿子女的相关支出,按照每个婴幼儿每月2000元的标准定额 扣除。

(10)汇总计算

   附加税单项计算、汇总计算、计算结果的保存和查询 可参考:“个人所得税”APP的“专项附加扣除 填报”模块

//部分代码如下,全码V:ershiqijian
package login;
import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

//登录界面
public class Login extends JFrame implements ActionListener {//增加监听事件
	///label组件数组
	JLabel welcome=new JLabel("欢迎使用专项附加简易扣除系统");//创建欢迎界面JLabel。
    JLabel user, password;//用户、密码
    //单行文本框
    JTextField username;//用户名框
    JPasswordField passwordField;//密码框  
    JButton loginButton;//登录按钮
    JButton button;
    //定义一个卡片式布局
    CardLayout cardLayout = new CardLayout();//扑克牌,每次显示最前面的一张
    JPanel card;
    JPanel cardPanel,cardPanel2,cardPanel3,cardPanel4;
    //界面上需要放置多个组件时
    JTabbedPane jTabbedPane,jTabbedPane2;
    Users users;
    Font font = new Font("宋体", Font.BOLD|Font.ITALIC, 20);

    public Login(){
        init();//在文档加载完后调用函数,不调用不执行
    }

    private void init() {//初始化界面、该函数为初始化功能
        welcome.setFont(font);//设置字体的方法
        setTitle("专项附加简易扣除系统   ");
        getContentPane().setLayout(new BorderLayout());
        user = new JLabel("name");
        password = new JLabel("password");
        button = new JButton("Reset");
        card = new JPanel(cardLayout);
        JPanel panel1 = new JPanel(new BorderLayout());
        username = new JTextField();
        passwordField = new JPasswordField();
        loginButton = new JButton("Login!");
        loginButton.addActionListener(this);
        JPanel titlepanel = new JPanel(new FlowLayout());//标题面板
        JPanel loginpanel = new JPanel();//登录面板
        loginpanel.setLayout(null);//关闭窗口布局管理器,使后面的setBounds生效

        //设定窗体的偏移量
        welcome.setBounds(300,100,400,25);
        user.setBounds(340, 170, 100, 20);
        password.setBounds(340, 210, 100, 20);
        username.setBounds(400, 170, 120, 20);
        passwordField.setBounds(400, 210, 120, 20);
        loginButton.setBounds(340, 250, 80, 25);
        button.setBounds(440,250,80,25);

        //把页面各项信息添加到登录login面板上
        loginpanel.add(welcome);
        loginpanel.add(user);
        loginpanel.add(password);
        loginpanel.add(username);
        loginpanel.add(passwordField);
        loginpanel.add(loginButton);
        loginpanel.add(button);
        panel1.add(titlepanel, BorderLayout.NORTH);
        panel1.add(loginpanel, BorderLayout.CENTER);    
        card.add(panel1, "login");     
        getContentPane().add(card);//初始化一个容器 ,在容器上添加控件
        setBounds(300, 100, 900, 600);
        setVisible(true);//显示JFrame对象

        button.addActionListener(new ActionListener(){//为重置按钮添加监听事件
            //同时清空name、password的数据
            public void actionPerformed(ActionEvent arg0) {
                // TODO 自动生成方法存根
                username.setText("");
                passwordField.setText("");
            }
        });
    }


	@Override	
	public void actionPerformed(ActionEvent e) {
        boolean flag=false;//用来标志用户是否正确

	    if (e.getSource() == loginButton) {
	        ArrayList<Users> list = new CheckUsers().getUsers();//获得所有用户信息
	        for (int i = 0; i < list.size(); i++) {//遍历所有用户信息,以此来判断输入的信息是否正确
	            users = list.get(i);

	            String passwordStr = new String(passwordField.getPassword());
	            if (username.getText().equals(users.getName()) && passwordStr.equals(users.getPassword())) {
	                    JOptionPane.showMessageDialog(null, "欢迎(管理员)"+username.getText()+"登录", "专项附加简易扣除系统", JOptionPane.PLAIN_MESSAGE);
	                    //当输入的信息正确时,就开始加载选项卡界面,并把选项卡界面加入到卡片布局器中


	                    ManagePeople ManagePeople =new ManagePeople(users);
	                    ContinueEducation conEdu=new ContinueEducation(users);
	                    ManageMedical mame=new ManageMedical(users);
	                    ManageHousing maho=new ManageHousing(users);
	                    ManageTaxes mata1=new ManageTaxes(users);
	                    ManageChildrenEducation machedu=new ManageChildrenEducation(users);
	                    ManageBaby maba=new ManageBaby(users);
	                    Summary sumall=new Summary(users);
                        ManageUsers manageUsers =new ManageUsers(users);

	                    Exit exit=new Exit();

	                    cardPanel = new JPanel();
	                    cardPanel2 = new JPanel();
	                    cardPanel3 = new JPanel();
	                    cardPanel4 = new JPanel();

	                    jTabbedPane = new JTabbedPane(JTabbedPane.LEFT);
	                    jTabbedPane.add("人员费用信息显示", ManagePeople);
	                    jTabbedPane.add("继续教育管理", conEdu);
                        jTabbedPane.add("大病医疗管理", mame);
                        jTabbedPane.add("住房租金管理", maho);
                        jTabbedPane.add("纳税管理", mata1);
                        jTabbedPane.add("子女教育管理", machedu);
                        jTabbedPane.add("婴幼管理", maba);
                        jTabbedPane.add("汇总计算", sumall);
                        jTabbedPane.add("登录人员管理", manageUsers);
	                    jTabbedPane.add("退出登录", exit);

	                    cardPanel.add(jTabbedPane);
	                    jTabbedPane2 = new JTabbedPane(JTabbedPane.TOP);
	                    jTabbedPane2.add("系统操作页面",cardPanel);
	                    cardPanel2.add(jTabbedPane2);
	                    card.add(cardPanel2, "info");
	                    cardLayout.show(card, "info");//输入信息正确就显示操作界面,否则重新输入正确信息

	                flag = true;
	                break;//如果信息正确就退出遍历,提高效率
	            }
	        }
	        if(!flag){//信息不正确,重新输入
	            JOptionPane.showMessageDialog(null, "请输入正确的用户名或密码", "警告",JOptionPane.WARNING_MESSAGE);
	            username.setText("");//让文本框显示我要的信息
	            passwordField.setText("");
	        }
	    }
	}
}

/*...*/


        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值