考勤管理系统报告书_第1页
考勤管理系统报告书_第2页
考勤管理系统报告书_第3页
考勤管理系统报告书_第4页
考勤管理系统报告书_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

数据库原理及应用课程设计报告题目: 考勤管理系统 -课程设计报告 所在学院: 信息工程学院 班 级: 计科1001 学 号: 姓 名: 徐军 指导教师: 陈才扣 2012年1月4日目录一、 概述二、需求分析三、概念设计四、逻辑设计五、系统实现六、小结一、概述1.1系统开发的背景与意义1.1.1系统开发背景现在不论哪个企业,都要进行考勤,考勤管理系统利用计算机管理考勤工作, 提高工作效率,一些企业在考勤管理方面用了大量的人力和财力,不说准确度和可信度如何,其效率很低,而且容易出错,不利于管理。所以人工考勤已经很难再满足企业规范化管理的要求,随着数据库技术的发展和企业信息化建设的进行,使用计算机管理考勤成为一种主流趋势,它不仅为企业减少了人力财力的付出,而且也大大减轻了考勤工作人员的工作量。对于员工们的出勤率有个明显的记录,对于公司的职员也有基本了解根据出勤情况可以计算员工的实际工资。本文系统的阐述了企业考勤管理设计开发的全过程。包括系统需求调查分析,概念结构设计,逻辑结构设计等部分。1.1.2系统开发意义开发本系统的目的,就是要解决目前企业中关于员工出勤管理中所面临的一系列问题。 考勤系统进行企业管理越来越适应企业的需要,集信息的输入,显示,修改,删除等各种处理,信息维护方便,给公司可以带来很大的便利。开发出企业考勤管理系统能有效地提高企业办事效率,解决目前员工出勤管理问题,实现员工请出勤信息和缺勤信息对企业领导透明,使管理人员及时把握员工的情况,及时与员工沟通,提高生产质量。二、需求分析作为一个考勤系统最重要的功能当数考勤了也就是能够将员工上班签到的日期与时间记录下来。当然记录下签到信息后,应该具有其他的辅助功能比II1查询员工某天的签到情况”、”修改签到情况”、”员工的维护”、”公司上班时间的设置”等下面就本系统完成的功能做一个简单的需求分析。2.1系统功能要求2.1.1功能划分(1)记录每个员工每天所有进入公司的时刻和离开公司的时刻。(2)每天结束时自动统计当天的工作时间(3)每天结束时自动统计当天迟到或早退的次数。(4)对于弹性工作制,每天结束时自动统计当月的工时,并自动算出当月欠缺或富余的时间(5)每个月末统计该月的工作时间判断是否足够(6)每个月末统计该月的工作天数并判断是否足够(7)管理人员查询并修改工作时间(特殊情况下修改)(8)管理人员账户管理(如设置密码等)(9)管理人员设定早退及迟到的条件,每个月的工作时间(10)管理人员设定每个月的工作日期及放假日期1.1.2 功能描述实际的管理和记录工作非常需要快速获知各个部门员工的每日出勤情况,以便于及时向高层管理者反映员工的出勤,缺勤情况。目前,由于负责考勤的员工,工作任务比较多,而且还都是重复数据,让工作者没有办法及时的向上报告。工作问题不能及时处理。针对以上的情况,我们提出企业考勤管理系统,实现网上考勤任务,以减轻考勤人员的工作量。我公司准备开发员工考勤管理系统,完成员工基本信息维护、企业的部门信息维护、企业基本考勤类型的维护、员工考勤的管理、员工考勤的查询与分析。实现人事考勤的需要,包括员工迟到、早退的情况的记录,在每个月底计算工资对员工和对员工进行绩效评估的时候,对员工整个月的考勤记录进行查询和统计。2.2性能需求此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后3位小数,即是精确到分的计算。但在用户使用过程中,能自行根据实际情况进行小数计算精度的设定,最大能允许保留小数点后5位的精度。在时间特性上,当用户发出命令请求时的服务器的响应时间、对数据更新处理、工资数据的查询检索等上,同样要求系统响应时间不会超过0.5秒时间。系统支持多种操作系统的运行环境,多不同操作系统,不同文件格式的磁盘上的数据均能实现信息的互通,及共享。2.3系统层次划分考勤系统管理管理系统整合系统考勤系统记录时刻统计工作时间统计工时统计迟到早退次数判断工作时间足够判断工作天数足够查询修改工作时间设置密码设定迟到早退条件设定工作放假日期2.4数据流图顶层数据流图数据库操作操作数据系统操作管理信息考勤信息进入基本界面职工信息配置管理 管理员登陆员工考勤管理系统 帐号和 核对密码 查询考勤统计 考勤统计 密码 录入进出情况录入迟到情况录入早退情况录入工作时间情况刷卡员工进出时间信息 数据统计考勤管理分析数据进出记录 迟到记录早退记录 时间记录统计所有记录的信息月度考勤统计管理员 工作日期及放假日期2.5数据字典(1),数据项描述数据项别名类型长度取值范围 员工工号Snochar9至员工姓名Snamechar10员工性别Ssexchar1“男”或“女”入职时间enter_timechar2000至2050员工年龄Sagesmallint20至70职位positionChar10数据项描述表(2)数据结构描述数据结构说明组成员工信息是考勤管理子系统的主体数据结构,定义了一个员工的有关信息员工编号,员工姓名,员工性别,出生日期,职位,密码部门信息是考勤管理子系统的主体数据结构,定义了一个部门的有关信息部门编号,部门名称数据结构描述(3)数据流描述数据流说明数据流来源数据流去向组成核对密码根据不同人员相应的权限登录时的信息考勤管理系统管理员的帐号密码与普通员工的帐号密码完整的考勤数据员工的考勤数据月度考勤统计工资评估月度考勤编号、员工编号、日期、累计正常工作时间迟到次数、早退次数、旷工次数数据流描述(4)数据存储数据存储说明流入数据流流出数据流组成存取方式月度考勤统计记录员工每月的考勤情况一个月的信息统计统计好的考勤数据月度考勤编号、员工编号、日期、正常工作时间、迟到次数、早退次数、旷工次数更新,顺序检索数据存储三、概念设计入职时间3.1概念模型员 工员工号员工姓名职 位密 码员工年龄员工性别员工属性图管理员号性 别管理员姓 名年 龄管理员属性图员工姓名员工号入职时间密 码员 工员工性别职 位员工年龄每天工作时间 m记录上班的时 间下班的时 间管理员号姓 名 n统计 管理员剩余的时间 n迟到的次数年 龄性 别工作天数早退的次数四、逻辑设计4.1关系模式员工信息(工号,姓名,性别,年龄,职位,密码,入职时间)记录数据(工号,上班的小时,下班的小时,上班的分钟,下班的分钟,每天工作时间)统计数据(工号,剩余的时间,迟到的次数,早退的次数,工作天数)管理员(管理员号,姓名,性别,年龄)每天统计信息表(工号,姓名,小时,分钟,动作,时间) 其中动作指的时入或离开公司员工表(employee)列名别名类型长度备注工号Snochar9primary key员工姓名Snamechar10员工性别Ssexchar1年龄Sageint3职位Positionchar10密码Passwordchar6入职时间Enter_timechar10员工表记录数据表(data_record):列名别名类型长度备注员工号Snochar9primary key上班的小时arrive_hour char2上班的分钟arrive_minutechar4上班的小时leave_hourchar4下班的分钟leave_minutechar4每天工作时间Everyday_timechar4记录数据表每天统计信息表 everyday_statistics 列名别名类型长度备注员工号SnoChar9primary key员工姓名SnameChar10时间HourChar2分钟MinuteChar2动作Actionchar8时间Timechar4 统计信息表月统计数据表(everymonth_statistics):列名别名类型长度备注员工号Snochar9primary key员工姓名SnameChar10剩余的时间remain_timechar4迟到的次数Late_timessmallint2早退的次数Early_timessmallint2工作天数Work_daysmallint2统计数据表管理员表(Administrator)列名别名类型长度备注管理员号anobigint6primary key姓名anamechar20性别asexchar2年龄aageint3管理员表五、系统实现一、登陆界面package kaoqin;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.sql.*;public class Main_login extends JFrame implements ActionListenerpublic Main_login()super(选择用户类型);this.setSize(300,300);this.setContentPane(new JPanel();create();private void create()JButton b1,b2,b3;Box box1,box2,box3,box;b1=new JButton(系统管理员);b2=new JButton(普通用户);b3=new JButton(退出登陆);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);box1=Box.createHorizontalBox();box2=Box.createHorizontalBox();box3=Box.createHorizontalBox();box1.add(b1);box2.add(b2);box3.add(b3);box=Box.createVerticalBox();box.add(box1);box.add(Box.createVerticalStrut(20);box.add(box2);box.add(Box.createVerticalStrut(40);box.add(box3);this.add(box);public void actionPerformed(ActionEvent e)if(e.getActionCommand()=系统管理员)login frame=new login();dispose();else if(e.getActionCommand()=普通用户)login1 frame=new login1();dispose();else if(e.getActionCommand()=退出登陆)System.exit(0);public static void main(String args) /ConnectionDB myDB=new ConnectionDB();int flag=0; /判断是否创建过数据库的标志File file=new File(SQL.txt); try /读入标志FileReader in=new FileReader(file); int len;if(len=in.read()!=-1)flag=1; /已创建了数据库,置1in.close(); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();/没有创建过数据库if(flag=0)ConnectionDB myDB=new ConnectionDB();myDB.createTable(); myDB.breakDB();try /写入标志FileWriter out=new FileWriter(file);out.write(1);out.close(); catch (IOException e) e.printStackTrace(); Main_login frame1=new Main_login(); frame1.setVisible(true); 二、管理员登陆界面class login extends JFrame /管理员登陆界面 public login() this.setTitle(管理员登陆界面); this.setSize(300,300); this.setContentPane(new JPanel(); this.setVisible(true); init(); JTextField jTextField1; JPasswordField jPasswordField1; private void init() JLabel jLabel1=new JLabel(管理员登陆); JLabel jLabel2=new JLabel(用户名); JLabel jLabel3=new JLabel(密码); jTextField1=new JTextField(10); jPasswordField1=new JPasswordField(10); JButton button1=new JButton(确定); JButton button2=new JButton(取消); JButton button3=new JButton(修改密码); Box box,box1,box2,box3,box4,box5; box1=Box.createHorizontalBox(); box1.add(jLabel1); box1.add(Box.createHorizontalStrut(10); box2=Box.createHorizontalBox(); box2.add(jLabel2); box2.add(Box.createHorizontalStrut(20); box2.add(jTextField1); box3=Box.createHorizontalBox(); box3.add(jLabel3); box3.add(Box.createHorizontalStrut(20); box3.add(jPasswordField1); box4=Box.createHorizontalBox(); box4.add(button1); box4.add(Box.createHorizontalStrut(20); box4.add(button2); box5=Box.createHorizontalBox(); box5.add(button3); box=Box.createVerticalBox(); box.add(box1); box.add(Box.createVerticalStrut(20); box.add(box2); box.add(Box.createVerticalStrut(20); box.add(box3); box.add(Box.createVerticalStrut(20); box.add(box4); box.add(Box.createVerticalStrut(20); box.add(box5); this.add(box); button1.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 / login im=new login(); Stringname=jTextField1.getText(),password=jPasswordField1.getText(); if(name.equals(admin)&password.equals() MFrame mi=new MFrame(); dispose(); else JOptionPane.showMessageDialog(new JFrame(WARNING), 用户名或密码错误); ); button2.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 Main_login frame=new Main_login(); dispose(); ); button3.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 MPwd f1=new MPwd(); dispose(); ); 三、主功能界面class MFrame extends JFrame /主功能界面 public MFrame() this.setTitle(主要功能); this.setContentPane(new JPanel(); this.setSize(350,200); this.setVisible(true); init(); private void init() JButton button1=new JButton(员工信息管理); JButton button2=new JButton(员工出勤信息); JButton button3=new JButton(配置信息); JButton button4=new JButton(退出登陆); Box box1=Box.createHorizontalBox(); Box box2=Box.createHorizontalBox(); Box box3=Box.createVerticalBox(); box1.add(button1); box1.add(Box.createHorizontalStrut(10); box1.add(button2); box1.add(Box.createHorizontalStrut(10); box1.add(button3); box2.add(button4); box3.add(box1); box3.add(Box.createVerticalStrut(30); box3.add(box2); this.add(box3); button1.addActionListener(new ActionListener() / Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 Worker_Frame frame=new Worker_Frame(); dispose(); ); button2.addActionListener(new ActionListener() / Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 AttendFrame frame=new AttendFrame(); dispose(); ); button3.addActionListener(new ActionListener() / Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 Equ_Frame frame=new Equ_Frame(); dispose(); ); button4.addActionListener(new ActionListener() / Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 Main_login frame=new Main_login(); dispose(); ); 四、员工信息管理class Worker_Frame extends JFrame /员工信息管理public Worker_Frame()this.setTitle(员工信息管理);this.setVisible(true);this.setSize(400,400);init();JButton button1,button2,button3,button4,button5;private void init()button1=new JButton(员工信息添加);button2=new JButton(员工信息修改);button3=new JButton(员工信息删除);button4=new JButton(员工信息查询);button5=new JButton(返回);Box box1=Box.createHorizontalBox();Box box2=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();Box box3=Box.createVerticalBox();box1.add(button1);box1.add(Box.createHorizontalStrut(20);box1.add(button2);box2.add(button3);box2.add(Box.createHorizontalStrut(20);box2.add(button4);box4.add(button5);box3.add(box1);box3.add(box2);box3.add(Box.createVerticalStrut(30);box3.add(box4);this.add(box3);button1.addActionListener(new ActionListener() /添加员工信息 Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 WoAddFrame frame=new WoAddFrame(); dispose(); );button2.addActionListener(new ActionListener() /修改员工信息 Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 WoAltFrame frame=new WoAltFrame(); dispose(); );button3.addActionListener(new ActionListener() /删除员工信息 Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 WoDelFrame frame=new WoDelFrame(); dispose(); );button4.addActionListener(new ActionListener() /查询员工信息 Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 WoSerFrame frame=new WoSerFrame(); dispose(); );button5.addActionListener(new ActionListener() /返回 Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 MFrame frame=new MFrame(); dispose(); );五、添加员工class WoAddFrame extends JFrame/添加员工private ConnectionDB myCon=new ConnectionDB();private JButton YesBtn,NoBtn; private static JTextField woName,woNo,woAge,woYear,woPosition,woSex,woPassword; private JLabel woNameLabel,woNoLabel,woAgeLabel,woYearLabel,woPositionLabel,woSexLabel,woPasswordLabel;/提示区 private static Font font=new Font(楷体,Font.BOLD,14);public WoAddFrame()this.setTitle(添加员工); this.setBounds(200, 200, 400, 300); this.setLayout(null); this.setResizable(false); this.setVisible(true); this.addCompnents(); this.add(getwoName(); this.add(getwoNo(); this.add(getwoAge(); this.add(getwoYear(); this.add(getwoPosition(); this.add(getwoSex(); this.add(getwoPassword(); private void addCompnents() woNameLabel=new JLabel(员工姓名:); woNameLabel.setFont(font); woNameLabel.setBounds(70, 10, 70, 20); this.add(woNameLabel); woNoLabel=new JLabel(员工编号:); woNoLabel.setFont(font); woNoLabel.setBounds(70, 30, 70, 20); this.add(woNoLabel); woAgeLabel=new JLabel(员工年龄:); woAgeLabel.setFont(font); woAgeLabel.setBounds(70, 50, 70, 20); this.add(woAgeLabel); woYearLabel=new JLabel(入职时间:); woYearLabel.setFont(font); woYearLabel.setBounds(70, 70, 70, 20); this.add(woYearLabel); woPositionLabel=new JLabel(员工职位:); woPositionLabel.setFont(font); woPositionLabel.setBounds(70, 90, 70, 20); this.add(woPositionLabel); woSexLabel=new JLabel(员工性别:); woSexLabel.setFont(font); woSexLabel.setBounds(70,110,70, 20); this.add(woSexLabel); woPasswordLabel=new JLabel(员工密码:); woPasswordLabel.setFont(font); woPasswordLabel.setBounds(70, 130, 70, 20); this.add(woPasswordLabel); YesBtn = new JButton(确定); YesBtn.setFont(font); YesBtn.setBounds(100,180,70, 20); this.add(YesBtn); NoBtn = new JButton(取消); NoBtn.setFont(font); NoBtn.setBounds(180,180,70, 20); NoBtn.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 Worker_Frame frame=new Worker_Frame(); dispose(); ); this.add(NoBtn); YesBtn.addActionListener(new ActionListener() /添加确认按钮响应 Override public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 String sql=insert into staff_info(Sno,Sname,Sage,enter_time,position,sex,password)values(+woNo.getText()+, +woName.getText()+,+woAge.getText()+,+woYear.getText()+,+woPosition.getText()+,+woSex.getText()+,+woPassword.getText()+); try myCon.getStatement().executeUpdate(sql);myCon.breakDB(); catch (SQL

温馨提示

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

评论

0/150

提交评论