ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:144.55KB ,
资源ID:9414849      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9414849.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(考勤管理实验报告.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

考勤管理实验报告.docx

1、考勤管理实验报告课程设计总结报告设计题目:公司员工考勤管理系统设计学院数学与计算科学学院专业信息与计算科学班级14信计四班学号14070204*姓名黎*文指导老师彭*辉时间2016年11月20日摘要公司考勤系统项目描述:开发背景:在公司内,员工的考勤通常缺乏方便且有效的管理手段,针对此需求需要开发一套考勤管理系统。价值:公司考勤系统他类别与普通的系统更方便,更简洁,更容易上手,能更直观的反应出每个员工的考勤,对员工的管理就更有效率。这个系统适用于所有公司。开发工具:oracle 11g,Eclipse开发语言:Java核心技术:JOBC对数据库的操作,操作界面的设计,各种布局方式和插件(1)使

2、用JFrame控件进行界面设计(2)使用静态字段实现窗体间的数据传递(3)使用代码方式向容器控件中添加控件需求分析:(1)登录主界面(2)功能主窗口(3)设置工作时间:只限管理员(4)修改密码(5)员工管理信息(只限管理员):(只限管理员)(6)考勤信息管理:只限管理员(7)考勤登记:只限员工(8)重新登录(9)退出(10)关于帮助功能模块的难点技术和实现思路:考勤信息管理:只限管理员在界面中显示考勤信息,并作出相应更改,以及数据的输入。一. 需求分析:公司需要存储雇员的编号、姓名、性别、所在部门,级别,。其中,雇员分为经理、技术人员、销售人员和销售经理。销售经理能够管理所有人的信息,其他人只

3、能查看自己的信息,采用以往的方式,显得复杂和麻烦,现在,我们开发出员工考勤管理的系统,对员工的考勤进行动态的管理。随着现代科技的进步,用计算机来进行考勤的管理也成为现代化企业运作必不可少的一部分。在过去我们的考勤工作都是人工完成的,不仅浪费了很多的人力跟物力,而且无法保证其准确性和透明度;给企业的管理带来了许多的不便。现在利用计算机来管理我们的考勤工作,大大降低了工作人员的工作量,提高了工作效率,使原本复杂和枯燥无味的工作变得简单而轻松了。计算机技术特别是数据库技术的发展为企业建立管理信息系统,甚至对改变管理思想起着不可估量的作用。实践证明信息技术已在企业的管理层面扮演越来越重要的角色。二.

4、概要设计设计本考勤系统目的是为企业解决员工考勤的繁琐工作,减轻企业负担,减少不必要的劳动力、金钱的损耗,提高工作效率,为企业创造更多效益,实现单位考勤管理的系统化、规范化和自动化。因此本系统主要需要实现以下几个功能:管理员登录及信息维护,员工信息维护,数据采集,基本数据(请假类型,和数据)维护,数据库管理,查询功能,请假、休假记录等。具体分析见下:2.1登录系统:包括用户登录、修改密码、退出系统等。登录分为两种形式,客户和管理员。用户名或密码不知道或者错误时将自动以客户登录,除了系统模块外的所有模块都呈现不可激活状态,不能进行操作。2.2基本操作:(1)添加功能:程序能够任意添加记录,要求员工

5、的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并转化为修改。(2)查询功能:可根据编号、姓名等信息对已添加的员工信息和休假信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录和休假记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。(6)统计功能:能对所有人员进行统计。(7)保存功能:可将当前系统中各类人员记录和休假记录存入文件中,存入方式任意。(8)

6、读取功能:可将保存在数据库中的信息读入到当前系统中,供用户进行使用。三.详细设计3.1 使用到的类的介绍:(1)AddMenu:实现添加菜单功能的类。(2) BoxPanel:继承JPanel类,有 JLabel ;JTextField 两个变量,显示主界面中的变量名和内容。(4)Boxpanelpass:继承JPanel类,JPasswordField,有JPasswordField变量,实现密码的输入。(5)DateBaseConn:数据库连接类,有一个连接数据库的函数returnConn();(6)DeleteMenu:删除功能的实现(7)LeaveB:一个抽象类,继承JDialog类,

7、显示的作用。(8)LeaveBL:继承LeaveB类,实现请假的功能。(9)LeaveBV:继承LeaveB类,实现休假的功能。(10)Logpage:登录界面的类。(11)Operatepage:操作界面的类(12)SaveMenu:实现保存菜单的类(13)ShowAll:实现统计菜单中子菜单显示所有子菜单的类(14)ShowStaffMenu:实现显示菜单的类(15)Staff:记录员工信息的类3.2登录系统的设计:(1)导入了以下类,import javax.swing.JButton;import javax.naming.spi.DirStateFactory.Result;impo

8、rt javax.swing.BoxLayout;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;通过布局使界面如下:3.3操作界面的设计:使用以下导入的类进行界面设计:import javax.swing.Box;import javax.s

9、wing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;最终效果如下:3.4 难点部分:(1)登录密码的实现:if (e.getSource()=bConfirm) try /连接数据库 Connection conn = (Connection) DateBaseConn.returnConn(); /数据

10、库操作 PreparedStatement sts=conn.prepareStatement( select ENUM from CSAS123L where ENUM=? and EPASSWORD = ? ); if(administratorbp.text.getText().equals(1407020415) sts.setString(1,administratorbp.text.getText() ); else sts.setString(1,staffpb.text.getText() ); sts.setString(2,new String (passworbp.tex

11、t.getPassword() ); ResultSet rs = sts.executeQuery(); /通过查找,对应密码和编号的员工是否存在 if(rs.next() /若果是管理员账号,进入管理员界面 if(rs.getString(ENUM).trim().equals(1407020415) System.out.println(rs.getString(ENUM).trim(); a = new Operatepage(rs.getString(ENUM).trim(); menuSetEnable(a,true); else a = new Operatepage(rs.ge

12、tString(ENUM).trim(); menuSetEnable(a,false); a.menu8.setEnabled(true); else JOptionPane.showMessageDialog(confpanel, 请输入正确的账号和密码!); catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e1) e1.printStackTrace(); System.out.println(连接失败!); (2) 数据库的连接类:(直接也有部分

13、错误的抛出没实现)package com.Listen;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class DateBaseConn public static Connection returnConn() throws InstantiationException, IllegalAccessException,ClassNotFoundException, SQLExcepti

14、on try Class.forName(oracle.jdbc.driver.OracleDriver).newInstance(); new oracle.jdbc.driver.OracleDriver(); Class.forName(oracle.jdbc.driver.OracleDriver); /这个Driver的实例化在构建过程中会自动向DriverManager自动注册 /连接数据库 Connection conn = DriverManager.getConnection(jdbc:oracle:thin: + 127.0.0.1:1521:orcl,scott,Kyq0

15、20520); return conn; catch (SQLException e) System.out.println(数据库连接失败,请联系管理员。); return null; 四.设计和调试分析1. 此系统只有一个管理员,能对数据进行,添加,查询,修改,显示,编辑,删除,和统计。2. 用户只能根据密码和对应账号进行登录查询,以及请假和休假操作。五.用户手册1. 针对管理员(1) 输入账号密码即可登录,可以使用菜单中所有功能。(2) 管理员默认密码是“12345678”。2. 针对普通用户,(1) 仅可使用请假和休假功能。(2) 用户默认密码是“12345678”。3. 要使用本套需

16、要创建数据库文件。(1)建立表表名字为:CSAS123L;(2)数据的插入。六.测试结果(1)登录界面:(2)查看界面:(3)查询界面:(4)请假界面:其他不在详细描述。七.设计心得1. 操作界面过于简单,没有背景图片,应该适当插入部分图片。2. 人机交互缺乏,对错误的抛出处理不当,考虑到的情况不够全面。3. 对于数据库的连接仅限于本机,无法实现联网工作,所以对于软件的可移植性不够。虽然用文件的方式操作能够解决这一问题,但是对于数据处理太繁琐。4. 对于系统设计方面的问题,一定要有计划和流程图,不能想一步做一步,最后会导致问题的处理不够全面。5. 应该该有一个良好的编码习惯,类的定义,方法的定

17、义,一定要有一套规则,方便检查调试,使别人能够轻易地看懂。八.附录AddMenu类package com.Listen;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import javax.swing.JOptionPane;public class AddMenu /清理数据函数,清理显示的信息。 public void clear(Operatepage a) a.name.text.setText(); a.number.text.setText();

18、a.department.text.setText(); a.post.text.setText(); a.sickDay.text.setText(); a.sickDayOff.text.setText(); a.offDay.text.setText(); a.offDayOff.text.setText(); public AddMenu(Operatepage a) a.setEnable(a, true); Boxpanel类:package com.Listen;import java.awt.Font;import javax.swing.Box;import javax.sw

19、ing.JLabel;import javax.swing.JPanel;import javax.swing. JTextField;public class BoxPanel extends JPanel JTextField text; JLabel label; Box box; public BoxPanel(String s,int n ) box = Box.createHorizontalBox(); label = new JLabel (s); text = new JTextField(,n); text.setHorizontalAlignment(JTextField

20、.LEFT); /设置文本格式 / text.setFont(new Font(Arial, Font.BOLD, 14); box.add(label); box.add(text); add(box); /设置密码格式 private void changefont() BoxPanelll类:package com.Listen;import javax.swing.Box;import javax.swing.JLabel;import javax.swing.JPanel;public class BoxPanelll extends JPanelJLabel label1,labl

21、e2; Box box; public BoxPanelll(String s,String n ) box = Box.createHorizontalBox(); label1 = new JLabel (s); lable2 = new JLabel (n); box.add(label1); box.add(lable2); add(box); DateBaseConn类:package com.Listen;import javax.swing.Box;import javax.swing.JLabel;import javax.swing.JPanel;public class B

22、oxPanelll extends JPanel JLabel label1,lable2;Box box; public BoxPanelll(String s,String n ) box = Box.createHorizontalBox(); label1 = new JLabel (s);lable2 = new JLabel (n); box.add(label1); box.add(lable2); add(box); DeleteMenu类:package com.Listen;import java.sql.Connection;import java.sql.Prepare

23、dStatement;import java.sql.SQLException;import javax.swing.JOptionPane;public class DeleteMenu public static void delete(Operatepage a) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException Connection conn = DateBaseConn.returnConn(); int i = 0; String sql = del

24、ete from CSAS123L where ENUM= + a.number.text.getText().trim() + ; PreparedStatement sts; try sts = (PreparedStatement) conn.prepareStatement(sql); i = sts.executeUpdate(); if(i0) JOptionPane.showMessageDialog( a.panel1, 删除成功,请继续操作!); else JOptionPane.showMessageDialog( a.panel1, 删除失败,请确认后再操作!); sts

25、.close(); conn.close(); catch (SQLException e) e.printStackTrace(); AddMenu a1 = new AddMenu( a); a1.clear(a); LeaveB类:package com.Listen;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.SQLException;import javax.swing.JButton;import j

26、avax.swing.JDialog;import javax.swing.JPanel;public class LeaveB extends JDialog implements ActionListener JPanel topPanel; JButton sureB,exitB; public LeaveB() setBounds(200,350,200,100); setVisible(true); setLayout(new GridLayout(2, 1); topPanel = new JPanel(); sureB = new JButton(确定); exitB = new

27、 JButton(取消); topPanel.add(sureB); topPanel.add(exitB); sureB.addActionListener(this); exitB.addActionListener(this); add(topPanel); public void save(Operatepage a) SaveMenu a1 = new SaveMenu(); a.sickDay.text.getText(); try a1.SaveDate(null); catch (InstantiationException | IllegalAccessException |

28、 ClassNotFoundException | SQLException e1) / TODO Auto-generated catch block e1.printStackTrace(); public void actionPerformed(ActionEvent e) if (e.getSource()=exitB) dispose(); LeavaBL类:package com.Listen;import java.awt.event.ActionEvent;import java.sql.SQLException;import javax.swing.JOptionPane;

29、public class LeaveBL extends LeaveB Operatepage a; public void save(Operatepage a) int i1,i2; SaveMenu a1 = new SaveMenu(); i1=Integer.parseInt(a.sickDay.text.getText(); i1+; a.sickDay.text.setText(String.valueOf(i1); i2=Integer.parseInt(a.sickDayOff.text.getText(); i2-; a.sickDayOff.text.setText(String.valueOf(i2); try a1.UpdataDate(a); catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e1) / TODO Auto-g

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2