数据库课程设计_员工薪资管理系统_第1页
数据库课程设计_员工薪资管理系统_第2页
数据库课程设计_员工薪资管理系统_第3页
数据库课程设计_员工薪资管理系统_第4页
数据库课程设计_员工薪资管理系统_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 *理工学院 数据库课程设计报告 员工薪资管理系统 学 院:计 算 机 学 院 专 业:计算科学与技术 课 程:数据库原理及应用 班 级:* 级 计 科 * 班 组 员: 学 号:* 3、 *8、 *9指导教师:* 洪 2014/07/02*摘要* 企业员工薪资管理是公司管理的一个重要内容。工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部

2、分。但考虑到学生的开发时间,本次设计主要阐述员工工资管理系统主要是以企业员工工资情况为对象而开发的。涉及系统比较小,有利于学生单独编写。其系统的设计主要包括数据库的设计、维护和应用界面的设计与后台数据库的连接。 经分析采用Sun Microsystems公司的Java为前台开发工具,MicrosoftSQLsever2008为后台数据库。Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE,JavaME, JavaSE)的总称。Java自面世后就非常流行,发展迅速,对C+语

3、言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。目前市场上数据库的主流厂商及产品有IBMDB2、MicrosoftSQLSERVER2000、ORACLE9i、Sybase。MicrosoftSQLServer2008是在SQLServer2000的基础上对性能、可靠性、质量以及易用性进行了扩展。 SQLServer2008中包含许多新特性,这些特性使其成为针对电子商务、数据仓库和在

4、线商务解决方案的卓越的数据库平台。其增强的特性包括对丰富的扩展标记语言(XML)的支持、综合分析服务以及便捷的数据库管理。MicrosoftSQLServer2008简化了管理、优化工作,并且增强了迅速、成功的部署在线商务应用程序所需的可靠性和伸缩性。开发平台: 操作系统:Windows8 前台开发工具:JavaSE 后台数据库:MicrosoftSQLsever2008开发人员: * 目录* 摘 要 01一、开发背景 03 设计背景 03 设计要求 03二、系统性需求分析 04三、概要设计 04四、物理设计 05五、详细设计 05 数据库的E-R图 05 数据库结构设计 06六、调试分析 0

5、7七、管理软件源代码 11八、思考与总结 30九、参考文献 31一、开发背景1.设计背景:1) 某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员。2) 该单位下设4个科室,即经理室、财务科、技术科和销售科。3) 工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除。4) 每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销售员等)。5) 每月个人的最高工资不超过3000元。工资按月发放,实际发放的工资金额为工资减去扣除。2.设计要求:1) 进行需求分析。2) 设计E-R图。3) 实现按照科室录入个人的基本资料、工资和扣除金额的数据。4)

6、 计算个人的实际发放工资。5) 按科室、职业分类统计人数和工资金额。6) 实现分类查询。7) 能够删除辞职人员的数据。8) 开发工具不限。二、系统性需求分析 本系统的开发宗旨以及总体任务就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的自动化、规范化和系统化。所以为了能够实现编制这个系统所设定的目标,在程序的开发之前,需求分析是必不可少的。需求分析的第一步描述工资管理系统的功能,即定义用例,以此确定系统的功能需求。工资管理系统的用例分析主要是找出系统中所有的用例,因此要和工资管理系统的潜在用户进行讨论。系统最终实现的主要功能如下:1、员工基本信息模块 员工基本信息模块具有员工信息输

7、入、员工增删和员工信息查询三个功能。员工基本信息包括员工编号、员工姓名、员工性别、所在部门、年龄、住址和联系电话等信息。员工增删实现了对数据库中员工信息的增加和删除。2、工资结构设置模块 根据该公司的工资管理实际情况,本系统将工资结构分为基础工资、岗位工资和工龄工资三部分。该模块可以对这三个工资类型设置工资等级,并对每个等级设置工资标准。数据流需求分析: 登陆信息 返回信息 用 户登 录操 作数据库 错误信息 寻找信息 数据库需求分析数据流图三、概要设计 根据需求分析阶段得到的功能需求,管理员、员工通过输入用户名号和密码进下该系统后,可以进行一些基本查询(员工工资信息查询、津贴信息查询)、还可

8、以进行员工删除和添加员工的操作,员工通过登录并输入密码,可以进行查询自己的数据(工资,信息)。 模块功能大概可以分为如下5个方面:这几个模块工资管理、信息查询,添加和删除员工,登陆、退出。工资管理包括基本工资查询,添加员工、删除员工等。 四、物理设计1. 选择登陆 则会进入相应登陆网页。 2. 选择员工 管理员游客即可进入对应的网页3. 进入员工界面即可进入 员工工资查询功能窗体。4. 进入管理员界面 即可进入 修改信息添加信息查询信息功能窗体。5. 选择添加信息 按钮即可进入 添加员工信息功能窗体。6. 选择删除信息 菜单按钮即可进入 删除员工功能窗体。7.选择查询信息 菜单按钮即可进入 查

9、询员工信息功能窗体。8. 选择首页将返回整个系统。五、详细设计 (1) 数据库的E-R图及合并部分视图生成E-R 图员工信息E-R图:员工工资信息E-R图:(2) 数据库结构设计根据上面概念结构设计阶段得到的E-R图,下一步应该将它转化为关系模型。可以得到对应的关系模式为:Worker(num,name,sex,age,dep,occup,password)Salary(work_num,basic_pay,welfare,honus,insurance,housing_fund,payment)数据库表的建立:(sql语句及截图) 语句如下:Create table worker ( num

10、 char(5) primary key,name varchar(8),sex char(5),age smallint,dep varchar(20),occup varchar(20),password varchar(10),);Create table salary( worker_num nchar(5) primary key, basic_pay float, welfare float, bonus float, insurance float,housing_fund float,payment float,)六、调试分析1、进入系统界面2、职工/管理员系统界面3、工资管理

11、界面4、密码修改界面5、工资管理界面录入/修改/删除/查询所有/返回员工信息管理界面七、管理软件源代码说明:管理界面选择采用Java构建管理界面,Java对数据库有着对数据库良好的连接功能,且其可以很容易的实现窗口的构建,可以给用户以及管理员以良好友善的界面,便于人机交互,能够很好的对数据库实现管理,以及其面向对象的特性在后期的维护中很容易实现软件的扩展与各种维护! Java编程语言的风格十分接近C语言、C+语言。Java是一个纯粹的面向对象的程序设计语言,它继承了 C+语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloa

12、ding)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。package wage_management;import java.awt.*;import java.awt.event.*;import javax.swing.*;class DB1 extends JFrame implements ActionListener private static final long serialVersionUID = 1L;JFrame frame = new JFrame(欢迎进入工资管理系统);JLabel

13、label = new JLabel(, JLabel.CENTER);JButton button1 = new JButton(进入系统);JButton button2 = new JButton(退出系统);void Create() JPanel pcontentPane = (JPanel) frame.getContentPane();pcontentPane.add(label);pcontentPane.setLayout(new FlowLayout();pcontentPane.add(button1);pcontentPane.add(button2);pcontent

14、Pane.setBackground(Color.gray);pcontentPane.setVisible(true);button1.addActionListener(this);button2.addActionListener(this);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setBounds(500, 300, 300, 150);frame.setResizable(false);frame.setVisible(true);public static void main(

15、String args) DB1 dome = new DB1();dome.Create();public void actionPerformed(ActionEvent e) if (button1.equals(e.getSource() DL dl = new DL();dl.create();frame.dispose();if (button2.equals(e.getSource() / 退出System.exit(0);-package wage_management;import java.awt.Color;import java.awt.FlowLayout;impor

16、t java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.sw

17、ing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import com.mysql.jdbc.PreparedStatement;SuppressWarnings(serial)class DL extends JFrame implements ActionListenerJFrame frame = new JFrame(职工/管理员登陆);JLabel label1 = new JLabel(用户名);JLabel label2 = new JLabel(密码);JButton logon

18、Button1 = new JButton(管理员登录);JButton logonButton2 = new JButton(职工登录);JButton cancelButton = new JButton(退出);JTextField username = new JTextField(9);JPasswordField password = new JPasswordField(9);static String t1;static String t2;void create()JPanel p = (JPanel) frame.getContentPane();SuppressWarni

19、ngs(unused)JPanel p1 = new JPanel();p.setLayout(new FlowLayout();p.add(label1);p.setSize(5, 5);p.setLocation(4, 8);p.add(username);p.setSize(100, 200);p.setLocation(800, 800);p.add(label2);p.setSize(50, 20);p.setLocation(40, 80);p.add(password);p.setSize(100, 20);p.setLocation(80, 120);p.add(logonBu

20、tton1);p.add(logonButton2);p.add(cancelButton);p.setBackground(Color.gray);p.setVisible(true);logonButton1.addActionListener(this);logonButton2.addActionListener(this);cancelButton.addActionListener(this);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setBounds(500, 300, 500

21、, 220);frame.setVisible(true);SuppressWarnings(deprecation)public void actionPerformed(ActionEvent e)t1 = username.getText();t2 = password.getText();if(e.getSource()=logonButton1)if( username.getText().equals(admin) = true& (password.getText().equals(admin) = true)JOptionPane.showMessageDialog(this,

22、 登录成功!);GZGLZJM gz = new GZGLZJM();gz.create();frame.dispose();else JOptionPane.showMessageDialog(null, 输入用户名或密码错误!);if (e.getSource()=logonButton2)try Connection con;Statement ps;ResultSet rs;String sql = null;Class.forName(org.gjt.mm.mysql.Driver);Class.forName(org.gjt.mm.mysql.Driver).newInstance

23、();con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/management,root,hellomysql);sql=select * from worker where num=+t1+ and password=+t2+;ps=(PreparedStatement) con.prepareStatement(sql);rs = ps.executeQuery(sql);if(rs.next()if(rs.getString(num).equals(t1) & rs.getString(password).equals

24、(t2)YGGLZJM yg = new YGGLZJM();yg.create();frame.dispose();JOptionPane.showMessageDialog(this, 登录成功!);this.dispose();else JOptionPane.showMessageDialog(this, 输入用户名或密码错误!);catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();if (cancelButton.equals(e.getSource() / 退出System.exit(

25、0);-package wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.s

26、wing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTable;import javax.swing.JTextField;SuppressWarnings(serial)public class GZGL extends JFrame impl

27、ements ActionListener JFrame f = new JFrame(员工工资管理);JButton b1 = new JButton(录入);JButton b2 = new JButton(修改);JButton b3 = new JButton(删除);JButton b4 = new JButton(查询所有);JButton b5 = new JButton(返回);JTextField tf1 = new JTextField(6);JTextField tf2 = new JTextField(4);JTextField tf3 = new JTextField

28、(4);JTextField tf4 = new JTextField(4);JTextField tf5 = new JTextField(4);JTextField tf6 = new JTextField(4);JTextField tf7 = new JTextField(6);JTextField tf8 = new JTextField(6);JTextField tf9 = new JTextField(4);JTextField tf10= new JTextField(4);JTextField tf11= new JTextField(6);JTextField tf12=

29、 new JTextField(6);String cloum = 职工号, 基本工资, 津贴, 奖金,保险,房贷,总工资;Object row = new Object507;JTable table = new JTable(row, cloum);JScrollPane scrollpane = new JScrollPane(table);JSplitPane splitpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);void create() JPanel p = (JPanel) f.getContentPane();p.setLa

30、yout(new FlowLayout();p.add(scrollpane);p.add(splitpane);JPanel p1 = new JPanel();p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5);JPanel p2 = new JPanel();p2.setBackground(Color.gray);p2.add(scrollpane);SuppressWarnings(unused)JPanel p3 = new JPanel();p.setLayout(new FlowLayout();p.add(new JL

31、abel();p.add(new JLabel(职工号);p.add(tf1);p.add(new JLabel(基本工资);p.add(tf2);p.add(new JLabel(津贴);p.add(tf3);p.add(new JLabel(奖金);p.add(tf4);p.add(new JLabel(保险);p.add(tf5);p.add(new JLabel(房贷);p.add(tf6);p.add(new JLabel(总工资);p.add(tf7);p.add(new JLabel(姓名);p.add(tf8);p.add(new JLabel(性别);p.add(tf9);p

32、.add(new JLabel(年龄);p.add(tf10);p.add(new JLabel(部门);p.add(tf11);p.add(new JLabel(职业);p.add(tf12);splitpane.add(p1, JSplitPane.TOP);splitpane.add(p2, JSplitPane.BOTTOM);splitpane.setDividerLocation(50);p.setBackground(Color.gray);b1.addActionListener(this);b2.addActionListener(this);b3.addActionList

33、ener(this);b4.addActionListener(this);b5.addActionListener(this);f.setBounds(500, 100, 500, 600);f.setResizable(false);/ 可以调整界面大小f.setVisible(true);public void actionPerformed(ActionEvent e) if (b1.equals(e.getSource() / 录入Connection con;Statement sql;try Class.forName(org.gjt.mm.mysql.Driver); catc

34、h (ClassNotFoundException e1) System.out.println( + e1);try con=DriverManager.getConnection(jdbc:mysql:/localhost:3306/management,root,hellomysql);sql = con.createStatement();String insertStr = INSERT INTO salary (worker_num,basic_pay,welfare,bonus,insurance,housing_fund,payment)VALUES(+tf1.getText(

35、)+,+tf2.getText()+,+tf3.getText()+,+tf4.getText()+,+tf5.getText()+,+tf6.getText()+,+tf7.getText()+);sql.executeUpdate(insertStr);String insertStr1 = INSERT INTO worker (num,name,sex,age,dep,occup,password)VALUES(+tf1.getText()+,+tf8.getText()+,+tf9.getText()+,+tf10.getText()+,+tf11.getText()+,+tf12.

36、getText()+,+tf1.getText()+);sql.executeUpdate(insertStr1);con.close();JOptionPane.showMessageDialog(this, 入录成功!); catch (SQLException e1) JOptionPane.showMessageDialog(this, 入录失败!);if (b2.equals(e.getSource() / 修改Connection con;Statement sql;try Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNo

37、tFoundException e1) System.out.println( + e1);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/management,root,hellomysql);sql = con.createStatement();String updateStr = UPDATE salary SET basic_pay=+tf2.getText()+,welfare=+tf3.getText()+,bonus=+tf4.getText()+,insurance=+tf5.getText()

38、+,housing_fund=+tf6.getText()+,payment=+tf7.getText()+where worker_num=+tf1.getText()+;sql.executeUpdate(updateStr);String updateStr1 = UPDATE worker SET name=+tf8.getText()+,sex=+tf9.getText()+,age=+tf10.getText()+,dep=+tf11.getText()+,occup=+tf12.getText()+where num=+tf1.getText()+;sql.executeUpda

39、te(updateStr1);JOptionPane.showMessageDialog(this, 修改成功!);con.close(); catch (SQLException e1) JOptionPane.showMessageDialog(this, 信息不存在!);if (b3.equals(e.getSource() / 删除Connection con;Statement sql;SuppressWarnings(unused)ResultSet rs;try Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNotFoun

40、dException e1) System.out.println( + e1);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/management,root,hellomysql);sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);sql.executeUpdate(DELETE FROM salary where worker_num=+tf1.getText()+;);sql.exec

41、uteUpdate(DELETE FROM worker where num=+tf1.getText()+;);JOptionPane.showMessageDialog(this, 删除成功!);con.close(); catch (SQLException e1) JOptionPane.showMessageDialog(this, 删除失败!);if (b4.equals(e.getSource() / 查询全部Connection con;Statement sql;ResultSet rs;try Class.forName(org.gjt.mm.mysql.Driver);

42、catch (ClassNotFoundException e1) JOptionPane.showMessageDialog(this, 连接数据库失败!);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/management,root,hellomysql);sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);if (b4.equals(e.getSource() for (int i =

43、0; i 50; i+)for (int j = 0; j 4; j+)table.setValueAt(, i, j);rs = sql.executeQuery(select * from salary);int k = -1;while (rs.next() +k;String no = rs.getString(1);String jb = rs.getString(2);String jt = rs.getString(3);String jj = rs.getString(4);String bx = rs.getString(5);String zf = rs.getString

44、(6);String sum=rs.getString(7);table.setValueAt(no, k, 0);table.setValueAt(jb, k, 1);table.setValueAt(jt, k, 2);table.setValueAt(jj, k, 3);table.setValueAt(bx, k, 4);table.setValueAt(zf, k, 5);table.setValueAt(sum,k, 6); catch (SQLException e1) JOptionPane.showMessageDialog(this, 查询失败!);if (b5.equal

45、s(e.getSource() / 返回GZGLZJM gl=new GZGLZJM();gl.create();f.dispose();-package wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;class G

46、ZGLZJM extends JFrame implements ActionListener private static final long serialVersionUID = 1L;JFrame f = new JFrame(工资管理系统);JButton b1 = new JButton(工资管理);JButton b2 = new JButton(员工信息管理);JButton b3 = new JButton(返回);void create() JPanel p = (JPanel) f.getContentPane();p.setLayout(new FlowLayout()

47、;p.add(b1);p.add(b2);p.add(b3);p.setBackground(Color.gray);p.setVisible(true);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);f.setBounds(500, 300, 500, 200);f.setResizable(false);f.setVisible(true);public void actionPerformed(ActionEvent e) if (b3.equals(e.getSource

48、() / 返回DL d = new DL();d.create();f.dispose();if (b2.equals(e.getSource() / 员工信息管理YGGL yg = new YGGL();yg.create();f.dispose();if (b1.equals(e.getSource() / 员工工资管理GZGL gz = new GZGL();gz.create();f.dispose();-package wage_management;import java.awt.Color;import java.awt.FlowLayout;import java.awt.ev

49、ent.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;SuppressWarnings(serial)class XGMM extends DL implements ActionListenerJFrame frame = new JFrame(密码修改);JLabel label1 = new JLabel(原密码);JLabel label2 = new JLabel(新密码);JButton Button1 = new JButton(确定);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论