职工考勤管理系统.docx

上传人:牧羊曲112 文档编号:1926924 上传时间:2022-12-26 格式:DOCX 页数:37 大小:687.10KB
返回 下载 相关 举报
职工考勤管理系统.docx_第1页
第1页 / 共37页
职工考勤管理系统.docx_第2页
第2页 / 共37页
职工考勤管理系统.docx_第3页
第3页 / 共37页
职工考勤管理系统.docx_第4页
第4页 / 共37页
职工考勤管理系统.docx_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《职工考勤管理系统.docx》由会员分享,可在线阅读,更多相关《职工考勤管理系统.docx(37页珍藏版)》请在三一办公上搜索。

1、设计报告 职 工 考 勤 管 理 系 统 ZHI GONG KAO QIN GUAN LI XI TONG2012前 言20世纪90年代,随着我国市场经济的快速发展,职工考勤管理系统在企业的日常管理中发挥着越来越重要的作用。职工考勤管理系统可以进行员工信息管理、出勤管理和密码管理等,方便处理企业内部员工的相关考勤信息。此外Internet 的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件。职

2、工考勤系统是在适应市场需求的客观前提下,为了满足中小型公司或事业单位管理自己的员工而开发的。目 录第一章 开发背景1第二章 需求分析2第三章 概念结构设计3一、局部E-R图设计3(一)、确定局部范围3(二)、确定实体与属性3(三)概念模型表示4二、合并成总体E-R图5第四章 逻辑结构设计6一、E-R图转换为关系模型6关系模式的规范化6第五章 数据库实施与维护8一、定义数据库结构8二、组织数据入库9三、数据库试运行10第六章 JAVA11一、JAVA代码:12(一)、登录代码12(二)、管理员主界面代码15二、JAVA运行29(一)、用户登录界面29(二)、主界面29(三)、基本功能30第七章

3、参考文献34第一章 开发背景 我们都知道,考勤管理系统是任何一个营业单位不可缺少的部分,它的内容对于单位的管理者和内部员工来说都至关重要,所以考勤管理系统应该能够为用户提供充足的信息和快捷的安全查询,及实时管理手段。但在过去,人们一直在使用传统的人工的方式来进行考勤管理,这种落后的方式存在着许多缺点,如:效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难。而使用计算机对员工出勤进行管理,具有手工作业所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高管理的效率。 此次开发了一种基于SQL

4、 Server和Java下的考勤管理系统。其不但具有实际考勤管理系统应有的档案管理,信息安全认证等功能,且拥有用户使用更简单、界面更直观等优点。考勤管理系统在我国任何一个单位是必需的,随着我国的发展,考勤管理系统的作用会得到更加充分的体现。 。第二章 需求分析职工考勤管理系统,可用于企业等机构的职工考勤情况管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用Java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成职工基本信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODBC驱动实现前台Java与后台SQL数据库的

5、连接。Java语言跨平台性强,可以在windows,Linux,等系统下使用,方便简单,安全性好。SQLServer2005数据库高效安全,两者结合可相互利用各自的优势l 用户登陆界面。该界面可以选择使用者的身份,“管理员,职工”。不同的身份有不同的操作界面和功能权限。账号和密码输入正确即可登录。l 职工管理界面。提供了职工基本信息的查询,打卡、出差、加班、请假的查询以及相应权限的添加、删除、修改操作。l 管理员管理界面。提供了对所有职工信息的查询、添加、修改、删除;职工考勤信息的录入、修改、删除、查询,修改密码等功能。管理员拥有最高的权限,允许对职工所有信息进行查询和修改。第三章 概念结构设

6、计一、局部E-R图设计(一)、确定局部范围 职工考勤管理系统分为七部分:l 管理员登录 l 职工登录l 职工基本信息 l 职工出勤信息 l 职工加班信息 l 职工出差信息 l 职工请假信息 (二)、确定实体与属性两个准则:(1) 属性不能在具有需要描述的性质,即属性必须是不可分的数据项,不能再由另一些属性组成.(2) 属性不能与其他实体具有联系,联系只发生在实体之间 根据两个准则进行分析:在职工考勤管理系统中,职工具有属性(职工编号、职工姓名、性别、年龄、职称),其属性又是不可分的,因此将职工作为实体。 出勤、加班、出差、请假都具有属性,其属性又是不可分的,因此将他们作为实体。管理员、用户登录

7、也作为实体。 表1-1 实体属性管理员登录表管理员ID,密码用户登录表表职工编号,密码职工信息表职工编号,职工姓名,性别,年龄,职称职工出勤信息表姓名,编号,上班打卡时间,下班打卡时间,缺勤记录职工加班信息表姓名,编号,加班开始时间,加班结束时间,统计加班天数职工出差信息表姓名,编号,出差开始时间,出差结束时间,统计出差天数职工请假信息表请假开始时间,请假结束时间,统计请假天数(三)概念模型表示实体型:用矩形表示,矩形内写实体名。属性:用椭圆形表示,并用边将其与相应的实体型连接起来。联系:用菱形表示,菱形框内写明联系名,并用边与有关实体型连接起来,且在边旁标上联系的类型。 管理员信息表ER图

8、用户信息表ER图职工信息表ER图 职工出勤信息表ER图 职工加班信息表ER图 职工出差信息表ER图 请假信息表ER图二、合并成总体E-R图职工考勤管理系统第四章 逻辑结构设计一、E-R图转换为关系模型关系模式的规范化步骤非规范关系 是每个属性不能再分1NF 消去非主属性対主码的部分依赖 2NF 消去非主属性対主码的传递依赖 3NF管理员登录表(admin)列名数据类型约束是否允许为空默认值 说明adminchar(6)主键管理员passwordchar(12)NOT NULL密码员工登录表(admin)列名数据类型约束是否允许为空默认值 说明w_idchar(6)主键员工Password_wc

9、har(12)NOT NULL密码职工基本信息表(worker)列名数据类型约束是否允许为空默认值说明w_idchar(4)主键NOT NULL职工编号w_namechar(6)NOT NULL职工姓名w_sexchar(6)NOT NULL性别w_ageintNOT NULL年龄w_drgeechar(4)NOT NULL职称出勤记录信息表(work_note)列名数据类型约束是否允许为空默认值说明w_idchar(4)主键NOT NULL职工编号s_timdatetime上班打卡时间x_timdatetime下班打卡时间q_notInt0缺勤记录(1或0)出差信息(out_note)列名数

10、据类型约束是否允许为空默认值说明w_idchar(4)主键职工编号k_timdatetime出差起始时间j_timdatetime出差结束时间c_daysInt统计总天数请假记录信息(off_note)列名数据类型约束是否允许为空默认值说明w_idchar(4)主键职工编号off_timdatetime请假开始时间off_e_timdatetime请假结束时间off_daysint统计请假天数加班信息(over_note)列名数据类型约束是否允许为空默认值说明w_idchar(4)主键NOT NULL职工编号jia_timdatetime加班开始时间jia_e_timdatetime加班结束时

11、间jia_daysint统计加班时间第五章 数据库实施与维护一、定义数据库结构分析数据库各个表的结构,在SQL中实现的创建SQL语句。-首先创建职工考勤数据库CREATE DATABASE zgkq ON (name=zg_dat, filename=d:zg_dat.mdf, size=5, maxsize=20, Filegrowth=1) LOG ON (name=zg_log, filename=e:zg_dat.ldf, size=5, maxsize=20, Filegrowth=1) -调到数据库zgkgUSE zgkqGO-管理员登录表CREATE TABLE login_ad

12、min(admin char(6) PRIMARY KEY, password char(12)NOT NULL)-员工登录表CREATE TABLE login_w(w_id char(6) PRIMARY KEY, password_w char(12) NOT NULL)-创建职工信息表workerCREATE TABLE worker (w_id char(4) PRIMARY KEY, w_name char(6) NOT NULL, w_sex char(6) check(w_sex=男or w_sex=女)NOT NULL, w_age int NOT NULL, w_drgee

13、 char(4) NOT NULL)-创建出勤记录信息work_noteCREATE TABLE work_note (w_id char(4) PRIMARY KEY, s_tim datetime, x_tim datetime, q_not int CHECK (q_not=0 OR q_not=1) DEFAULT 0) -创建出差信息out_noteCREATE TABLE out_note (w_id char(4) PRIMARY KEY, k_tim datetime, j_tim datetime, c_days int)-创建请假信息off_noteCREATE TABLE

14、 off_note (w_id char(4) PRIMARY KEY, off_tim datetime, off_e_tim datetime, off_days int) -创建加班信息over_noteCREATE TABLE over_note (w_id char(4) PRIMARY KEY, jia_tim datetime, jia_e_tim datetime, jia_days int) 二、组织数据入库INSERT INTO login_admin VALUES(admin,123456)-INSERT INTO login_w VALUES(1001,100001)I

15、NSERT INTO login_w VALUES(1002,100002)INSERT INTO login_w VALUES(1003,100003)INSERT INTO login_w VALUES(1004,100004)INSERT INTO login_w VALUES(1005,100005)-INSERT INTO work_note VALUES(1001,2010-5-21 08:00:00,2010-5-21 18:30:00,0)INSERT INTO work_note VALUES(1002,2010-5-21 08:00:00,2010-5-21 18:30:0

16、0,0)INSERT INTO work_note VALUES(1003,2010-5-21 08:00:00,2010-5-21 18:30:00,0)INSERT INTO work_note VALUES(1004,2010-5-21 08:00:00,2010-5-21 18:30:00,0)INSERT INTO work_note VALUES(1005,2010-5-21 08:00:00,2010-5-21 18:30:00,0)-INSERT INTO worker VALUES(1001,李芳,女,28,员工)INSERT INTO worker VALUES(1002,

17、王明,男,30,员工)INSERT INTO worker VALUES(1003,江月,女,31,员工)INSERT INTO worker VALUES(1004,李芳,男,27,员工)INSERT INTO worker VALUES(1005,李芳,男,24,员工) - INSERT INTO out_note VALUES(1002,2010-3-21,2010-4-21,31) -INSERT INTO off_note VALUES(1003,2010-3-21,2010-4-21,31)-INSERT INTO over_note VALUES(1004,2010-4-21,2

18、010-4-21,1)三、数据库试运行1-查询所有职工信息SELECT *FROM worker2-查询所有出勤记录信息SELECT *FROM work_note3-查询所有出差信息SELECT *FROM out_note4-查询所有请假信息SELECT *FROM off_note5-查询所有加班信息SELECT *FROM over_note6-查询编号为1001的职工信息SELECT * FROM workerWHERE w_id=1001第六章 JAVA一、JAVA代码: (一)、登录代码package ZGKQ;import java.awt.*;import java.awt.

19、event.*;import javax.swing.*;import java.sql.*;public class Login extends JFrame implements ActionListener JFrame jf;Container con = getContentPane();JTextField tfName;JPasswordField ps;JLabel label;JLabel lbName;JLabel lbps;JLabel shenfen;JButton bt1;JButton bt2;private String psword;JComboBox box;

20、JPanel jp1;public Login() jf = this;setTitle(用户登录界面);con.setBackground(Color.black); Font f = new Font(新宋体, Font.PLAIN, 22); /(JPanel)this.getContentPane().setOpaque(false);ImageIcon img = new ImageIcon(4.jpg); /添加图片 JLabel background = new JLabel(img);this.getLayeredPane().add(background,new Intege

21、r(Integer.MIN_VALUE);background.setBounds(0,0,img.getIconWidth(),img.getIconHeight();jp1=new JPanel(); /tfName = new JTextField();ps = new JPasswordField();label = new JLabel(职 工 考 勤 管 理 系 统);lbName = new JLabel(用户名:);lbps = new JLabel(密 码:);bt1 = new JButton(登录);bt2 = new JButton(清空);/ /con.setLayo

22、ut(null); jp1=new JPanel(); con.add(jp1);con.add(label);label.setFont(f);label.setBounds(220, 100, 300, 40);con.add(lbName);con.add(tfName);lbName.setBounds(250, 250, 80, 20);tfName.setBounds(330, 250, 100, 20);shenfen = new JLabel(身 份:);shenfen.setBounds(250, 310, 80, 20);con.add(shenfen);box = new

23、 JComboBox();box.addItem(管理员);box.addItem(员工);con.add(box);box.setBounds(330, 310, 80, 20);con.add(lbps);con.add(ps);lbps.setBounds(250, 280, 80, 20);ps.setBounds(330, 280, 100, 20);con.add(bt1);con.add(bt2);bt1.setBounds(260, 340, 60, 20);bt1.setBackground(Color.gray);bt2.setBounds(350, 340, 60, 20

24、);bt2.setBackground(Color.gray);bt1.addActionListener(this);bt2.addActionListener(this);setBounds(310, 150, 700, 500);setVisible(true);public void actionPerformed(ActionEvent e) Database db = new Database();db.OpenConn();String pass = new String(ps.getPassword().trim();String name = tfName.getText()

25、.trim();Object source = e.getSource();if (box.getSelectedItem().equals(管理员) if (source = bt1) try String sql = select * from login_admin where admin = + name + and password = + pass + ;ResultSet res = db.executeQuery(sql);while (res.next() psword = res.getString(2).trim();if (name.equals() new JOpti

26、onPane().showMessageDialog(null, 用户名不能为空!); else if (pass.equals() new JOptionPane().showMessageDialog(null, 密码不能为空!); else if(pass.equals(psword)this.dispose();new main_1().setVisible(true);elsenew JOptionPane().showMessageDialog(null, 密码错误!); catch (SQLException e1) / TODO Auto-generated catch blo

27、cke1.printStackTrace();if (box.getSelectedItem().equals(员工) if (source = bt1) try String sql = select * from login_w where w_id = + name+ and password_w = + pass + ;ResultSet res = db.executeQuery(sql);while (res.next() psword = res.getString(2).trim();String num = tfName.getText().trim();if (name.e

28、quals() new JOptionPane().showMessageDialog(null, 用户名不能为空!); else if (pass.equals() new JOptionPane().showMessageDialog(null, 密码不能为空!); else if(pass.equals(psword)this.dispose();new main_2().setVisible(true);elsenew JOptionPane().showMessageDialog(null, 密码错误!); catch (SQLException e1) / TODO Auto-ge

29、nerated catch blocke1.printStackTrace();if (e.getSource() = bt2) tfName.setText();ps.setText();public static void main(String args) new Login();(二)、管理员主界面代码package ZGKQ;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql

30、.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.*;import ZGKQ_add.*;import ZGKQ_query.*;import ZGKQ_delete.*;import ZGKQ_update.*;public class main_1 extends JFrame implements ActionListener Containe

31、r con;JTable table1 = new JTable(200, 5);/ JScrollPane scrollPane = new JScrollPane(table1);JPanel pn = new JPanel();/ 创建一个面板并实例化JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();/ JPanel p4 = new JPanel();Label lb1 = new Label(欢 迎 使 用 员 工 考 勤 管 理 系 统 ! 有 不 明 白 请 看 帮 助 !);JL

32、abel lb2 = new JLabel(new ImageIcon(2.jpg);/ 实例化菜单栏JMenuBar mb = new JMenuBar();/ 实例化菜单开始JMenu systemM;JMenu jibenM;JMenu guanliM;JMenu helpM;JMenu aboutM;/ 文件的菜单项JMenuItem psUpdate;JMenuItem login;/JMenuItem addDelete;JMenuItem exit;/ 基本信息的菜单项JMenuItem worker;JMenuItem work_note;JMenuItem out_note;

33、JMenuItem off_note;JMenuItem over_note;/ 信息管理JMenu kqquery;JMenuItem jibenquery;JMenuItem dakaquery;JMenuItem jiabanquery;JMenuItem chuchaiquery;JMenuItem qingjiaquery;JMenu kqadd;JMenuItem jibenadd;JMenuItem dakaadd;JMenuItem jiabanadd;JMenuItem chuchaiadd;JMenuItem qingjiaadd;JMenu kqupdate;JMenuI

34、tem jibenupdate;JMenuItem dakaupdate;JMenuItem jiabanupdate;JMenuItem chuchaiupdate;JMenuItem qingjiaupdate;JMenu kqdelete;JMenuItem jibendelete;JMenuItem dakadelete;JMenuItem jiabandelete;JMenuItem chuchaidelete;JMenuItem qingjiadelete;JMenuItem helpcon;JMenuItem aboutcon;JButton b1, b2, b3, b4, b5

35、, b6, b7, b8, b9;Font f = new Font(宋体, Font.PLAIN, 20);/ 设置一种字体main_1() setTitle(员工考勤管理系统);/ 设置窗体标题con = getContentPane();con.setLayout(new BorderLayout();/ 创建一个布局con.add(pn, BorderLayout.CENTER);/ 实例虚拟桌面的布局/ /(JPanel) this.getContentPane().setOpaque(false);ImageIcon img = new ImageIcon(3.jpg); / 添加

36、图片JLabel background = new JLabel(img);this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE);background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight();/ / 实例化菜单栏mb = new JMenuBar();/ 实例化菜单开始systemM = new JMenu(菜单);jibenM = new JMenu(基本信息);guanliM = new JMenu(信息管理);helpM = new

37、JMenu(帮助);aboutM = new JMenu(关于);/ 文件的菜单项psUpdate = new JMenuItem(密码修改);login = new JMenuItem(重新登陆);login.setBackground(Color.pink);/addDelete = new JMenuItem(添加/删除用户);exit = new JMenuItem(退出系统);psUpdate.addActionListener(this);login.addActionListener(this);/addDelete.addActionListener(this);exit.ad

38、dActionListener(this);/ 添加菜单项systemM.add(psUpdate);systemM.add(login);/systemM.add(addDelete);systemM.add(exit);/ 基本信息的菜单项worker = new JMenuItem(职工信息);work_note = new JMenuItem(出勤信息);out_note = new JMenuItem(出差信息);off_note = new JMenuItem(请假信息);over_note = new JMenuItem(加班信息);/ 注册监听器worker.addAction

39、Listener(this);work_note.addActionListener(this);out_note.addActionListener(this);off_note.addActionListener(this);over_note.addActionListener(this);/ 添加jibenM.add(worker);jibenM.add(work_note);jibenM.add(out_note);jibenM.add(off_note);jibenM.add(over_note);/ 信息查询的菜单项kqquery = new JMenu(信息查询);jibenquery = new JMenuItem(基本信息查询);dakaquery = new JMenuItem(打卡信息查询);jiabanquery = new JMenuItem(加班信息查询);chuchaiquery =

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号