收藏 分销(赏)

企业员工考勤管理信息系统课程设计指导书).doc

上传人:人****来 文档编号:9770352 上传时间:2025-04-07 格式:DOC 页数:22 大小:680.50KB 下载积分:10 金币
下载 相关 举报
企业员工考勤管理信息系统课程设计指导书).doc_第1页
第1页 / 共22页
企业员工考勤管理信息系统课程设计指导书).doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
《数据库系统原理课程设计报告》 考勤管理系统 学生姓名: 系 别: 班 级: 专 业: 指导教师: 职工考勤管理信息系统的设计与实现 一、绪论 随着科学技术的不断发展,计算机科学日渐进步,其强大的功能耳闻目睹,它已进入人类社会的各个领域并发挥着越来越重要的作用。由于在之前学习课程像c++等的课程设计中遇到过要求实现功能与此实验相似的情况,所以选择此课题作为课程设计作业。此职工考勤管理信息系统的实现利用了计算机的相关技术,满足了单位日常考勤管理的需求,使单位考勤过程更加快速,安全,高效的信息管理系统。本系统基于C/S模式,采用java语言与SQL SERVER 2000数据库开发完成,实现了职工出差信息管理,职工请假信息管理功能。其中职工出差信息管理主要包括出差起始时间、结束时间、统计总共天数等,职工请假信息管理主要包括请假开始时间,结束时间,统计请假天数等。本系统能基本满足用户在考勤管理方面的需求,界面较简洁,符合用户使用习惯能实际地提高单位的考勤管理的效率。  二、系统分析 随着企业人事管理的日趋复杂和企业人员的增多,企业的考勤管理变得越来越复杂。规范的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的需求。。 本实验实现的职工信息管理系统主要包括以下功能: (1)提供简单、方便的操作; (2)根据企业原来的考勤管理制度,为企业不同管理层次提供相应的功能; (3)通过考勤管理无纸化的实现,使企业的考勤管理更加科学规范; (4)节省考勤管理的成本; (5)对系统提供必要的权限管理,具备一定的安全性管理功能。包括输入登录用户名和密码; (6)为企业实现整体信息化的其他相关系统提供必要的数据支持; (7) 完成数据的录入和修改,并提交数据库保存。其中的数据包括:出差信息、请假信息; (8)系统功能基本要求:出差信息,包括出差起始时间、结束时间、统计总共天数等;请假信息,包括请假开始时间,结束时间,统计请假天数等; 三、系统设计 3.1功能模块设计 本系统采用C/S体系结构,客户端负责提供表达逻辑、显示用户界面信息、访问数据库服务器,采用PowerBuilder9作为开发工具;服务器端则用于提供数据服务,采用SQL Server2000作为数据库管理系统。 本系统按照功能划分为以下四个模块:职工请假信息管理(包括请假开始时间,结束时间,统计请假天数等),职工出差信息管理(包括出差起始时间、结束时间、统计总共天数等)系统的功能模块图如图1所示:   职工考勤管理信息系统           请假信息管理 出差信息管理       图1 系统的功能模块图 3.2数据库设计 3.2.1数据库概念结构设计 本系统主要有职工信息、出差信息、请假信息、加班信息、出勤信息和职工考勤信息六个实体集。一个职工考勤信息包含有一个职工信息、一个出差信息、一个请假信息、一个出勤信息和一个加班信息。每个信息中又由多个属性组成。 (1)每个本系统的E-R图如图2.1所示: 用户 口令 用户名   图2.1 系统的E-R图 (2)图2.2为出差E-R图 出差记录 职工编号 出差编号 缺勤记录 开始时间 结束时间 图2.2 系统的职工出差E-R图 (3)图2.3为请假E-R图 请假记录 请假编号 编号 请假统计 开始时间 结束时间 图2.3 系统中职工请假E-R图 3.2.2数据库逻辑结构设计 在物理结构中,数据的基本存取单位是存储记录。有了逻辑结构以后,就可以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应。存储记录就包括记录的组成,数据项的类型和长度等。 根据关系模型的转换原则,上面的E—R图可转换为如下所示的关系模型: evection(Wnum,Wname,Wleave,Wreturn,Wdays) 其中各项含义分别为:出差信息(职工编号,职工姓名,出差开始时间,出差结束时间,出差天数) vacation(Wnum,Wname,Wstart,Wend,Wvadays) 其中各项含义分别为:请假信息(职工编号,职工姓名,请假开始时间,请假结束时间,请假天数) load(User,psw) 其中各项含义分别为:登录(用户名,口令) 根据上面的E-R图设计及关系模型的设计,得出数据表的设计,在本系统中主要的数据表如下: 表1 出差信息表evecion的表结构 主码 列 名 数据类型 宽度 小数位 空否 备 注 Pk Wnum Char 20   N 职工编号  Pk Wname Char 20   Y 姓名   Wleave Datetime   Y 出差开始时间   Wreturn Datetime Y 出差结束时间 Wdays Smallint Y 出差天数 创建表1的SQL语句如下: create table evection ( Wnum char(20), Wname char(10), primary key(Wnum,Wname), foreign key (Wnum,Wname) references zhigongxinxi4(Wnum,Wname) on delete cascade on update cascade, Wleave datetime, Wreturn datetime, Wdays smallint, ) 表2 请假信息表vacation的表结构 主码 列 名 数据类型 宽度 小数位 空否 备 注 Pk Wnum Char 20   N 职工编号 Wname Char 20   N 姓名   Wstart Datetime Y 请假开始时间 Wend Datetime Y 请假结束时间 Wvadays Smallint Y 请假天数 创建表3的SQL语句如下: create table qingjia ( Wnum char(20), Wname char(10), primary key (Wnum,Wname), foreign key (Wnum,Wname) references zhigongxinxi4(Wnum,Wname) on delete cascade on update cascade, Wstart datetime, Wend datetime, Wvadays smallint, ) 表3 登录表load的表结构 主码 列 名 数据类型 宽度 小数位 空否 备 注 Pk User Char 20   N 用户名   psw Char 20   Y 口令 创建表3的SQL语句如下: create table load ( User char(20) primary key, psw char(20), ) 四、系统实现 结合Eclipse进行数据库应用开发的特点,设计过程可按如下步骤进行: l         创建主函数,设计一个Frame框架,用来调用相关类的实例,实现操作功能; l         创建职工请假类和出差类; l         创建类的事件监听,用来响应添加,查询,浏览,删除等功能; l         创建数据窗口和数据源,将数据库与应用程序相连接; l         创建各个类的窗口中放置所需控件和可视化用户图形界面。 4.1   创建主函数,设计一个Frame框架,用来调用相关类的实例,实现操作功能; 利用Eclipse创建工程WorkManage,进一步创建包workManageg,在创建主类名为WorkManage,注释为“职工考勤信息管理系统”。按照下面的方法,编写相应代码: ⑴点击“新建类”新建一个类,名为“WorkManage”。 ⑵创建主函数,并创建一个Frame容器用来添加各种组件,程序代码如下: package workManae; /* 职工考勤信息管理管理系统。程序名:WorkManage.java * */ import java.awt.*; import java.awt.event.*; import java.sql.*; import java.util.*; import java.util.Date; import javax.swing.*; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.applet.*; class WorkManage4 { public static void main(String args[]) throws ParseException{ dbframe db = new dbframe("职工考勤信息管理系统"); } } // 职工考勤信息管理系统主界面 class dbframe extends Frame implements ActionListener { //成员变量 //登录 boolean canLogin; Label labelLogIn = new Label("系统登录"); Label labelUser=new Label("用户名:"); Label labelPassword=new Label("口令:"); TextField textFieldUser=new TextField(); TextField textFieldPassword=new TextField(); JButton jButtonConfirm=new JButton("确定"); JButton jButtonExit=new JButton("退出"); String user = new String(); String tuser = new String(); String tpassword = new String(); // //登录 MenuBar navigation = new MenuBar(); // 建立菜单栏 // 建立“功能”菜单组 Menu menuWorkerInformation=new Menu("职工信息"); Menu menuWentOnErrands=new Menu("出差管理"); Menu menuGoToWork=new Menu("出勤管理"); Menu menuLeave=new Menu("请假管理"); Menu menuWorkOverTime=new Menu("加班管理"); Menu menuSystemManage=new Menu("系统管理"); // 建立“帮助”菜单组 } 4.2创建请假类和出差类; 1.出差类 MenuItem menuItemWentOnErrandsQuery = new MenuItem("查询出差记录"); MenuItem menumItemWentOnErrandsAddtion= new MenuItem("添加出差记录"); MenuItem menuItemWentOnErrandsDelete= new MenuItem("删除出差记录"); MenuItem menuItemWentOnErrandsModify= new MenuItem("修改出差记录"); MenuItem menuItemchuchailiulan = new MenuItem("浏览出差记录"); //出差查询 class Panelchuchaichaxun extends Panel implements ActionListener { Choice cchaxun; TextField tchaxun; Button btnchaxun; TextArea tachaxun; Panelchuchaichaxun() { setLayout(null); cchaxun = new Choice(); // 创建下拉菜单 cchaxun.add("职工编号"); cchaxun.add("职工姓名"); tchaxun = new TextField(); btnchaxun = new Button("查询"); // 创建按钮 tachaxun = new TextArea(); // 创建多行文本框 add(cchaxun); add(tchaxun); add(btnchaxun); add(tachaxun); tchaxun.setText(""); cchaxun.setBounds(10, 60, 70, 20); tchaxun.setBounds(85, 60, 180, 20); btnchaxun.setBounds(275, 60, 40, 20); tachaxun.setBounds(10, 90, 305, 145); cchaxun.select(0); // 下拉菜单的初始选项 setSize(340, 250); // 设置窗口大小 setBackground(Color.white); setVisible(true); btnchaxun.addActionListener(this); validate(); } //出差修改 class Panelchuchaixiugai extends Panel implements ActionListener { TextField textFieldWorkerName, textFieldWorkerNumber, textFieldchuchaiqishiriqi, textFieldchuchaijieshuriqi, textFieldchuchaitianshu; Label labelWorkerName, labelWorkerNumber, labelchuchaiqishiriqi, labelchuchaijieshuriqi, labelchuchaitianshu; Button btn; Panelchuchaixiugai() { setLayout(null); btn = new Button("添加"); // 创建“添加”按钮 textFieldWorkerName = new TextField(); textFieldWorkerNumber = new TextField(); textFieldchuchaiqishiriqi = new TextField(); textFieldchuchaijieshuriqi = new TextField(); textFieldchuchaitianshu = new TextField(); labelWorkerName = new Label("职工姓名:"); labelWorkerNumber = new Label("职工编号:"); labelchuchaiqishiriqi = new Label("出差开始日期:"); labelchuchaijieshuriqi = new Label("出差结束日期:"); labelchuchaitianshu = new Label("出差天数:"); add(labelWorkerName); add(textFieldWorkerName); add(labelWorkerNumber); add(textFieldWorkerNumber); add(labelchuchaiqishiriqi); add(textFieldchuchaiqishiriqi); add(labelchuchaijieshuriqi); add(textFieldchuchaijieshuriqi); add(labelchuchaitianshu); add(textFieldchuchaitianshu); add(btn); // 添加“按钮”到窗口面板上 labelWorkerName.setBounds(10, 60, 70, 25); textFieldWorkerName.setBounds(90, 60, 220, 25); labelWorkerNumber.setBounds(10, 90, 70, 25); textFieldWorkerNumber.setBounds(90, 90, 220, 25); labelchuchaiqishiriqi.setBounds(10, 120, 80, 25); textFieldchuchaiqishiriqi.setBounds(90, 120, 220, 25); labelchuchaijieshuriqi.setBounds(10, 150, 80, 25); textFieldchuchaijieshuriqi.setBounds(90, 150, 220, 25); labelchuchaitianshu.setBounds(10, 180, 70, 25); textFieldchuchaitianshu.setBounds(90, 180, 220, 25); btn.setBounds(130, 250, 70, 25); // 设置按钮位置 btn.addActionListener(this); // 设置按钮监听 setSize(340, 300); // 设置窗口大小 setBackground(Color.white); // 设置窗口背景颜色 setVisible(true); validate(); } //出差浏览 class Panelchuchailiulan extends Panel implements ActionListener { Button btnliulan; TextArea tachaxun; Panelchuchailiulan() { setLayout(null); btnliulan = new Button("浏览职工出差记录"); // 创建按钮 tachaxun = new TextArea(); // 创建多行文本框 add(btnliulan); add(tachaxun); //tchaxun.setText(""); //cchaxun.setBounds(10, 60, 70, 20); //tchaxun.setBounds(85, 60, 180, 20); btnliulan.setBounds(75, 60, 100, 20); tachaxun.setBounds(10, 90, 400, 200); setSize(500, 400); // 设置窗口大小 setBackground(Color.white); setVisible(true); btnliulan.addActionListener(this); validate(); } //职工出差添加 class Panelchuchaitianjia extends Panel implements ActionListener { TextField textFieldWorkerName, textFieldWorkerNumber, textFieldchuchaiqishiriqi, textFieldchuchaijieshuriqi; Label labeltongjitianshu; Label labelWorkerName, labelWorkerNumber, labelchuchaiqishiriqi, labelchuchaijieshuriqi, labelchuchaitianshu; Button btnchuchaitianshu; Button btn; Panelchuchaitianjia() { setLayout(null); btn = new Button("添加"); // 创建“添加”按钮 btnchuchaitianshu = new Button("统计出差天数"); textFieldWorkerName = new TextField(); textFieldWorkerNumber = new TextField(); textFieldchuchaiqishiriqi = new TextField(); textFieldchuchaijieshuriqi = new TextField(); labeltongjitianshu = new Label(); labelWorkerName = new Label("职工姓名:"); labelWorkerNumber = new Label("职工编号:"); labelchuchaiqishiriqi = new Label("出差开始日期:"); labelchuchaijieshuriqi = new Label("出差结束日期:"); labelchuchaitianshu = new Label("出差天数:"); add(labelWorkerName); add(textFieldWorkerName); add(labelWorkerNumber); add(textFieldWorkerNumber); add(labelchuchaiqishiriqi); add(textFieldchuchaiqishiriqi); add(labelchuchaijieshuriqi); add(textFieldchuchaijieshuriqi); add(labelchuchaitianshu); add(labeltongjitianshu); add(btnchuchaitianshu); add(btn); // 添加“按钮”到窗口面板上 labelWorkerName.setBounds(10, 60, 70, 25); textFieldWorkerName.setBounds(90, 60, 220, 25); labelWorkerNumber.setBounds(10, 90, 70, 25); textFieldWorkerNumber.setBounds(90, 90, 220, 25); labelchuchaiqishiriqi.setBounds(10, 120, 80, 25); textFieldchuchaiqishiriqi.setBounds(90, 120, 220, 25); labelchuchaijieshuriqi.setBounds(10, 150, 80, 25); textFieldchuchaijieshuriqi.setBounds(90, 150, 220, 25); labelchuchaitianshu.setBounds(10, 180, 70, 25); labeltongjitianshu.setBounds(90, 180, 220, 25); labeltongjitianshu.setBackground(Color.cyan); btnchuchaitianshu.setBounds(100,220,80,25); btn.setBounds(220, 220, 70, 25); // 设置按钮位置 btn.addActionListener(this); // 设置按钮监听 btnchuchaitianshu.addActionListener(this); setSize(340, 300); // 设置窗口大小 setBackground(Color.white); // 设置窗口背景颜色 setVisible(true); validate(); } 图3 出差类的图形界面 2.请假类 MenuItem menuItemLeaveQuery = new MenuItem("查询请假记录"); MenuItem menumItemLeaveAddtion= new MenuItem("添加请假记录"); MenuItem menuItemLeaveDelete= new MenuItem("删除请假记录"); MenuItem menuItemLeaveModify= new MenuItem("修改请假记录"); MenuItem menuItemqingjialiulan= new MenuItem("浏览请假记录"); //请假查询 class Panelqingjiachaxun extends Panel implements ActionListener { Choice cchaxun; TextField tchaxun; Button btnchaxun; TextArea tachaxun; Panelqingjiachaxun() { setLayout(null); cchaxun = new Choice(); // 创建下拉菜单 cchaxun.add("职工编号"); cchaxun.add("职工姓名"); tchaxun = new TextField(); btnchaxun = new Button("查询"); // 创建按钮 tachaxun = new TextArea(); // 创建多行文本框 add(cchaxun); add(tchaxun); add(btnchaxun); add(tachaxun); tchaxun.setText(""); cchaxun.setBounds(10, 60, 70, 20); tchaxun.setBounds(85, 60, 180, 20); btnchaxun.setBounds(275, 60, 40, 20); tachaxun.setBounds(10, 90, 305, 145); cchaxun.select(0); // 下拉菜单的初始选项 setSize(340, 250); // 设置窗口大小 setBackground(Color.white); setVisible(true); btnchaxun.addActionListener(this); validate(); } //请假浏览 class Panelqingjialiulan extends Panel implements ActionListener {// 请假类 Button btnliulan; TextArea tachaxun; Panelqingjialiulan() { setLayout(null); btnliulan = new Button("浏览职工请假记录"); // 创建按钮 tachaxun = new TextArea(); // 创建多行文本框 tachaxun.setEditable(false); add(btnliulan); add(tachaxun); btnliulan.setBounds(75, 60, 100, 20); tachaxun.setBounds(10, 90, 400, 200); setSize(500, 400); // 设置窗口大小 setBackground(Color.white); setVisible(true); btnliulan.addActionListener(this); validate(); } //请假修改 class Panelqingjiaxiugai extends Panel implements ActionListener { TextField textFieldWorkerName, textFieldWorkerNumber, textFieldqingjiakaishi, textFieldqingjiajieshu, textFieldqingjiatianshu; Label labelWorkerName, labelWorkerNumber, labelqingjiakaishi, labelqingjiajieshu, labelqingjiatianshu; Button btn; Panelqingjiaxiugai() { setLayout(null); btn = new Button("添加"); // 创建“添加”按钮 textFieldWorkerName = new TextField(); textFieldWorkerNumber = new TextField(); textFieldqingjiakaishi = new TextField(); textFieldqingjiajieshu = new TextField(); textFieldqingjiatianshu = new TextField(); labelWorkerName = new Label("职工姓名:"); labelWorkerNumber = new Label("职工编号:"); labelqingjiakaishi = new Label("请假开始日期:"); labelqingjiajieshu = new Label("请假结束日期:"); labelqingjiatianshu = new Label("请假天数:"); add(labelWorkerName); add(textFieldWorkerName); add(labelWorkerNumber); add(textFieldWorkerNumber); add(labelqingjiakaishi); add(textFieldqingjiakaishi); add(labelqingjiajieshu); add(textFieldqingjiajieshu); add(labelqingjiatianshu); add(textFieldqingjiatianshu); add(btn); // 添加“按钮”到窗口面板上 labelWorkerName.setBounds(10, 60, 70, 25); textFieldWorkerName.setBounds(90, 60, 220, 25); labelWorkerNumber.setBounds(10, 90, 70, 25); textFieldWorkerNumber.setBounds(90, 90, 220, 25); labelqingjiakaishi.setBounds(10, 120, 80, 25); textFieldqingjiakaishi.setBounds(90, 120, 220, 25); labelqingjiajieshu.setBounds(10, 150, 80, 25); textFieldqingjiajieshu.setBounds(90, 150, 220, 25); labelqingjiatianshu.setBounds(10, 180, 80, 25); textFieldqingjiatianshu.setBounds(90, 180, 220, 25); btn.setBounds(130, 250, 70, 25); // 设置按钮位置 btn.addActionListener(this); // 设置按钮监听 setSize(340, 300); // 设置窗口大小 setBackground(Color.white); // 设置窗口背景颜色 setVisible(true); validate(); } //请假添加 class Panelqingjiatianjia extends Panel implements ActionListener { TextField textFieldWorkerName, textFieldWorkerNumber, textFieldqingjiakaishi, textFieldqingjiajieshu;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服