为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

员工薪资管理系统课程设计

2019-01-22 4页 doc 246KB 2阅读

用户头像 个人认证

不系舟红枫

从教近30年,经验丰富,教学水平较高

举报
员工薪资管理系统课程设计 员工薪资管理系统课程设计 目录 一:绪论 1.1设计目的 1.2设计内容 1.3开发背景 1.4开发环境 1.5组内成员及分工 二:需求分析 2.1题目分析 2.2功能分析 2.3数据流图 2.4数据字典 2.5系统功能 三:系统分析与设计 3.1概念结构...
员工薪资管理系统课程设计
员工薪资管理系统课程 目录 一:绪论 1.1设计目的 1.2设计内容 1.3开发背景 1.4开发环境 1.5组内成员及分工 二:需求分析 2.1题目分析 2.2功能分析 2.3数据流图 2.4数据字典 2.5系统功能 三:系统分析与设计 3.1概念结构设计 3.2逻辑结构设计 3.3 物理结构设计 四:数据库实施及运行 4.1建基本 4.3功能实现 4.4完整代码 五:设计心得及体会 一:绪论 1.1设计目的 员工薪资系统的主要目的是通过操作计算机代替手工劳动,能够在该系统内完成员工的信息录入,查询,删除等操作,方便公司的高效化,规范化管理,有利于员工更好更方便了解自己的薪资信息。 系统开发的总体任务就是实现员工薪资管理的系统化、规范化和自动化。 1.2设计内容 题目6:员工薪资管理 1. 背景资料 0. 某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员。 0. 该单位下设4个科室,即经理室、财务科、技术科和销售科。 0. 工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除。 0. 每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销售员等)。 0. 每月个人的最高工资不超过3000元。工资按月发放,实际发放的工资金额为工资减去扣除。 1. 设计要求: 1. 进行需求分析,编写数据字典。 1. 设计E-R图。 1. 实现按照科室录入个人的基本资料、工资和扣除金额的数据。 1. 计算个人的实际发放工资。 1. 按科室、职业分类统计人数和工资金额。 1. 实现分类查询。 1. 能够删除辞职人员的数据。 1. 开发工具不限。 1.3开发背景 当今社会,随着企业人数的不断增加,企业员工薪资的管理工作也越来越复杂,资金是企业生存的核心部分,而资金流动也是关键环节,随着计算机的普及,计算机管理系统已经原来越来越广泛的应用于各个中小型企业中,用计算机取代手工对企业管理的操作也是势在必行的,并且人为操作容易造成信息错误,纸质材料不易保存,可能会导致企业运转出现滞缓现象,影响企业发展。为了更好的、更方便地管理企业中各个成员的工资发放情况,我们必须要有一个完善的、合理的、便捷的员工薪资管理系统来管理公司员工工资的发放情况。 该员工薪资管理系统主要用于中小型企业员工的工资发放管理,此系统的建立和使用有利于员工更好的了解自己的薪资信息,提高公司员工薪资发放工作的效率,大大减少纸质管理对工作带来的失误。 1.4开发环境 开发平台:SQL Server2005 开发工具:Eclipse JDBC 开发语言:SQL语言 JAVA语言 1.5组内成员及分工 李雪敏:系统框架 撰写报告 颜学宏:代码编写 数据库的连接与运行 余黎晨:概念结构设计 代码调试 敬翰林:逻辑结构设计 需求分析 二:需求分析 2.1题目分析 该题目要求设计一个员工薪资系统,实现员工信息的有序化,规范化,并能进行员工信息录入,查询,修改,删除等操作,能实现分类查询, 2.2功能分析 该员工薪资系统能够实现的功能如下: 员工信息的管理,包括姓名,性别,年龄,职业,员工号,部门编号基本信息的录入,查询,删除,修改等操作 部门信息的管理,包括部门编号和部门名称,查询每个部门的业绩和员工薪资情况 薪资信息的管理,包括员工号,部门编号,基本工资,福利补贴,奖励工资,失业保险,住房公积金,实发薪资等信息,统计出员工的基本工资,福利补贴,奖励工资,扣除失业保险,住房公积金后所得的工 2.3数据流图 注册 员工 员工基本信息 查询 员工 员工工资记录 员工薪资信息形成 查询 部门 经理 薪资信息管理 部门工资 记录 统计分析 财务统计人员 2.4数据字典 数据字典在数据库设计中占有很重要的地位,数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果。根据数据流图对员工薪资管理数据库数据字典的设计如下所示: 2.41数据结构名:员工 含义说明:员工信息 组成:姓名,性别,年龄,职业,员工号 数据项名 数据类型 长度 可否为空 含义说明 员工号 char 10 no 员工编号 员工姓名 char 10 no 姓名 员工年龄 char 10 no 年龄 部门名称 char 10 no 所属部门 员工职业 char 10 no 担任职务 2.42数据结构名:部门 含义说明:部门信息 组成:部门编号,部门名称 数据项名 数据类型 长度 可否为空 含义说明 部门编号 char 4 no 科室类别 部门名称 char 10 no 科室名称 2.43数据结构名:工资 含义说明:员工薪资信息 组成:员工号,部门编号,基本工资,福利补贴,奖励工资,扣罚工资,失业保险,住房公积金,实发薪资 数据项名 数据类型 长度 可否为空 含义说明 员工号 char 8 no 员工编号 员工工资 char 4 no 所的工资 奖励工资 money 8 no 基本工资 员工薪资 money 8 yes 福利和补贴工资 2.5系统功能 该员工薪资系统的功能如下: 三:系统分析与设计 3.1概念结构设计 E—R图设计 员工实体——关系图 性别 姓名 职业 员工 员工号 年龄 部门编号 部门实体——关系图 部门编号 部门 部门名称 工资实体——关系图 员工号 实发薪资 住房公积金 福利补贴 基本工资 部门编号 工资 奖励工资 失业保险 总的E—R图 3.2概念结构设计 E-R图表示的概念模型是用户数据要求的形式化,它不为任何一个DBMS所支持,而逻辑结构设计的任务就是把概念模型结构转换成某个具体的DBMS所支持的数据模型,员工薪资管理E-R图转换为关系模式为: 员工(姓名,性别,年龄,职业,员工号,部门编号) 部门(部门编号,部门名称) 薪资(员工号,员工工资,福利补贴,奖励工资,失业保险,住房公积金,实发薪资) 四:数据库实施与运行 4.1建基本表 员工信息表 部门信息表 工资信息表 4.3功能实现 4.31系统界面展示: 4.32员工信息查询功能 按工号查询: 按姓名查询: 4.33员工工资查询功能: 4.34修改员工工资功能: 4.35添加员工功能: 4.36修改员工信息功能: 4.37删除员工信息功能: 4.4完整代码展示 4.41源程序代码 //类DBConnect用于数据库的连接 //导入sql包 import java.sql.*; //创建数据库连接类DBConnect public class DBConnect { //静态方法提高数据库的连接效率 public static Connection getConn() throws Exception { //加载JDBC驱动 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //以系统默认用户身份,连接数据库StudentManager return DriverManager.getConnection("jdbc:odbc:Test","dmj","753"); } } 4.42主框架代码: //系统主框架类 //导入系统的包 import java.awt.*; import java.awt.event.*; import javax.swing.*; //创建主框架类MainFrame public class MainFrame extends JFrame implements ActionListener { //创建内容面板 JPanel contentPane; //创建菜单栏组件的对象 JMenuBar jMenuBar1=new JMenuBar();//菜单条 JMenu jMenu0=new JMenu("退出系统");//菜单 JMenuItem jMenuItem0=new JMenuItem("退出");//子菜单 JMenu jMenu1=new JMenu("员工管理"); JMenuItem jMenuItem1=new JMenuItem("添加员工"); JMenuItem jMenuItem2=new JMenuItem("修改员工"); JMenuItem jMenuItem3=new JMenuItem("删除员工"); JMenu jMenu2=new JMenu("工资管理"); JMenuItem jMenuItem4=new JMenuItem("添加工资"); JMenuItem jMenuItem5=new JMenuItem("修改工资"); JMenuItem jMenuItem8=new JMenuItem("工资查询"); JMenu jMenu3=new JMenu("员工查询"); JMenuItem jMenuItem6=new JMenuItem("按工号查询"); JMenuItem jMenuItem7=new JMenuItem("按姓名查询"); JMenuItem jMenuItem9=new JMenuItem("互动"); //创建标签,用于显示信息 JLabel jLabel1=new JLabel("欢迎使用员工薪资管理系统"); //创建构造方法 public MainFrame() { try{ //关闭框架窗口时的默认事件方法 setDefaultCloseOperation(EXIT_ON_CLOSE); //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //界面初始化方法 private void jbInit() throws Exception { //创建内容面板 contentPane =(JPanel) getContentPane(); //设置内容面板的布局为空 contentPane.setLayout(null); //主框架的大小 setSize(new Dimension(400,360)); //主框架的标题 setTitle(" 员工薪资管理系统"); //添加事件监听器 jMenuItem0.addActionListener(this); jMenuItem1.addActionListener(this); jMenuItem2.addActionListener(this); jMenuItem3.addActionListener(this); jMenuItem4.addActionListener(this); jMenuItem5.addActionListener(this); jMenuItem6.addActionListener(this); jMenuItem7.addActionListener(this); jMenuItem8.addActionListener(this); jMenuItem9.addActionListener(this); //添加菜单条到主框架 setJMenuBar(jMenuBar1); //添加菜单到菜单条 jMenuBar1.add(jMenu0); jMenuBar1.add(jMenu1); jMenuBar1.add(jMenu2); jMenuBar1.add(jMenu3); //添加菜单项到菜单 jMenu0.add(jMenuItem0); jMenu1.add(jMenuItem1); jMenu1.add(jMenuItem2); jMenu1.add(jMenuItem3); jMenu2.add(jMenuItem4); jMenu2.add(jMenuItem5); jMenu2.add(jMenuItem8); jMenu3.add(jMenuItem6); jMenu3.add(jMenuItem7); //添加标签到主框架内容面板 contentPane.add(jLabel1); //设置标签组件的大小和字体 jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,20)); jLabel1.setBounds(new Rectangle(65,70,275,55)); } //菜单项事件对应的处理方法 public void actionPerformed(ActionEvent actionEvent) { //点击“系统”菜单下的“退出”菜单项 if(actionEvent.getSource()==jMenuItem0) { System.exit(0); } //点击“员工管理”菜单下的“添加员工”菜单项 if(actionEvent.getSource()==jMenuItem1) { //创建“添加员工”面板对象 AddEmployee AddEmp=new AddEmployee(); //移除主框架上原有的内容 this.remove(this.getContentPane()); //加载“添加职工”面板的对象到主框架 this.setContentPane(AddEmp); //令界面可见 this.setVisible(true); } //点击“员工管理”菜单下的“修改员工”菜单项 if(actionEvent.getSource()==jMenuItem2) { //创建“修改员工”面板对象 ModifyEmployee ModifyEmp=new ModifyEmployee(); this.remove(this.getContentPane()); //加载“修改员工”面板的对象到主框架 this.setContentPane(ModifyEmp); this.setVisible(true); } //点击“员工管理”菜单下的“删除员工”菜单项 if(actionEvent.getSource()==jMenuItem3) { //创建“删除员工”面板对象 DeleteEmployee DeleteEmp=new DeleteEmployee(); this.remove(this.getContentPane()); //加载“删除员工”面板的对象到主框架 this.setContentPane(DeleteEmp); this.setVisible(true); } //点击“工资管理”菜单下的“添加工资”菜单项 if(actionEvent.getSource()==jMenuItem4) { //创建工资添加的面板对象 AddSalary AddSal=new AddSalary(); this.remove(this.getContentPane()); //加载工资添加面板的对象到主框架 this.setContentPane(AddSal); this.setVisible(true); } //点击“工资管理”菜单下的“修改工资”菜单项 if(actionEvent.getSource()==jMenuItem5) { //创建工资修改的面板对象 ModifySalary ModifySal=new ModifySalary(); this.remove(this.getContentPane()); //加载工资修改面板的对象到主框架 this.setContentPane(ModifySal); this.setVisible(true); } //点击“工资管理”菜单下的“工资查询”菜单项 if(actionEvent.getSource()==jMenuItem8) { //创建工资修改的面板对象 SalaryInquire SalaryInq=new SalaryInquire(); this.remove(this.getContentPane()); //加载工资修改面板的对象到主框架 this.setContentPane(SalaryInq); this.setVisible(true); } //点击“员工查询”菜单下的“按工号查询”菜单项 if(actionEvent.getSource()==jMenuItem6) { //创建“按工号查询”面板对象 InquireOnGH OnGH=new InquireOnGH(); //移除主框架上原有的内容 this.remove(this.getContentPane()); this.setContentPane(OnGH); this.setVisible(true); } } } 4.43主函数Main代码: //系统的主程序类Main //导入包 import java.awt.*; import javax.swing.*; //创建主系统类 class Main { public static void main (String[] args) { //创建主界面,调用MainFrame()构造函数和方法 MainFrame frame=new MainFrame(); //获取屏幕尺寸 Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); //获取主界面的窗体尺寸 Dimension frameSize =frame.getSize(); //令主界面窗体居中 if(frameSize.height>screenSize.height) frameSize.height=screenSize.height; if(frameSize.width>screenSize.width) frameSize.width=screenSize.width; frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); //令主界面显示 frame.setVisible(true); } } 4.44员工信息查询代码 按工号查询代码 //导入系统的类包 import java.awt.*; im//"按员工号查询"面板类InquireOnGH port java.sql.*; import javax.swing.*; import java.awt.event.*; //创建“按员工号查询”类 public class InquireOnGH extends JPanel implements ActionListener { //声明连接数据库对象 Connection con; //声明SQL语句对象 Statement st; //创建组件对象:标签、文本行、单选 JLabel jLabel1=new JLabel("请输入员工号:"); JTextField jTextField1=new JTextField(); JButton jButton1=new JButton("查找"); JTextArea jTextArea1=new JTextArea(); //构造方法 public InquireOnGH() { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //面板初始化方法 private void jbInit() throws Exception { //连接数据库 con=DBConnect.getConn(); st=con.createStatement(); //框架的布局 this.setLayout(null); //设置各组件的大小 jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,16)); jLabel1.setBounds(new Rectangle(46,4,222,32)); jTextField1.setBounds(new Rectangle(47,37,247,31)); jButton1.setBounds(new Rectangle(47,86,247,30)); jTextArea1.setBounds(new Rectangle(24,130,305,109)); //添加按钮动作事件 jButton1.addActionListener(this); //添加组件到面板 this.add(jLabel1); this.add(jTextField1); this.add(jTextArea1); this.add(jButton1); } //点击按钮事件 public void actionPerformed(ActionEvent e) { //获取输入的员工号 String EmployeeID=jTextField1.getText(); //清空文本区原有的内容 jTextArea1.setText(""); try{ //利用st对象执行SQL语句,返回结果集对象 ResultSet rs=st.executeQuery("select * from Employee where 员工号='"+EmployeeID+"'"); //处理结果集 if(rs.next()) { jTextArea1.setText("员工号:"+rs.getString("员工号")+"\n"+"员工姓名:"+rs.getString("员工姓名")+"\n"+"员工性别:"+rs.getString("员工性别")+"\n"+"员工年龄:"+rs.getString("员工年龄")+"\n"+"部门名称:"+rs.getString("部门名称")+"\n"+"员工职业:"+rs.getString("员工职业")+"\n"); } else { JOptionPane.showMessageDialog(this,"没有这个员工号的员工!"); } } catch(Exception ex){ //利用消息对话框提示查询失败 JOptionPane.showMessageDialog(this,"员工查询失败!"); } } } 按姓名查询 //"按员工姓名查询"面板类InquireOnName //导入系统的类包 import java.awt.*; import java.sql.*; import javax.swing.*; import java.awt.event.*; //创建“按员工姓名查询”类 public class InquireOnName extends JPanel implements ActionListener { //声明连接数据库对象 Connection con; //声明SQL语句对象 Statement st; //创建组件对象:标签、文本行、单选 JLabel jLabel1=new JLabel("请输入员工姓名:"); JTextField jTextField1=new JTextField(); JButton jButton1=new JButton("查找"); JTextArea jTextArea1=new JTextArea(); //构造方法 public InquireOnName() { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //面板初始化方法 private void jbInit() throws Exception { //连接数据库 con=DBConnect.getConn(); st=con.createStatement(); //框架的布局 this.setLayout(null); //设置各组件的大小 jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,16)); jLabel1.setBounds(new Rectangle(46,4,222,32)); jTextField1.setBounds(new Rectangle(47,37,247,31)); jButton1.setBounds(new Rectangle(47,86,247,30)); jTextArea1.setBounds(new Rectangle(24,130,305,109)); //添加按钮动作事件 jButton1.addActionListener(this); //添加组件到面板 this.add(jLabel1); this.add(jTextField1); this.add(jTextArea1); this.add(jButton1); } //点击按钮事件 public void actionPerformed(ActionEvent e) { //获取输入的员工的姓名 String EmployeeName=jTextField1.getText(); //清空文本区原有的内容 jTextArea1.setText(""); try{ //利用st对象执行SQL语句,返回结果集对象 ResultSet rs=st.executeQuery("select * from Employee where 员工姓名='"+EmployeeName+"'"); //处理结果集 if(rs.next()) { jTextArea1.setText("员工号:"+rs.getString("员工号")+"\n"+"员工姓名:"+rs.getString("员工姓名")+"\n"+"员工性别:"+rs.getString("员工性别")+"\n"+"员工年龄:"+rs.getString("员工年龄")+"\n"+"部门名称:"+rs.getString("部门名称")+"\n"+"员工职业:"+rs.getString("员工职业")+"\n"); } else { JOptionPane.showMessageDialog(this,"没有这个员工号的员工!"); } } catch(Exception ex){ //利用消息对话框提示查询失败 JOptionPane.showMessageDialog(this,"员工查询失败!"); } } } 4.45员工工资查询代码 //"工资查询"面板类SalaryInquire //导入系统的类包 import java.awt.*; import java.sql.*; import javax.swing.*; import java.awt.event.*; //创建“工资查询”类 public class SalaryInquire extends JPanel implements ActionListener { //声明连接数据库对象 Connection con; //声明SQL语句对象 Statement st; //创建组件对象:标签、文本行、单选 JLabel jLabel1=new JLabel("请输入要查询的员工号:"); JTextField jTextField1=new JTextField(); JButton jButton1=new JButton("工资查询"); JTextArea jTextArea1=new JTextArea(); //构造方法 public SalaryInquire() { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //面板初始化方法 private void jbInit() throws Exception { //连接数据库 con=DBConnect.getConn(); st=con.createStatement(); //框架的布局 this.setLayout(null); //设置各组件的大小 jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,16)); jLabel1.setBounds(new Rectangle(46,4,222,32)); jTextField1.setBounds(new Rectangle(47,37,247,31)); jButton1.setBounds(new Rectangle(47,86,247,30)); jTextArea1.setBounds(new Rectangle(24,130,305,109)); //添加按钮动作事件 jButton1.addActionListener(this); //添加组件到面板 this.add(jLabel1); this.add(jTextField1); this.add(jTextArea1); this.add(jButton1); } //点击按钮事件 public void actionPerformed(ActionEvent e) { //获取输入的员工号 String EmployeeID=jTextField1.getText(); //清空文本区原有的内容 jTextArea1.setText(""); try{ //利用st对象执行SQL语句,返回结果集对象 ResultSet rs=st.executeQuery("select * from Salary where 员工号='"+EmployeeID+"'"); //处理结果集 if(rs.next()) { jTextArea1.setText("员工号:"+rs.getString("员工号")+"\n"+"员工工资:"+rs.getString("员工工资")+"\n"); } else { JOptionPane.showMessageDialog(this,"该员工号的员工没有工资记录!"); } } catch(Exception ex){ //利用消息对话框提示查询失败 JOptionPane.showMessageDialog(this,"工资查询失败!"); } } } 4.46修改工资代码 //“修改工资”面板类ModifySalary //导入系统的类包 import java.awt.*; import java.sql.*; import javax.swing.*; import java.awt.event.*; //创建“修改工资”面板类 public class ModifySalary extends JPanel implements ActionListener { //声明连接数据库对象 Connection con; //声明SQL语句对象 Statement st; //创建组件对象:标签、文本行、单选 JLabel jLabel1=new JLabel("请输入员工号:"); JTextField jTextField1=new JTextField(); JButton jButton1=new JButton("查找该员工"); JLabel jLabel2=new JLabel("员工号:"); JTextField jTextField2=new JTextField(); JLabel jLabel3=new JLabel("员工工资:"); JTextField jTextField3=new JTextField(); JButton jButton2=new JButton("修改工资"); //构造方法 public ModifySalary() { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //面板初始化方法 private void jbInit() throws Exception { //连接数据库 con=DBConnect.getConn(); st=con.createStatement(); //框架的布局 this.setLayout(null); //设置各组件的大小 jLabel1.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel1.setBounds(new Rectangle(40,25,140,30)); jTextField1.setBounds(new Rectangle(185,25,120,30)); jButton1.setBounds(new Rectangle(110,65,120,30)); jLabel2.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel2.setBounds(new Rectangle(90,125,80,30)); jTextField2.setBounds(new Rectangle(170,125,80,30)); jLabel3.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel3.setBounds(new Rectangle(90,160,80,30)); jTextField3.setBounds(new Rectangle(170,160,80,30)); jButton2.setBounds(new Rectangle(120,200,100,30)); //添加按钮动作事件 jButton1.addActionListener(this); jButton2.addActionListener(this); //添加组件到面板 this.add(jLabel1); this.add(jTextField1); this.add(jButton1); this.add(jLabel2); this.add(jTextField2); jTextField2.setEditable(false); this.add(jLabel3); this.add(jTextField3); this.add(jButton2); } //点击按钮事件 public void actionPerformed(ActionEvent actionevent) { //点击“查找该员工”按钮 if(actionevent.getSource()==jButton1) { //获取输入的员工号 String EmployeeID=jTextField1.getText(); try{ //利用st对象执行SQL语句,返回结果集对象 ResultSet rs=st.executeQuery("select * from Salary where 员工号='"+EmployeeID+"'"); //处理结果集 if(rs.next()) { jTextField2.setText(rs.getString("员工号")); jTextField3.setText(rs.getString("员工工资")); } else { JOptionPane.showMessageDialog(this,"没有这个员工号的员工!"); } } catch(Exception ex){ //利用消息对话框提示查询失败 JOptionPane.showMessageDialog(this,"工资修改失败!"); } } //点击“修改工资”按钮 if(actionevent.getSource()==jButton2) { //获取用户更改的工资 try{ //利用st对象执行SQL语句,进行修改操作 st.executeUpdate("update Salary set 员工工资='"+jTextField3.getText()+"' where 员工号='"+jTextField2.getText()+"'"); //利用消息对话框提示工资修改成功 JOptionPane.showMessageDialog(this,"工资修改成功!"); } catch(Exception ex){ //利用消息对话框提示异常的信息 JOptionPane.showMessageDialog(this,"工资修改失败!"); ex.printStackTrace(); } } } } 4.47员工添加代码 //添加员工面板类AddEmployee //导入系统的类包 import java.awt.*; import java.sql.*; import javax.swing.*; import java.awt.event.*; //创建“添加员工“面板类 public class AddEmployee extends JPanel implements ActionListener { //声明连接数据库对象 Connection con; //声明SQL语句对象 Statement st; //创建组件对象:标签、文本行、单选 JLabel jLabel1=new JLabel("员工号"); JLabel jLabel2=new JLabel("员工姓名"); JLabel jLabel3=new JLabel("员工性别"); JLabel jLabel4=new JLabel("员工年龄"); JLabel jLabel5=new JLabel("部门名称"); JLabel jLabel6=new JLabel("员工职业"); JTextField jTextField1=new JTextField(); JTextField jTextField2=new JTextField(); JTextField jTextField3=new JTextField(); JTextField jTextField4=new JTextField(); JTextField jTextField5=new JTextField(); JRadioButton jRadioButton1=new JRadioButton("男"); JRadioButton jRadioButton2=new JRadioButton("女"); ButtonGroup buttonGroup1=new ButtonGroup(); JButton jButton1=new JButton("添加员工"); //构造方法 public AddEmployee() { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //界面初始化方法 private void jbInit() throws Exception { //连接数据库 con=DBConnect.getConn(); st=con.createStatement(); //框架的布局 this.setLayout(null); //设置各组件的大小 jLabel1.setBounds(new Rectangle(21,17,64,24)); jLabel2.setBounds(new Rectangle(21,51,53,22)); jLabel3.setBounds(new Rectangle(21,86,61,27)); jLabel4.setBounds(new Rectangle(21,122,59,25)); jLabel5.setBounds(new Rectangle(21,168,54,24)); jLabel6.setBounds(new Rectangle(21,205,54,24)); jTextField1.setBounds(new Rectangle(102,10,200,30)); jTextField2.setBounds(new Rectangle(102,49,200,30)); jTextField3.setBounds(new Rectangle(102,117,80,33)); jTextField4.setBounds(new Rectangle(102,163,200,29)); jTextField5.setBounds(new Rectangle(102,200,200,29)); jRadioButton1.setBounds(new Rectangle(102,83,65,30)); jRadioButton2.setBounds(new Rectangle(190,85,85,30)); jButton1.setBounds(new Rectangle(130,240,150,32)); //设置单选按钮被选中 jRadioButton1.setSelected(true); //添加按钮动作事件 jButton1.addActionListener(this); //添加组件到面板 this.add(jLabel1); this.add(jTextField1); this.add(jLabel2); this.add(jTextField2); this.add(jLabel3); buttonGroup1.add(jRadioButton1); buttonGroup1.add(jRadioButton2); this.add(jRadioButton1); this.add(jRadioButton2); this.add(jLabel4); this.add(jTextField3); this.add(jLabel5); this.add(jTextField4); this.add(jLabel6); this.add(jTextField5); this.add(jButton1); } //点击按钮事件 public void actionPerformed(ActionEvent e) { //获取用户输入的信息 String EmployeeID=jTextField1.getText(); String EmployeeName=jTextField2.getText(); String EmployeeSex=""; if(jRadioButton1.isSelected()) EmployeeSex+="男"; if(jRadioButton2.isSelected()) EmployeeSex+="女"; String EmployeeAge=jTextField3.getText(); String EmployeeAddress=jTextField4.getText(); String EmployeePhone=jTextField5.getText(); try{ //设置日期格式 st.execute("set dateformat ymd"); //利用st对象执行SQL语句,进行插入操作 st.executeUpdate("insert into Employee values('"+EmployeeID+"','"+EmployeeName+"','"+EmployeeSex+"','"+EmployeeAge+"','"+EmployeeAddress+"','"+EmployeePhone+"')"); //利用消息对话框提示员工添加成功 JOptionPane.showMessageDialog(this," 员工添加成功!"); //清空文本行的内容 jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jTextField5.setText(""); } catch(Exception ex){ //利用消息对话框提示异常的信息 JOptionPane.showMessageDialog(this," 员工添加失败!"); ex.printStackTrace(); } } } 4.48修改员工信息代码 //“员工信息修改”面板类ModifyEmployee //导入系统的类包 import java.awt.*; import java.sql.*; import javax.swing.*; import java.awt.event.*; //创建“员工信息修改资”类 public class ModifyEmployee extends JPanel implements ActionListener { //声明连接数据库对象 Connection con; //声明SQL语句对象 Statement st; //创建组件对象:标签、文本行、单选 JLabel jLabel1=new JLabel("请输入员工号:"); JTextField jTextField1=new JTextField(); JButton jButton1=new JButton("查找该员工"); JLabel jLabel2=new JLabel("员工号:"); JTextField jTextField2=new JTextField(); JLabel jLabel3=new JLabel("员工姓名:"); JTextField jTextField3=new JTextField(); JLabel jLabel4=new JLabel("员工性别:"); JTextField jTextField4=new JTextField(); JLabel jLabel5=new JLabel("员工年龄:"); JTextField jTextField5=new JTextField(); JLabel jLabel6=new JLabel("部门名称:"); JTextField jTextField6=new JTextField(); JLabel jLabel7=new JLabel("员工职业:"); JTextField jTextField7=new JTextField(); JButton jButton2=new JButton("修改员工信息"); //构造方法 public ModifyEmployee() { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //面板初始化方法 private void jbInit() throws Exception { //连接数据库 con=DBConnect.getConn(); st=con.createStatement(); //框架的布局 this.setLayout(null); //设置各组件的大小 jLabel1.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel1.setBounds(new Rectangle(40,15,140,30)); jTextField1.setBounds(new Rectangle(185,15,120,30)); jButton1.setBounds(new Rectangle(110,55,150,30)); jLabel2.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel2.setBounds(new Rectangle(20,105,80,30)); jTextField2.setBounds(new Rectangle(100,105,80,30)); jLabel3.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel3.setBounds(new Rectangle(190,105,80,30)); jTextField3.setBounds(new Rectangle(270,105,80,30)); jLabel4.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel4.setBounds(new Rectangle(20,145,80,30)); jTextField4.setBounds(new Rectangle(100,145,80,30)); jLabel5.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel5.setBounds(new Rectangle(190,145,80,30)); jTextField5.setBounds(new Rectangle(270,145,80,30)); jLabel6.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel6.setBounds(new Rectangle(20,185,80,30)); jTextField6.setBounds(new Rectangle(100,185,80,30)); jLabel7.setFont(new java.awt.Font("楷体",Font.BOLD,14)); jLabel7.setBounds(new Rectangle(190,185,80,30)); jTextField7.setBounds(new Rectangle(270,185,80,30)); jButton2.setBounds(new Rectangle(120,240,150,30)); //添加按钮动作事件 jButton1.addActionListener(this); jButton2.addActionListener(this); //添加组件到面板 this.add(jLabel1); this.add(jTextField1); this.add(jButton1); this.add(jLabel2); this.add(jTextField2); jTextField2.setEditable(false); this.add(jLabel3); this.add(jTextField3); this.add(jLabel4); this.add(jTextField4); this.add(jLabel5); this.add(jTextField5); this.add(jLabel6); this.add(jTextField6); this.add(jLabel7); this.add(jTextField7); this.add(jButton2); } //点击按钮事件 public void actionPerformed(ActionEvent actionevent) { //点击“查找该员工”按钮 if(actionevent.getSource()==jButton1) { try{ //利用st对象执行SQL语句,返回结果集对象 ResultSet rs=st.executeQuery("select * from Employee where 员工号='"+jTextField1.getText()+"'"); //处理结果集 if(rs.next()) { jTextField2.setText(rs.getString("员工号")); jTextField3.setText(rs.getString("员工姓名")); jTextField4.setText(rs.getString("员工性别")); jTextField5.setText(rs.getString("员工年龄")); jTextField6.setText(rs.getString("部门名称")); jTextField7.setText(rs.getString("员工职业")); } else { JOptionPane.showMessageDialog(this,"没有这个员工号的员工!"); } } catch(Exception ex){ //利用消息对话框提示查询失败 JOptionPane.showMessageDialog(this,"员工信息修改失败!"); } } //点击“修改工资”按钮 if(actionevent.getSource()==jButton2) { //获取用户更改的工资 try{ //利用st对象执行SQL语句,进行插入操作 st.executeUpdate("update Employee set 员工姓名='"+jTextField3.getText()+"' where 员工号='"+jTextField2.getText()+"'"); st.executeUpdate("update Employee set 员工性别='"+jTextField4.getText()+"' where 员工号='"+jTextField2.getText()+"'"); st.executeUpdate("update Employee set 员工年龄='"+jTextField5.getText()+"' where 员工号='"+jTextField2.getText()+"'"); st.executeUpdate("update Employee set 部门名称='"+jTextField6.getText()+"' where 员工号='"+jTextField2.getText()+"'"); st.executeUpdate("update Employee set 员工职业='"+jTextField7.getText()+"' where 员工号='"+jTextField2.getText()+"'"); //利用消息对话框提示员工信息修改成功 JOptionPane.showMessageDialog(this,"员工信息修改成功!"); } catch(Exception ex){ //利用消息对话框提示异常的信息 JOptionPane.showMessageDialog(this,"员工信息修改失败!"); ex.printStackTrace(); } } } } 4.49删除员工代码 //删除员工“面板类DeleteEmployee //导入系统的类包 import java.awt.*; import java.sql.*; import javax.swing.*; import java.awt.event.*; //创建“删除员工”类 public class DeleteEmployee extends JPanel implements ActionListener { //声明连接数据库对象 Connection con; //声明SQL语句对象 Statement st; //创建组件对象 JLabel jLabel1=new JLabel("请输入待删除的员工号"); JTextField jTextField1=new JTextField(); JButton jButton1=new JButton("删除"); //构造方法 public DeleteEmployee() { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //界面初始化方法 private void jbInit() throws Exception { //连接数据库 con=DBConnect.getConn(); st=con.createStatement(); //框架的布局 this.setLayout(null); //设置各组件的大小 jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,14)); jLabel1.setBounds(new Rectangle(70,20,200,30)); jTextField1.setBounds(new Rectangle(70,80,207,41)); jButton1.setBounds(new Rectangle(70,175,205,36)); //添加按钮动作事件 jButton1.addActionListener(this); //添加组件到面板 this.add(jLabel1); this.add(jTextField1); this.add(jButton1); } //点击按钮事件 public void actionPerformed(ActionEvent e) { //获取用户输入的员工号 String EmployeeID=jTextField1.getText(); //要求用户确认删除 if(JOptionPane.showConfirmDialog(this,"确认要删除吗?")==JOptionPane.YES_OPTION) { try{ //利用st对象执行SQL删除操作 st.executeUpdate("delete from Employee where 员工号='"+EmployeeID+"'"); //利用消息对话框提示删除操作成功 JOptionPane.showMessageDialog(this," 员工删除操作,执行成功!"); //清空输入学号的文本行 jTextField1.setText(""); } catch(Exception ex){ //利用消息对话框提示不能删除 JOptionPane.showMessageDialog(this," 员工删除操作,执行失败!"); } } } } 4.50帮助互动代码: //“帮助”面板类EmployeeHelp //导入系统的类包 import java.awt.*; import java.sql.*; import javax.swing.*; import java.awt.event.*; //创建“帮助”面板类 public class EmployeeHelp extends JPanel { //创建组件对象:标签 JLabel jLabel1=new JLabel("若有问题请联系:"); JLabel jLabel4=new JLabel("敬翰林"); JLabel jLabel2=new JLabel("QQ:81652794"); JLabel jLabel3=new JLabel("邮箱:81652794@qq.com"); //构造方法 public EmployeeHelp() { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //初始化 private void jbInit() throws Exception { //框架的布局 this.setLayout(null); //设置各组件的大小 jLabel1.setFont(new java.awt.Font("楷体",Font.BOLD,20)); jLabel1.setBounds(new Rectangle(50,50,300,30)); jLabel4.setFont(new java.awt.Font("楷体",Font.BOLD,20)); jLabel4.setBounds(new Rectangle(50,90,150,30)); jLabel2.setFont(new java.awt.Font("楷体",Font.BOLD,20)); jLabel2.setBounds(new Rectangle(50,140,300,30)); jLabel3.setFont(new java.awt.Font("楷体",Font.BOLD,20)); jLabel3.setBounds(new Rectangle(50,180,300,30)); //添加组件到面板 this.add(jLabel1); this.add(jLabel2); this.add(jLabel3); this.add(jLabel4); } } 4.51员工薪资查询代码: //"薪资清单查询"面板类 XinInquire //导入系统的类包 import java.awt.*; import java.sql.*; import javax.swing.*; import java.awt.event.*; //创建“薪资清单查询”类 public class XinInquire extends JPanel implements ActionListener { //声明连接数据库对象 Connection con; //声明SQL语句对象 Statement st; //创建组件对象:标签、文本行、单选 JLabel jLabel1=new JLabel("请输入要查询的员工号:"); JTextField jTextField1=new JTextField(); JButton jButton4=new JButton("薪资清单查询"); JTextArea jTextArea1=new JTextArea(); //构造方法 public XinInquire () { try{ //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //面板初始化方法 private void jbInit() throws Exception { //连接数据库 con=DBConnect.getConn(); st=con.createStatement(); //框架的布局 this.setLayout(null); //设置各组件的大小 jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,16)); jLabel1.setBounds(new Rectangle(46,4,222,32)); jTextField1.setBounds(new Rectangle(47,37,247,31)); jButton4.setBounds(new Rectangle(47,86,247,30)); jTextArea1.setBounds(new Rectangle(24,130,305,109)); //添加按钮动作事件 jButton4.addActionListener(this); //添加组件到面板 this.add(jLabel1); this.add(jTextField1); this.add(jTextArea1); this.add(jButton4); } //点击按钮事件 public void actionPerformed(ActionEvent e) { //获取输入的员工号 String EmployeeID=jTextField1.getText(); //清空文本区原有的内容 jTextArea1.setText(""); try{ //利用st对象执行SQL语句,返回结果集对象 ResultSet rs=st.executeQuery("select * from SalaryInquire where 员工号='"+EmployeeID+"'"); //处理结果集 if(rs.next()) { jTextArea1.setText("员工工资:"+rs.getString("员工工资")+"\n"+"奖励工资:"+rs.getString("奖励工资")+"\n" +"福利补贴:"+rs.getString("福利补贴")+"\n"+"住房公积金:"+rs.getString("住房公积金")+"\n"+"失业保险:"+rs.getString("失业保险")+"\n"+"员工薪资:"+rs.getString("员工薪资")+"\n"); } else { JOptionPane.showMessageDialog(this,"该员工号的员工没有薪资清单记录!"); } } catch(Exception ex){ //利用消息对话框提示查询失败 JOptionPane.showMessageDialog(this,"薪资查询失败!"); } } } 五:设计心得及体会 通过设计这个员工薪资系统,我们收获了很多。这是第一次课程设计。感觉还是很困难的。刚开始,建表,画E—R图都感觉没问题,可是到了JAVA连接数据库这里,就遇到了困难,开始老是连接不上。调试了JDBC连接的代码,终于能连接上了,并且还可以出现系统界面。但就是不能实现各种功能,于是我们就在代码上花了很长的时间,因为对JAVA的掌握不够好,以至于在这里遇到问题。 这个系统到现在还存在着很多问题,如不符合安全性要求,没有设置登录权限,不符合安全性要求等。 设计这个员工薪资系统,不仅让我们对企业的内部管理有了初步的了解和认识,也让我们对数据库有了更深的认识。并对JAVA语言有了更深层次的掌握。总之,通过设计这个系统,让我们在短短的时间学到了很多。
/
本文档为【员工薪资管理系统课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索