1、员工薪资管理系统课程设计共64页员工薪资管理系统课程设计学院:班级:学号:姓名:余黎晨 李雪敏 敬翰林 颜学宏指导教师:李竹林一:绪论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设计目的 员工薪资系统的主要目的是通过操作计算机代替手工劳动,能够在该系统内完成员工的信息录入,查询,
2、删除等操作,方便公司的高效化,规范化管理,有利于员工更好更方便了解自己的薪资信息。 系统开发的总体任务就是实现员工薪资管理的系统化、规范化和自动化。1.2设计内容 题目:员工薪资管理 1) 背景资料a) 某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员。b) 该单位下设4个科室,即经理室、财务科、技术科和销售科。c) 工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除。d) 每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销售员等)。e) 每月个人的最高工资不超过3000元。工资按月发放,实际发放的工资金额为工资减去扣除。2) 设计
3、要求:a) 进行需求分析,编写数据字典。b) 设计E-R图。c) 实现按照科室录入个人的基本资料、工资和扣除金额的数据。d) 计算个人的实际发放工资。e) 按科室、职业分类统计人数和工资金额。f) 实现分类查询。g) 能够删除辞职人员的数据。h) 开发工具不限。1.3开发背景当今社会,随着企业人数的不断增加,企业员工薪资的管理工作也越来越复杂,资金是企业生存的核心部分,而资金流动也是关键环节,随着计算机的普及,计算机管理系统已经原来越来越广泛的应用于各个中小型企业中,用计算机取代手工对企业管理的操作也是势在必行的,并且人为操作容易造成信息错误,纸质材料不易保存,可能会导致企业运转出现滞缓现象,
4、影响企业发展。为了更好的、更方便地管理企业中各个成员的工资发放情况,我们必须要有一个完善的、合理的、便捷的员工薪资管理系统来管理公司员工工资的发放情况。该员工薪资管理系统主要用于中小型企业员工的工资发放管理,此系统的建立和使用有利于员工更好的了解自己的薪资信息,提高公司员工薪资发放工作的效率,大大减少纸质管理对工作带来的失误。1.4开发环境 开发平台:SQL Server2005 开发工具:Eclipse JDBC 开发语言:SQL语言 JAVA语言1.5组内成员及分工李雪敏:系统框架 撰写报告颜学宏:代码编写 数据库的连接与运行 余黎晨:概念结构设计 代码调试 敬翰林:逻辑结构设计 需求分析
5、 二:需求分析2.1题目分析 该题目要求设计一个员工薪资系统,实现员工信息的有序化,规范化,并能进行员工信息录入,查询,修改,删除等操作,能实现分类查询,2.2功能分析 该员工薪资系统能够实现的功能如下:员工信息的管理,包括姓名,性别,年龄,职业,员工号,部门编号基本信息的录入,查询,删除,修改等操作部门信息的管理,包括部门编号和部门名称,查询每个部门的业绩和员工薪资情况薪资信息的管理,包括员工号,部门编号,基本工资,福利补贴,奖励工资,失业保险,住房公积金,实发薪资等信息,统计出员工的基本工资,福利补贴,奖励工资,扣除失业保险,住房公积金后所得的工2.3数据流图 注册员工员工基本信息查询员工
6、员工工资记录员工薪资信息形成查询部门经理薪资信息管理部门工资记录统计分析财务统计人员2.4数据字典数据字典在数据库设计中占有很重要的地位,数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果。根据数据流图对员工薪资管理数据库数据字典的设计如下所示:2.41数据结构名:员工含义说明:员工信息组成:姓名,性别,年龄,职业,员工号数据项名数据类型长度可否为空含义说明员工号char10no员工编号员工姓名char10 no姓名员工年龄char 10 no年龄部门名称char 10 no所属部门员工职业char 10 no担任职务2.42数据结构名:部门含义说明:部门信息 组
7、成:部门编号,部门名称数据项名数据类型长度可否为空含义说明部门编号char4no科室类别部门名称char10no科室名称2.43数据结构名:工资含义说明:员工薪资信息组成:员工号,部门编号,基本工资,福利补贴,奖励工资,扣罚工资,失业保险,住房公积金,实发薪资数据项名数据类型长度可否为空含义说明员工号char8no员工编号员工工资char4no所的工资奖励工资money8no基本工资员工薪资money8yes福利和补贴工资 2.5系统功能该员工薪资系统的功能如下: 三:系统分析与设计3.1概念结构设计 ER图设计员工实体关系图性别姓名 职业员工员工号年龄部门编号部门实体关系图部门编号部门部门名
8、称工资实体关系图员工号实发薪资住房公积金福利补贴基本工资部门编号工资奖励工资失业保险总的ER图3.2概念结构设计 E-R图表示的概念模型是用户数据要求的形式化,它不为任何一个DBMS所支持,而逻辑结构设计的任务就是把概念模型结构转换成某个具体的DBMS所支持的数据模型,员工薪资管理E-R图转换为关系模式为:员工(姓名,性别,年龄,职业,员工号,部门编号)部门(部门编号,部门名称)薪资(员工号,员工工资,福利补贴,奖励工资,失业保险,住房公积金,实发薪资) 四:数据库实施与运行4.1建基本表 员工信息表 部门信息表 工资信息表4.3功能实现 4.31系统界面展示:4.32员工信息查询功能 按工号
9、查询: 按姓名查询:4.33员工工资查询功能:4.34修改员工工资功能:4.35添加员工功能: 4.36修改员工信息功能:4.37删除员工信息功能:4.4完整代码展示 4.41源程序代码/类DBConnect用于数据库的连接/导入sql包import java.sql.*;/创建数据库连接类DBConnectpublic class DBConnect /静态方法提高数据库的连接效率 public static Connection getConn() throws Exception /加载JDBC驱动 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
10、 /以系统默认用户身份,连接数据库StudentManager return DriverManager.getConnection(jdbc:odbc:Test,dmj,753);4.42主框架代码: /系统主框架类/导入系统的包import java.awt.*;import java.awt.event.*;import javax.swing.*; /创建主框架类MainFramepublic class MainFrame extends JFrame implements ActionListener /创建内容面板 JPanel contentPane; /创建菜单栏组件的对象
11、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(工资管理)
12、; 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(互动); /创建标签,用于显示信息 JLa
13、bel jLabel1=new JLabel(欢迎使用员工薪资管理系统); /创建构造方法 public MainFrame() try /关闭框架窗口时的默认事件方法 setDefaultCloseOperation(EXIT_ON_CLOSE); /调用初始化方法 jbInit(); catch(Exception exception) exception.printStackTrace(); /界面初始化方法 private void jbInit() throws Exception /创建内容面板 contentPane =(JPanel) getContentPane(); /设置
14、内容面板的布局为空 contentPane.setLayout(null); /主框架的大小 setSize(new Dimension(400,360); /主框架的标题 setTitle( 员工薪资管理系统); /添加事件监听器 jMenuItem0.addActionListener(this); jMenuItem1.addActionListener(this); jMenuItem2.addActionListener(this); jMenuItem3.addActionListener(this); jMenuItem4.addActionListener(this); jMe
15、nuItem5.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
16、.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); /设置标签组件的大小和字体 jLabel
17、1.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) /创建“
18、添加员工”面板对象 AddEmployee AddEmp=new AddEmployee(); /移除主框架上原有的内容 this.remove(this.getContentPane(); /加载“添加职工”面板的对象到主框架 this.setContentPane(AddEmp); /令界面可见 this.setVisible(true); /点击“员工管理”菜单下的“修改员工”菜单项 if(actionEvent.getSource()=jMenuItem2) /创建“修改员工”面板对象 ModifyEmployee ModifyEmp=new ModifyEmployee(); thi
19、s.remove(this.getContentPane(); /加载“修改员工”面板的对象到主框架 this.setContentPane(ModifyEmp); this.setVisible(true); /点击“员工管理”菜单下的“删除员工”菜单项 if(actionEvent.getSource()=jMenuItem3) /创建“删除员工”面板对象 DeleteEmployee DeleteEmp=new DeleteEmployee(); this.remove(this.getContentPane(); /加载“删除员工”面板的对象到主框架 this.setContentPa
20、ne(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()
21、=jMenuItem5) /创建工资修改的面板对象 ModifySalary ModifySal=new ModifySalary(); this.remove(this.getContentPane(); /加载工资修改面板的对象到主框架 this.setContentPane(ModifySal); this.setVisible(true); /点击“工资管理”菜单下的“工资查询”菜单项 if(actionEvent.getSource()=jMenuItem8) /创建工资修改的面板对象 SalaryInquire SalaryInq=new SalaryInquire(); this
22、.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.set
23、Visible(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 fram
24、eSize =frame.getSize(); /令主界面窗体居中 if(frameSize.heightscreenSize.height) frameSize.height=screenSize.height; if(frameSize.widthscreenSize.width) frameSize.width=screenSize.width; frame.setLocation(screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); /令主界面显示 frame.setVisible(tr
25、ue);4.44员工信息查询代码 按工号查询代码/导入系统的类包import java.awt.*;im/按员工号查询面板类InquireOnGHport java.sql.*;import javax.swing.*;import java.awt.event.*;/创建“按员工号查询”类public class InquireOnGH extends JPanel implements ActionListener /声明连接数据库对象 Connection con; /声明SQL语句对象 Statement st; /创建组件对象:标签、文本行、单选 JLabel jLabel1=new
26、 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=DBCo
27、nnect.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(
28、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.get
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1