




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.职工信息管理系统1.可行性分析 在当今社会,互联网的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。 当前大量企业的员工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此部分企业需求,设计企业员工信息管理系统,以帮助企业达到员工管理办公自动化、节约管理成本、提高企业工作效率的目的。员工信息管理系统主要对企业员工的信息进行集中管理,方便企业建立一个完善的、强大的员工信息数据库,它是以SQL2000数据库作为开发平台,使用java编写程序、完成数据输入、修改、存储、调用查询等功能。并使用SQL 2000数据库形成数据,进行数据存储。本项目开发计划旨在明确规范开发过程,保证项目质量,统一小组成员对项目的理解,并对其开发工作提供指导;同时还作为项目通过评审的依据。并说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。1.1 技术可行性 根据用户提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标,来衡量所需技术是否具备。本系统主要采用数据库管理方法,服务器选用MySQL Server数据库,他是它是目前能处理所有中小型系统最方便的流行数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。硬件方面,该系统短小精悍对赢家没有太大要求,只要能够运行windows操作系统就可以很好的运行该软件。1.2操作可行性 由系统分系可以看出本系统的开发在技术上具有可行性。首先系统对于服务器端和客户端所要求的软、硬件的最低配置现在大多数的用户用机都能达到。本系统对管理人员和用户没有任何的特殊要求,实际操作基本上以鼠标操作为主并辅以少量的键盘操作,操作方式很方便。因此该项目具有良好的易用性。用户只要具备简单的应用计算机的能力无论学历,无论背景,均可以使用本系统,用户界面上的按钮的功能明确,用户一看就可以了解怎么使用本系统,以及本系统能够完成的功能,因此本系统在操作上是可行的。1.3经济可行性 估算新系统的成本效益分析,其中包括估计项目开发的成本,开发费用和今后的运行、维护费用,估计新系统将获得的效益,估算开发成本是否回高于项目预期的全部经费。并且,分析系统开发是否会对其它产品或利润带来一定影响。本系统作为一个课程设计,没有必要考虑维护费用,以及本系统可获得的效益等问题。1.4法律及社会效益方面的可行性 由于本系统只是一个课程设计,在图书馆查询相关资料因此不存在侵权等法律与社会影响方面的问题,不存在侵权级相应的法律问题。关于效益方面,本系统仅仅是一个课程设计,只是为了提高自己的分析,设计能力,而非为了社会效益而编写设计,因此社会效益方面也是可行的。2.需求分析 通过对职工信息管理系统的研究分析,根据可行性分析的方案和项目成员的讨论,编制本需求说明书。本报告用于财职工信息管理系统的需求规格明确系统的功能需求,业务流程和性能要求以及与有关系统的接口关系,它将是系统最终实现和审评的根据之一,是进一步设计、开发的基础。本报告的阅读范围:项目组的项目管理、软件开发和系统测试人员、指导老师等。2.1需求概述2.1.1目标 作为课程设计,本项目开发的人员、技术等资源非常有限,本项目开发的职工信息管理系统不能算是真正意义上的职工信息管理系统,只是简单的对职工的个人资料、工资信息进行电子系统管理,其主要为用户提供查询个人工资信息功能,针对的用户是某事业单位的职工信息管理,职工数量较少,系统功能简单,操作也要简单方便,要便于管理维护。2.1.2用户特征 最终的用户是职工管理员和公司职工,管理员需要对用户资料进行增删改查和对自己密码修改等操作,要求管理员具备相应的计算机知识,如权限管理等。公司职工是普通用户,具备一定的计算机操作即可。2.2功能性需求1、能够存储一定数量的用户信息,并方便有效的进行相应的用户资料操作和管理,这主要包括以下内容。(1)管理员对用户资料的录入、删除及修改;(2)管理员对用户资料的查询;(3)用户对用户资料的查询; (4)员工基本工资表,反应员工的月基本工资;(5)员工津贴表,反映员工津贴;2、能够存储员工信息,并方便有效的进行员工信息和密码修改,保证员工信息的及时更新以及信息的安全性保证。2.3非功能性需求2.3.1性能需求 职工信息管理系统的使用者是公司职工,对于系统管理员的管理工作和职工的查询、注册等功能,性能要求都不是很高,本系统是简单小型的个人信息管理系统,只适用于小规模企业单位,使用的人员数量不大,并发数小,所以性能要求不是很严格。2.3.2安全性需求 对于职工的信息管理关系到个人利益及公司的整体利益,所以安全性的要求比较高。主要是要保证数据的完整性、一致性,控制权限,防止某人恶意攻击系统,修改原始记录。同时对数据库中的数据需要定时备份,防止系统数据丢失。2.3.3界面图形需求 要求系统操作界面美观大方,各功能操作具体步骤和方法显示清晰,人机交互页面友好。2.4职工信息管理的大致过程数据流图 根据上述的功能要求,我们已经了解到这个系统必须做什么,从而设计了下面的数据流图以更好的去设计整个系统,见图2.4;处理事务信息的处理管理员管理员 事务 职工信息事务职工职工信息图2.4又根据工资管理要求及用户需求调查分析,得到以下第一层数据流图,见图2.5;信息表添加操作修改操作删除操作查询操作用户图2.52.5系统设计 职工信息管理系统职工管理员信息及密码操作查询个人信息 登录系统 注册分配职工系统权限增、删、修改职工信息管理和维护职工个人信息图2.63. 概要设计3.1系统模块划分 在需求分析中,我们已经完整而清晰地给出了关于职工信息管理系统所必须完成的功能,并用文档的形式记录了下来。随着组内成员的讨论和相关资料的不断收集,我们进入了关于系统实现的阶段,也即概要设计。 首先,我们根据之前的系统设计,决定将系统进行了模块化,使得我们在设计程序时更加清晰明了。也即对职工信息进行详细的分化,分为系统模块、工资管理模块、职工登陆模块、信息管理模块四大主模块;具体见下图3.1; 工资管理系统信息管理模块职工登陆模块 工资管理模块 系统模块图3.13.2模块间的关系 3.2.1 E-R图来说明工资信息管理系统的数据库概念模式 根据系统功能实现和所划分的模块,分析系统的实体以及实体间的关系,用E-R图来说明工资信息管理系统的数据库概念模式可得如下的关系图,见图3.2;姓名基本工资职工号工资员工职工号领取1 nm影响姓名津贴 领取姓名津贴密码职工号图3.2实体之间关系E-R图3.2.2关系模式 将以上E-R转换成如下关系模式:员工(职工号,姓名,密码)工资(职工号,姓名,基本工资,)津贴(职工号,姓名,奖金) 其中,标有下划线的字段表示为该数据表的主码,即主关键字。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。 工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。表一:员工信息表:列名数据类型可否取空备注说明no Char ( 8 )NOT NULL职工号(主键)nameChar(10)NOT NULL职工姓名miSmallintNOT NULL登录密码表二:基本工资表:列名数据类型可否取空备注说明noChar ( 8 )NOT NULL职工号(主键)nameChar(10)NOT NULL职工姓名JbmoneyNOT NULL基本工资表三:津贴信息表列名数据类型可否为空备注说明noChar ( 8 )NOT NULL职工号(主键)nameChar(10)NOT NULL职工姓名JtmoneyNOT NULL津贴4. 详细设计4.1程序中的数据结构 本系统中主要的数据结构就是职工的信息和职工的工资,包含职工号、姓名、工资等,在处理过程中各项可以作为一个职工的不同属性来进行处理。4.2各模块实现的算法4.2.1职工信息管理模块 功能为:财务部门相关人员录入、修改、删除、查询员工个人信息部分基本算法实现:public class YGGL extends JFrame implements 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(4);JTextField tf2 = new JTextField(4);JTextField tf3 = new JTextField(4);JTextField tf4 = new JTextField(4);JTextField tf5 = new JTextField(6);JTextField tf6 = new JTextField(7);String cloum = 职工号, 姓名, 津贴, 月基本工资,月薪,登陆密码;Object row = new Object506;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.setLayout(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.cyan);p2.add(scrollpane);p.setLayout(new FlowLayout();p.add(new 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);splitpane.add(p1, splitpane.TOP);splitpane.add(p2, splitpane.BOTTOM);splitpane.setDividerLocation(50);p.setBackground(Color.CYAN);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);f.setBounds(200, 100, 600, 600);f.setResizable(true);/ 可以调整界面大小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); catch (ClassNotFoundException e1) JOptionPane.showMessageDialog(this, 连接数据库失败!);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb);sql = con.createStatement();String insertStr = INSERT INTO welfare (no,name,jt)VALUES(+tf1.getText()+,+tf2.getText()+,+tf3.getText()+);sql.executeUpdate(insertStr);String insertStr1 = INSERT INTO wageinfo (no,name,jb)VALUES(+tf1.getText()+,+tf2.getText()+,+tf4.getText()+);sql.executeUpdate(insertStr1);String insertStr2 = INSERT INTO workerinfo (no,name,mi)VALUES(+tf1.getText()+,+tf2.getText()+,+tf5.getText()+);sql.executeUpdate(insertStr2);JOptionPane.showMessageDialog(this, 添加成功!);con.close(); catch (SQLException e1) JOptionPane.showMessageDialog(this, 添加失败!);if (b2.equals(e.getSource() / 修改员工信息Connection con;Statement sql;try Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNotFoundException e1) JOptionPane.showMessageDialog(this, 连接数据库失败!);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb);sql = con.createStatement();con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb);sql = con.createStatement();String updateStr = UPDATE welfare SET jt=+tf3.getText()+,name=+tf2.getText()+where no=+tf1.getText()+;sql.executeUpdate(updateStr);String updateStr1 = UPDATE wageinfo SET jb=+tf4.getText()+,name=+tf2.getText()+where no=+tf1.getText()+;sql.executeUpdate(updateStr1);sql.executeUpdate(updateStr1);String updateStr2 = UPDATE workerinfo SET name=+tf2.getText()+,mi=+tf5.getText()+where no=+tf1.getText()+;sql.executeUpdate(updateStr2);JOptionPane.showMessageDialog(this, 修改成功!);con.close(); catch (SQLException e1) JOptionPane.showMessageDialog(this, 修改失败!);if (b3.equals(e.getSource() / 删除员工信息Connection con;Statement sql;try Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNotFoundException e1) JOptionPane.showMessageDialog(this, 连接数据库失败!);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb);sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);sql.executeUpdate(DELETE FROM wageinfo where no=+tf6.getText()+;);sql.executeUpdate(DELETE FROM welfare where no=+tf6.getText()+;);sql.executeUpdate(DELETE FROM workerinfo where no=+tf6.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); catch (ClassNotFoundException e1) JOptionPane.showMessageDialog(this, 连接数据库失败!);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb);sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);if (b4.equals(e.getSource() for (int i = 0; i 50; i+)for (int j = 0; j 4; j+)table.setValueAt(, i, j);rs = sql.executeQuery(select distinct * from wageinfo ,welfare,workerinfo where wageinfo.no=welfare.no and wageinfo.no=workerinfo.no ;);int k = -1;while (rs.next() +k;String no = rs.getString(1);String name = rs.getString(2);String jb = rs.getString(3);String jt = rs.getString(6);int sum=rs.getInt(3)+rs.getInt(6);String mi = rs.getString(9);table.setValueAt(no, k, 0);table.setValueAt(name, k, 1);table.setValueAt(jb, k, 3);table.setValueAt(jt, k, 2);table.setValueAt(sum,k,4);table.setValueAt(mi,k,5); catch (SQLException e1) JOptionPane.showMessageDialog(this, 查询失败!);if (b5.equals(e.getSource() / 返回GZGLZJM gl=new GZGLZJM();gl.create();f.dispose();4.2.2职工工资管理模块功能为:根据工资生成公式,按照员工的考勤情况及各种表现按月生成相应的工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工的工资信息以及工资汇总;员工本人能查询自己的工资信息以及工资汇总;部分基本算法实现:public class GZGL extends JFrame implements 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(4);JTextField tf2 = new JTextField(4);JTextField tf3 = new JTextField(4);JTextField tf4 = new JTextField(4);JTextField tf5 = new JTextField(6);JTextField tf6 = new JTextField(7);String cloum = 职工号, 姓名, 津贴, 月基本工资,月薪;Object row = new Object505;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.setLayout(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.cyan);p2.add(scrollpane);JPanel p3 = new JPanel();p.setLayout(new FlowLayout();p.add(new 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);splitpane.add(p1, splitpane.TOP);splitpane.add(p2, splitpane.BOTTOM);splitpane.setDividerLocation(50);p.setBackground(Color.CYAN);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);f.setBounds(200, 100, 500, 600);f.setResizable(true);/ 可以调整界面大小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); catch (ClassNotFoundException e1) System.out.println( + e1);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb);sql = con.createStatement();String insertStr = INSERT INTO welfare (no,name,jt)VALUES(+tf1.getText()+,+tf2.getText()+,+tf3.getText()+);sql.executeUpdate(insertStr);String insertStr1 = INSERT INTO wageinfo (no,name,jb)VALUES(+tf1.getText()+,+tf2.getText()+,+tf4.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 (ClassNotFoundException e1) System.out.println( + e1);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb);sql = con.createStatement();String updateStr = UPDATE welfare SET jt=+tf3.getText()+,name=+tf2.getText()+where no=+tf1.getText()+;sql.executeUpdate(updateStr);String updateStr1 = UPDATE wageinfo SET jb=+tf4.getText()+,name=+tf2.getText()+where no=+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;ResultSet rs;try Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNotFoundException e1) System.out.println( + e1);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb);sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);sql.executeUpdate(DELETE FROM wageinfo where no=+tf6.getText()+;);sql.executeUpdate(DELETE FROM welfare where no=+tf6.getText()+;);JOptionPane.showMessageDialog(this, 删除成功!);con.close(); catch (SQLException e1) JOptionPane.showMessageDialog(this, 删除失败!);if (b4.equals(e.getSource() / 查询全部Connection con;Statement sql;ResultSet rs;/Vector vector = new Vector();try Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNotFoundException e1) JOptionPane.showMessageDialog(this, 连接数据库失败!);try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb);sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);if (b4.equals(e.getSource() for (int i = 0; i 50; i+)for (int j = 0; j 4; j+)table.setValueAt(, i, j);rs = sql.executeQuery(select distinct * from wageinfo ,welfare where =);int k = -1;while (rs.next() +k;String no = rs.getString(1);String name = rs.getString(2);String jb = rs.getString(3);String jt = rs.getString(6);int sum=rs.getInt(3)+rs.getInt(6);table.setValueAt(no, k, 0);table.setValueAt(name, k, 1);table.setValueAt(jb, k, 3);table.setValueAt(jt, k, 2);table.setValueAt(sum,k,4); catch (SQLException e1) JOptionPane.showMessageDialog(this, 查询失败!);if (b5.equals(e.getSource() / 返回GZGLZJM gl=new GZGLZJM();gl.create();f.dispose();4.2.3职工登陆查询模块功能为:员工本人能通过用户名和密码查询自己的信息以及修改自己的密码;部分基本算法实现:class DL extends JFrame implements ActionListener ImageIcon im = new ImageIcon(2.jpg);JLabel a2 = new JLabel(im);JFrame frame = new JFrame(职工/管理员登陆);JLabel label1 = new JLabel(用户名);JLabel label2 = new JLabel(密码);JButton logonButton1 = 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();JPanel p1 = new JPanel();p.setLayout(new FlowLayout();p.add(a2);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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 版权法规执行案例分析报告
- 考试题库及答案经济法
- 残疾人座车设计趋势分析报告
- 大学食堂做档口营销方案
- 古田公司团建方案咨询
- 2024年小学教学质量提升工作计划
- 电厂锅炉运行维护安全操作规程
- 美容院店铺营销策略与运营指南
- 配电箱出线施工方案
- 混凝土仿木花架施工方案
- 餐饮公司股东协议合同范本
- 2025年上海百联集团股份有限公司招聘笔试参考题库含答案解析
- 2025年浙江金华武义县国资公司招聘笔试参考题库含答案解析
- 企业员工信息安全意识培训
- Unit 1 Lesson 5 I like my school!教学实录2024-2025学年冀教版(2024)初中英语七年级上册
- 【语文试题卷】2024学年第一学期九年级12月学情调研(终)
- 设备故障分析报告范文
- 越战老兵进校园演讲稿
- 2024年国家网络安全宣传周网络安全知识培训讲座
- 2022年第十七届广东省中学生天文知识竞赛试题(含答案)
- 传感器技术与应用电子教案
评论
0/150
提交评论