版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*理工学院数据库课程设计报告员工薪资管理系统学院:计算机 学院专业:计算科学与技术课程:数据库原理及应用班级:*级计科 * 班组学员:/ 号:* 3*8*9指导教师:*洪2014/07/02*摘要*企业员工薪资管理是公司管理的一个重要内容。工资管理既涉及到企业劳动 人事的管理,同时也是企业财务管理的重要组成部分。工资管理需要和人事管理 相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、 津贴、医疗保险、保险费、实际发放工资等。资金是企业生存的主要元素,资金 的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组 成部分。但考虑到学生的开发时间,本次设计主要阐
2、述员工工资管理系统主要是 以企业员工工资情况为对象而开发的。涉及系统比较小,有利于学生单独编写。 其系统的设计主要包括数据库的设计、维护和应用界面的设计与后台数据库的连 接。经分 析采用Sun Microsystems公司的Java为前台开发 工具, Microsoft SQL sever 2008为后台数据库。Java是一种可以撰写跨平台应 用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaS日的总 称。Java自面世后就非常流行,发展迅速,对C+语言形成了有力冲击。Ja
3、va技 术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大 的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。目前市场上数据库的主流厂商及产品有IBM DB2、Microsoft SQL SERVER 2000、ORACLE 9i、Sybase Microsoft SQL Server 2008 是在SQL Server 2000的基础上对性能、可靠性、质量以及易用性进行了扩展。SQL Server 2008中包含许多新特性,这些特性使其成为针对电子商务、数 据仓库
4、和在线商务解决方案的卓越的数据库平台。其增强的特性包括对丰富的扩展标记语言(XML)的支持、综合分析服务以及便捷的数据库管理。 Microsoft SQL Server 2008简化了管理、优化工作,并且增强了迅速、成功的部 署在线商务应用程序所需的可靠性和伸缩性。开发平台:操作系统:Windows8前台开发工具:JavaSE后台数据库:Microsoft SQL sever 2008 开发人员:*目录01、开发背景设计背景 设计要求03、系统性需求分析三、概要设计四、物理设计五、详细设计 数据库的 数据库结构设计E-R图030304040505050607六、调试分析七、管理软件源代码11八
5、、思考与总结 30九、参考文献 31、开发背景1. 设计背景:1) 某单位现有 1000名员工,其中有管理人员、 财务人员、 技术人员和销售 人员。2) 该单位下设 4 个科室,即经理室、财务科、技术科和销售科。3) 工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在 工资中扣除。4) 每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程 师、销售员等)。5) 每月个人的最高工资不超过 3000元。工资按月发放, 实际发放的工资金 额为工资减去扣除。2. 设计要求:1) 进行需求分析。2) 设计 E-R 图。3) 实现按照科室录入个人的基本资料、工资和扣除金额的数据。4)
6、 计算个人的实际发放工资。5) 按科室、职业分类统计人数和工资金额。6) 实现分类查询。7) 能够删除辞职人员的数据。8) 开发工具不限1、系统性需求分析本系统的开发宗旨以及总体任务就是帮助企业的财务主管部门提高工作效 率,实现企业工资信息管理的自动化、规范化和系统化。所以为了能够实现编制 这个系统所设定的目标,在程序的开发之前,需求分析是必不可少的。需求分析的第一步描述工资管理系统的功能, 即定义用例,以此确定系统的功能 需求。工资管理系统的用例分析主要是找出系统中所有的用例, 因此要和工资管 理系统的潜在用户进行讨论。系统最终实现的主要功能如下:1、员工基本信息模块员工基本信息模块具有员工
7、信息输入、员工增删和员工信息查询三个功能。 员工基本信息包括员工编号、员工姓名、员工性别、所在部门、年龄、住址和联 系电话等信息。员工增删实现了对数据库中员工信息的增加和删除。2、工资结构设置模块根据该公司的工资管理实际情况,本系统将工资结构分为基础工资、岗位工 资和工龄工资三部分。该模块可以对这三个工资类型设置工资等级, 并对每个等 级设置工资标准。数据流需求分析:登陆信息返回信息数据库需求分析一一数据流图二、概要设计根据需求分析阶段得到的功能需求,管理员、员工通过输入用户名号和密码 进下该系统后,可以进行一些基本查询(员工工资信息查询、津贴信息查询) 、 还可以进行员工删除和添加员工的操作
8、, 员工通过登录并输入密码,可以进行查 询自己的数据(工资,信息)。模块功能大概可以分为如下5个方面:这几个模块工资管理、信息查询,添加和 删除员工,登陆、退出。工资管理包括基本工资查询,添加员工、删除员工等。四、物理设计1. 选择登陆则会进入相应登陆网页。2. 选择员工管理员游客即可进入对应的网页3. 进入员工界面即可进入员工工资查询功能窗体。4. 进入管理员界面即可进入修改信息添加信息查询信息功能窗体5. 选择添加信息按钮即可进入添加员工信息功能窗体。6. 选择删除信息菜单按钮即可进入删除员工功能窗体。7. 选择查询信息菜单按钮即可进入查询员工信息功能窗体。8. 选择首页将返回整个系统。五
9、、详细设计(1)数据库的E-R图及合并部分视图生成E-R图 员工信息E-R图:员工工资信息E-R图:(2)数据库结构设计 根据上面概念结构设计阶段得到的E-R图,下一步应该将它转化为关系模型。可以得到对应的关系模式为:Worker( nu m, name,sex,age,dep,occup,password)Salary(payment)数据库表的建立:(sql语句及截图) 语句如下:Create table worker(num char(5) primary key,n amevarchar(8),sex char(5), age smalli nt, dep varchar(20), o
10、ccup varchar(20), password varchar(10),);Create table salary(worker_ num n char(5) primary key, basic_pay float, welfarefloat,bonusfloat,in sura neefloat,hous ing_fund float, payme nt float, )1、进入系统界面六、调试分析也欢迎进入工资管理系统2、职工/管理员系统界面MessageX3、工资管理界面工资管理|査15个人工襄=|储改密超|返回1职工号基本工资律贴奖金保曲房贷总工贵IloOQQI18003002
11、0010020020004、密码修改界面5、工资管理界面Lsil工费冒理系统曲员工工斑管理录入/修改/删除/查询所有/返回录入匪工号基本工發津见占笑金总工烫4000011S00300200100200200000002280030020010020030000000318Q030020010020020000000428003002001002003000000051800300200110020020000000720002002001001002200Tom眄工号房焚1:000009基本工资1500津砒300奖金20 3jS工资1330年齡100BP门汕匡14员工信息管理界面長工信息七、管
12、理软件源代码说明:管理界面选择采用Java构建管理界面,Java对数据库有着对数据库良好的连接功能,且其可以很容易的实现窗口的构建,可以给用户以及管理员以良好友善的界面,便于人机交互,能够很好的对数据库实现管理,以及其面向对象的特性在后期的维护中很容易实现软件的扩展与各种维护!Java编程语言的风格十分接近C语言、C+语言。Java是一个纯粹的面向对象的程序设计语言,它继承了 C+语言面向对象技术的核心。Java舍弃了 C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading )、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被 引用的对象
13、所占据的内存空间,使得程序员不用再为内存管理而担忧。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 label = new JLabel(, JLabel.CENTER);JBut
14、ton 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);pcontentPane.setBackground(Color.gray);pcontentP
15、ane.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(String args) DB1 dome = new DB1();dome.C
16、reate();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;import java.awt.event.ActionEvent;import java.a
17、wt.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.swing.JPanel;import javax.swing.JPasswordFie
18、ld;import javax.swing.JTextField;import com.mysql.jdbc.PreparedStatement;SuppressWarnings(serial)class DL extends JFrame implements ActionListener职工/ 管理员登陆 );JFrame frame = new JFrame(JLabel label1 = new JLabel( 用户名 );JLabel label2 = new JLabel(密码 );JButton logonButton1 = new JButton(管理员登录 );JButton
19、 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(); SuppressWarnings(unused)JPanel p1 = new JPa
20、nel();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(logonButton1);p.add(logonButton2);p.a
21、dd(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, 220); frame.setVisible(t
22、rue);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, 登录成功! ); GZGLZJM gz = n
23、ew 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();con = DriverMan
24、ager.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(t2)YGGLZJM yg
25、= new YGGLZJM(); yg.create();frame.dispose();JOptionPane.showMessageDialog(this, this.dispose();else JOptionPane.showMessageDialog(this, catch (Exception e1) / TODO Auto-generated catch block e1.printStackTrace();if (cancelButton.equals(e.getSource() /System.exit(0);登录成功! );输入用户名或密码错误! );退出package w
26、age_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.swing.JButton;
27、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 implements Actio
28、nListener 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(4);JT
29、extField 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= new J
30、TextField(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.setL
31、ayout(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(ne
32、w JLabel();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 JLa
33、bel( 性别 );p.add(tf9);p.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.addActionL
34、istener(this);b3.addActionListener(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(o
35、rg.gjt.mm.mysql.Driver); catch (ClassNotFoundException e1) System.out.println( + e1);try con=DriverManager.getConnection(jdbc:mysql:/localhost:3306/management,root,hellomysql );sql = con.createStatement();salaryString insertStr = INSERT INTO (worker_num,basic_pay,welfare,bonus,insurance,housing_fund
36、,payment)VALUES(+tf1.getText()+ ,+tf2.getText()+,+tf3.getText()+,+tf4.getText()+,+tf5.getText()+,+tf6.g etText()+,+tf7.getText()+);sql.executeUpdate(insertStr);workerString insertStr1 = INSERT INTO (num,name,sex,age,dep,occup,password)VALUES(+tf1.getText()+,+tf8.getText()+,+tf9. getText()+,+tf10.get
37、Text()+,+tf11.getText()+,+tf12.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.
38、mm.mysql.Driver); catch (ClassNotFoundException e1) System.out.println( + e1);try conDriverManager.getConnection(jdbc:mysql:/localhost:3306/management,root,hellomysql); sql = con.createStatement();SETString updateStr = UPDATE salary basic_pay=+tf2.getText()+,welfare=+tf3.getText()+,bonus=+tf4.getTex
39、t()+,insuran ce=+tf5.getText()+,housing_fund=+tf6.getText()+,payment=+tf7.getText()+where worker_num=+tf1.getText()+;sql.executeUpdate(updateStr);SETString updateStr1 = UPDATE worker name=+tf8.getText()+,sex=+tf9.getText()+,age=+tf10.getText()+,dep=+tf11.getTe xt()+,occup=+tf12.getText()+where num=+
40、tf1.getText()+;sql.executeUpdate(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.mys
41、ql.Driver); catch (ClassNotFoundException e1) System.out.println( + e1);try conDriverManager.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_n
42、um=+tf1.getText()+;);sql.executeUpdate(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.forN
43、ame(org.gjt.mm.mysql.Driver); catch (ClassNotFoundException e1) JOptionPane.showMessageDialog(this, 连接数据库失败! );try conDriverManager.getConnection(jdbc:mysql:/localhost:3306/management,root,hellomysql);sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);if (b4.equal
44、s(e.getSource() for (int i = 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.getStrin
45、g(5);String zf = rs.getString(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.showMessageDi
46、alog(this, 查询失败! );if (b5.equals(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;im
47、port javax.swing.JPanel;class GZGLZJM 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.getCont
48、entPane(); p.setLayout(new FlowLayout(); 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 actionPerfor
49、med(ActionEvent e) if (b3.equals(e.getSource() /返回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;im
50、port java.awt.FlowLayout;import java.awt.event.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(新密码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年养老服务师全真模拟试卷(中级)
- 2025-2026学年高校招聘教学设计题
- 2025-2026学年豆腐培根美食教学设计
- 2025-2026学年高中压力与情绪管理主题班会教学设计
- 1.3 人工智能的应用说课稿2025学年高中信息技术粤教版2019选修4 人工智能初步-粤教版2019
- 高中英语 Unit 5 First aid教学设计1 新人教版必修5
- 2025-2026学年马甲线灵光一闪教学设计
- 2025-2026学年棉线引水教案
- 2025-2026学年马单词游戏教案
- 2025-2026学年超级飞侠教案
- T/TMAC 248-2025连续石墨化炉能源消耗限额
- 2026年兰州大学物理试题及答案
- IMDG Code 42-24 修正案 锂电池海运包装标记与标签规范 中文版(P903 包装标识更新全解)
- 校园统一身份认证平台建设方案
- 2025-2026学年人教版八年级英语上册(unit1-8)各单元测试卷及参考答案
- 洗煤设备专业知识培训课程课件
- 生产清线管理规定
- 国家电投集团所属国家核电招聘笔试题库2025
- 部编1-9年级首小学生必背古诗词带译文
- 公路隧道超前地质预报技术规程DB53∕T 1032-2021
- T-CSGPC 033-2024 陆上风电场设施变形测量技术规程
评论
0/150
提交评论