职工工资管理系统_2.docx

上传人:牧羊曲112 文档编号:1926921 上传时间:2022-12-26 格式:DOCX 页数:30 大小:230.43KB
返回 下载 相关 举报
职工工资管理系统_2.docx_第1页
第1页 / 共30页
职工工资管理系统_2.docx_第2页
第2页 / 共30页
职工工资管理系统_2.docx_第3页
第3页 / 共30页
职工工资管理系统_2.docx_第4页
第4页 / 共30页
职工工资管理系统_2.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《职工工资管理系统_2.docx》由会员分享,可在线阅读,更多相关《职工工资管理系统_2.docx(30页珍藏版)》请在三一办公上搜索。

1、数据库课程实训(2017)数据库课程实训报告题目: 职工工资管理系统 专业学生姓名班级学号指导教师完成日期1目 录1 课题内容和要求11.1课题描述11.2 课题要求12 需求分析12.1 功能需求分析12.2 数据需求分析13 系统设计43.1 功能模块设计43.2 数据库概念设计63.3 数据库逻辑设计63.4 数据库物理设计63.5 数据库表间联系84系统实现94.1 登录模块实现94.2 添加信息/工资模块实现94.3 查询职工信息模块实现115 代码调试与功能测试125.1 测试方案125.2 测试结果126 收获与体会17参考文献18附录19附录1源程序部分清单19附录1.1登陆代

2、码19附录1.2修改职工工资代码22附录1.3删除职工工资代码253职工工资管理系统1 课题内容和要求 1.1课题描述 职工工资管理系统可定位于企业会计系统的一个子系统,该系统主要完成的工作为:录入各职工自身及工资情况、对已经存在的数据的修改、删除、可查询、统计系统中的数据等。为此因此职工工资管理系统的功能:读取文件信息、数据输入、显示、查找、增加、删除、修改、计算、列表等。1.2 课题要求1)可以按照科室(经理室、财务科、技术科和销售科)增加、修改、删除职工的基本资料。2)职工信息应包含职称,分为高级、中级、初级,同一职称职工基本工资相同。3)职工工资由基本工资、奖金、扣除金额组成,其中奖金

3、、扣除金额可每月输入不同数据。4)可以计算职工每月工资。5)可以按照科室、职称、月份统计职工工资。6)可以按照科室、职工号、职工名称查询职工工资。2 需求分析2.1 功能需求分析1) 职工管理:职工管理可以包含两大模块档案管理和奖惩管理,其中档案管理可以管理职工的基本信息,管理员可以增加职工的信息,删除职工的信息,修改职工的信息和最基本的查看职工的信息,通过这一功能可以让管理者掌控职工的全部信息和人事变动信息。奖惩管理中管理员可以管理职工的奖惩信息,添加职工的奖惩信息,查看,修改和删除职工的奖惩信息。2) 工资管理:管理员可以查看职工的工资情况,设置工资结构,通过学历,职称,教龄等一系列的信息

4、来发放工资,规定到达哪一个级别需要发放多少的基本工资。管理员到每个月末的时候根据职工的基本工资和得到的福利津贴来结算职工的可得工资,并以此为依据来给职工发放。3) 系统管理:系统管理管理包括部门管理和数据备份,通过部门管理让管理者通过计划,组织,激励,控制和领导等环节来协调人力,物力和财力资源,以期达成组织目标。数据备份是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。随着技术的不断发展,数据的海量增加,不少的企业开始采用网络备份。一般通过专业的数据存储管理软件结合相应的硬件和存储设备来实现。数据是一个系统运行的血液,是一

5、个公司能否正常运行的关键,因此数据备份至关重要,因一些不可抗力因数而使数据丢失将造成非常严重的后果,为了保障生产、销售、开发的正常运行,企业用户应当采取先进、有效的措施,对数据进行备份、防范于未然。2.2 数据需求分析数据流图(图2.2.1-2.2.3):退出系统系统验证查找用户登陆信息用户系统验证员工信息管理用户信息库员工工资表员工信息表考勤信息表用户名和密码登陆失败用户登陆信息获取员工工资员工工资信息员工信息获取员工信息获取考勤信息图2.2.1工资管理流图保存到数据库管理员增加信息添加数据库修改信息删除信息数据备份是否实现YN图2.2.2员工管理数据流图基本信息按员工编号查询按员工姓名查询

6、提交数据是否激活显示查询信息YN图2.2.3员工信息查询数据流图数据字典(图2.2.4-2.2.9): 图2.2.4档案信息数据项卡 图2.2.5部门信息数据项卡 图2.2.6职务信息数据项卡 图2.2.7变动信息数据项卡 图2.2.8登录信息数据项卡 图2.2.9工资信息数据项卡3 系统设计3.1 功能模块设计1) 用户管理模块添加、编辑、删除登录用户。 2) 基本信息设置模块包括员工基本信息管理企业工资的管理津贴的管理。 3) 查询模块可组合各种条件查找各个部门的员工的基本信息和工资信息。 4) 打印报表模块工资报表的打印预览、打印。职工工资管理系统职工管理工资管理系统管理用户管理退出档案

7、管理奖罚管理考勤津贴工资总结部门管理数据备份操作员管理修改密码退出系统图3.1系统功能模块图3.2 数据库概念设计 部 门部门名经理名经理编号 部门编号任职年份性别员工学历电话员工编号姓名年龄服务管理员用户编号密码用户名发放工资发放时间福利发放地点图3.2 总体E-R图3.3 数据库逻辑设计1) 部门关系模式(部门编号,部门名,经理编号,经理姓名)2) 员工关系模式(员工编号,姓名,年龄,性别,学历,电话,部门编号)3) 工资关系模式(发放地点,发放时间,福利,员工编号)4) 管理员关系模式(用户编号,密码,用户名,员工编号)5) 任职关系模式(部门编号,员工编号,年份)3.4 数据库物理设计

8、列名数据类型允许空默认值是否主键用户名Varchar(50)Not null主键密码IntNot null权限Varchar(50)Not null表3.4.1用户登录表(User)列名数据类型允许空默认值是否主键部门编号IntNot null主键部门名称Varchar(50)No null表3.4.2部门表(department)列名数据类型允许空默认值是否主键员工编号Int Not null主键员工姓名Varchar(50)Not null员工性别Varchar(50)Not null男部门编号Int No null出生日期Varchar(50) 员工民族Varchar(50)婚姻状况Va

9、rchar(50)职务名称Varchar(50)No null联系电话Int Not null基本工资Varchar(50)Not null表3.4.3员工表(employee)列名数据类型允许空默认值是否主键员工编号int Not null是部门编号Int Not null基本工资Varchar(50) Not null职务津贴Varchar(50) Not null奖励金额Varchar(50) Not null罚款金额Varchar(50) Not null全勤奖金Varchar(50) Not null加班工资Varchar(50)Not null个人所得税Varchar(50) No

10、t null表3.4.4工资表(pay)列名数据类型允许空默认值是否主键考勤编号Int Not null 是员工编号Int Not null 奖罚类型Varchar(50)Not null奖罚内容textNot null奖励金额Varchar(50)Not null罚款金额Varchar(50)Not null奖罚日期Varchar(50) Not null撤销日期Varchar(50) Not null表3.4.5考勤表(prize)3.5 数据库表间联系 图3.5 数据关系图4系统实现4.1登录模块实现 系统用户登录模块主要用于完成对登录系统的用户的验证,只有合法的用户和正确的数据库配置才

11、可以进入系统,否则给与相应的错误提示登录窗体:验证用户名和密码是否正确,通过用户名和密码判断出改用户是否是本系统的合法用户,并且通过用户名和密码判断用户的权限是超级管理员还是一般用户,根据不同的用户权限授予相应的管理和使用本系统的权限。控件:lblField控件数组,2个JLabel控件,2个JButton控件,2个TextBox控件,1个GroupBox控件,1个PictureBox控件。属性:用户名,密码,管理员,普通用户。事件:用户进行登陆。数据库连接:import java.sql.Connection; import java.sql.DriverManager; import ja

12、va.sql.SQLException;public class DBConnection public static Connection getConnection() Connection conn = null; String driver = sun.jdbc.odbc.JdbcOdbcDriver; String url = jdbc:odbc:schoolData; String username = sa; String password = 123456; try Class.forName(driver); conn = DriverManager.getConnectio

13、n(url,username,password); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(); return conn; 工具:SQL Server Management Studio,eclipse。图4.1 登陆模块图4.2 添加信息/工资模块实现 添加信息/工资模块主要用于完成对信息和工资的添加。添加信息/工资模块包含2个控件数组,lblField是一个Label控件数组,用于显示字段名称,txtValue 用于输入这些字段的值;另外还有

14、一个“添加”按钮和“取消”按钮,分别实现添加员工和退出窗体的功能添加信息模块属性:工号,基本工资,扣除金额,奖金工资,补助;添加工资模块属性:工号,姓名,性别,年龄,生日,所在科室。事件:用户对系统进行对(信息/工资)添加操作。数据库连接:import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConnection public static Connection getConnection() Connection conn = null;

15、String driver = sun.jdbc.odbc.JdbcOdbcDriver; String url = jdbc:odbc:schoolData; String username = sa; String password = 123456; try Class.forName(driver); conn = DriverManager.getConnection(url,username,password); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printS

16、tackTrace(); return conn; 工具:SQL Server Management Studio,eclipse。图4.2.1添加职工工资模块图图4.2.2 添加职工信息模块图4.3 查询职工信息模块实现控件:DataGrid控件,lblField控件,2个JLabel控件,2个JButton控件,1个TextBbox控件,JMenu控件,1个GroupBox控件,1个PictureBox控件。属性:工号,姓名,性别,年龄,生日,科室。事件:用户通过系统查询信息。数据库连接:import java.sql.Connection; import java.sql.DriverM

17、anager; import java.sql.SQLException; public class DBConnection public static Connection getConnection() Connection conn = null; String driver = sun.jdbc.odbc.JdbcOdbcDriver; String url = jdbc:odbc:schoolData; String username = sa; String password = 123456; try Class.forName(driver); conn = DriverMa

18、nager.getConnection(url,username,password); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(); return conn; 工具:SQL Server Management Studio,eclipse。图4.3 查询职工信息图5 代码调试与功能测试5.1 测试方案登陆系统添加职工信息输入工号1,姓名张,性别选男,年龄32,生日911122,所在科室财务科;查询职工信息,输入工号20,查询;修改职工信息,修改工

19、号20,修改工号对应的值年龄,输入新值34;删除职工信息,输入要删除的工号20,选择只删除职工信息添加职工工资,输入工号20,基本工资100,扣除金额工资100,奖金工资500,补助100.查询职工工资,输入工号20;修改职工信息,输入要修改工号20,值选择扣除,输入新的值10;删除职工工资,输入要删除的工号20,选择只删除职工工资。5.2 测试结果5.2.1添加职工信息图5.2.1 添加职工信息5.2.2查询职工信息图5.2.2查询职工信息图5.2.3修改职工信息图5.2.3修改职工信息图5.2.4删除职工信息图5.2.4删除职工信息图5.2.5添加职工工资图5.2.5添加职工工资图5.2.

20、6查询职工工资图5.2.6 查询职工工资图5.2.7修改职工信息图5.2.7修改职工信息图5.2.8删除职工工资图5.2.8删除职工工资图6 收获与体会通过这几周的课程设计实践,让我感觉收获颇多。刚开始的时候觉得无处下手,连该做什么都没有头绪,是老师和同学们给了我很大的帮助,老师提示我们先进行需求分析,了解用户的需求,根据用户的需求和数据库原理课程设计报告模版来设计程序。在不断的课程设计过程中,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应

21、用型人才打下良好的基础。在开发这个工资管理系统过程中我深刻地体会到了自学能力的重要性。毕竟在学校学习到的知识是有限的,而在开发系统的过程中仅凭原有的一点点知识是远远不够的,只有翻阅大量的资料才能学到更多的知识,才能实现其预期的功能。在开发过程中,遇到困难是在所难免的,期间通过指导教师的测评和给出的建议并和同学进行交流,从中明白了很多。开发一个系统,恒心和毅力也是不可缺少的,如果一遇到难题就心慌,想要放弃,那这样就不可能完成系统。同样,在开发过程当中,细心也是非常重要的,由于很多事项都要很注意才行,如果没有做到这一点,就会出错。在这次的课程设计中,让我深深地体现到进行软件开发不是一件简单的事情,

22、它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢老师和我的同学在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的设计。 27参考文献1 钱雪忠,王燕玲,林挺.数据库原理及技术M.北京:清华大学出版社,2011.2 钱雪忠,罗海驰,陈国俊.数据库原理及技术课程设计M.北京:清华大学出版社,2014.3 陈志泊,李冬梅,王春玲.数据库原理及应用教程.北京:人民邮电出版社,2002.4 施伯乐,丁宝康.数据库技术.北京:科学出版社,2002.5 王能斌.数据库系统教程.北京:电子工业出版社,2002

23、.6 吴晨、胡书敏、蔡威.Visual C# 2005 数据库通用模块开发与系统移植.北京:清华大学出版社.附录附录1源程序部分清单附录1.1登陆代码package student;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class denglu implements ActionListenerstatic String dbdriver=com.microsoft.jdbc.sqlserver.SQLServerDriver; static String

24、dburl=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=students; static String user=sa; static String pass=123456; String type=管理员; JFrame f; JLabel j1,j2,j3;JTextField tf1; JPasswordField tf2;JButton b1,b2; JRadioButton rb1,rb2; denglu() f=new JFrame(登 陆); f.setLayout(null); tf1=new JTextField

25、(20); tf2=new JPasswordField(20); tf2.setEchoChar(*); b1=new JButton(确定); b2=new JButton(退出); j1=new JLabel(请输入用户名); j2=new JLabel(请输入密码); j3=new JLabel( ); rb1=new JRadioButton(管理员); rb2=new JRadioButton(普通用户); ButtonGroup g1=new ButtonGroup(); g1.add(rb1); g1.add(rb2); rb2.addActionListener(this);

26、 rb1.addActionListener(this); b1.addActionListener(this); b2.addActionListener(this); f.add(j1); f.add(tf1); f.add(j2); f.add(tf2); f.add(b1); f.add(b2); f.add(j3); f.add(rb1); f.add(rb2); j1.setBounds(45,40,80,20); j2.setBounds(45,90,80,20); j3.setBounds(50,200,200,20); b1.setBounds(60,180,70,30);

27、b2.setBounds(180,180,70,30); tf1.setBounds(130,40,120,20); tf2.setBounds(130,90,120,20); rb1.setBounds(70,130,80,20); rb2 .setBounds(180,130,80,20); f.setSize(350,270); f.setVisible(true); f.addWindowListener(new WindowAdapter() public void windowClosing(final WindowEvent e) System.exit(0); ); publi

28、c void actionPerformed(ActionEvent e) if(e.getSource().equals(rb2) type=普通用户; if(e.getSource().equals(rb1) type=管理员; if(e.getSource().equals(b1) String s1=String.valueOf(tf2.getPassword(); if(tf1.getText().equals()|s1.equals() / new JOptionPane().showMessageDialog(null,用户名或密码不能为空!); j3.setText(用户名或密

29、码不能为空!); else try Class.forName(dbdriver); Connection con = DriverManager.getConnection(dburl,user,pass); Statement stm=con.createStatement(); ResultSet res=stm.executeQuery(sql); while (res.next() if (tf1.getText().trim().equals(res.getString(sid) / if (tf2.getText().equals(res.getString(spw) javax

30、.swing.JOptionPane.showMessageDialog(null, 登陆成功); new Student1(); else / javax.swing.JOptionPane.showMessageDialog(null,密码不正确); j3.setText(密码输入有误!); tf1.setText(); tf2.setText(); else j3.setText(用户名不存在!); ResultSet res = stm.executeQuery(select * from suser where sid = + tf1.getText() + ); /读取数据库 if

31、 (!res.next() JOptionPane.showMessageDialog(null, 不存在此用户!); else if (! (res.getString(spw).trim().equals(s1) JOptionPane.showMessageDialog(null, 密码错误!); else if(!res.getString(type).trim().equals(普通用户) if(type.equals(普通用户) javax.swing.JOptionPane.showMessageDialog(null, 这是是管理员帐户 请使用管理员权限!); else jav

32、ax.swing.JOptionPane.showMessageDialog(null, 管理员账户 登陆成功!); String sasa=res.getString(sid); f.setVisible(false); new Star(type,sasa); else if(type.equals(管理员) javax.swing.JOptionPane.showMessageDialog(null, 这是普通用户 请使用普通用户权限!); else javax.swing.JOptionPane.showMessageDialog(null, 普通用户账户 登陆成功!); String

33、 sasa=res.getString(sid); f.setVisible(false); new Star(普通用户,sasa); con.close(); catch(Exception z) z.printStackTrace(); System.out.println(z.getMessage(); if(e.getSource().equals(b2) System.exit(0); public static void main(String args) new denglu(); 附录1.2 修改职工工资代码package student;import java.awt.*;i

34、mport java.awt.event.*;import javax.swing.*;import java.sql.*;public class xiugaichengji extends JInternalFrame implements ActionListener int n=0; JLabel j1,j2,j3;JTextField tf1,tf2;JButton b1,b2; JRadioButton rb1,rb2,rb3,rb4; String ss1=; xiugaichengji() super(修改职工信息); setLayout(null); j1=new JLabel(输入要修改的工号); j2=new JLabel(在下列选择要修改的工号对应的值,一次只能修改一项); j3=new JLabel(输入新的值); tf1=new JTextField(20); tf2=new JTextField(20); b1=new JButton(修改); b2=new JButton(取消);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号