考勤管理系统实验报告
考勤管理系统实验报告
考勤管理系统实验报告1. 引言考勤管理是企业管理中的重要环节之一,对于保持工作秩序、提高员工工作效率、分析员工工作状况等方面起着关键作用。
传统的考勤管理方式往往繁琐且容易出现错误,因此,开发一个高效、准确的考勤管理系统能够帮助企业大大简化考勤流程、提高工作效率。
本文档旨在介绍设计和实现一个基于Web的考勤管理系统,并详细介绍其功能、实现过程以及测试结果。
2. 目标考勤管理系统的目标是通过使用电子化手段来记录和管理员工的考勤信息,实现以下功能:•记录员工的考勤时间和地点信息;•自动计算员工的工作时长和加班时长;•提供员工签到、签退、请假等操作;•生成考勤报表和统计分析数据。
3. 设计与实现3.1 技术栈选择为了实现一个高效、可靠的考勤管理系统,我们选择使用以下技术栈:•后端开发语言:Python•前端开发语言:HTML、CSS、JavaScript•后端框架:Django•前端框架:Bootstrap3.2 功能模块考勤管理系统包括以下功能模块:1.用户管理:包括注册、登录、修改密码等功能;2.考勤记录管理:包括员工签到、签退、请假等功能;3.统计分析:包括计算工作时长、加班时长等功能;4.考勤报表生成:根据考勤记录生成不同维度的考勤报表;5.系统管理:包括权限管理、部门管理等功能。
3.3 数据库设计考勤管理系统采用关系型数据库来存储数据。
数据库设计包括以下表:•用户表(User):存储用户的基本信息;•考勤记录表(Attendance):存储员工的考勤记录信息;•假期表(Holiday):存储假期信息;•部门表(Department):存储部门信息。
3.4 页面设计考勤管理系统使用响应式设计,适配不同屏幕大小的设备。
页面设计包括以下界面:1.登录界面:用户输入用户名和密码进行登录;2.首页:显示考勤记录、加班记录等信息的统计概览;3.个人考勤页面:显示个人的考勤记录;4.假期申请页面:用户填写请假申请信息;5.考勤报表页面:根据选择的时间段生成考勤报表。
考勤管理系统实验报告
考勤管理系统实验报告实验报告考勤管理系统1. 实验目的本次实验的目的是建立一个考勤管理系统,实现对员工考勤情况的统计和管理。
通过本次实验,我们可以了解到一些基本的软件开发方法和工具,并学会了如何使用这些工具进行项目的开发。
此外,我们还能够进一步学习和掌握数据库的设计和管理等相关的知识,在实践中了解这些知识的实际应用。
2. 实验内容本次实验的主要内容是开发一个基于Web的考勤管理系统,实现对员工考勤情况的统计和管理。
通过该系统,我们可以完成员工的考勤情况录入,统计和查询等功能。
系统的开发主要包括以下几个方面的内容:(1)数据库设计和管理:我们需要根据业务需求和系统功能,设计出合适的数据库结构,并使用MySQL或其它数据库管理工具来管理数据的存储和查询。
(2)后台逻辑处理:我们需要使用Java或其它编程语言开发后台的逻辑处理程序,完成数据的处理和业务逻辑的实现。
(3)Web前端设计和开发:我们需要使用HTML、CSS、JavaScript等Web开发工具,来设计开发出系统的前端界面,实现与用户的交互和数据的展示。
3. 实验步骤(1)系统需求分析首先,我们需要对系统的需求进行分析和明确,明确出系统的功能和使用场景。
在开发之前,我们需要与客户进行充分的沟通和交流,了解用户的需求和使用场景,然后根据需求进行系统规划和设计。
(2)数据库设计和管理在进行数据库设计的时候,我们需要将系统的各个功能和数据表进行明确的划分和设计。
考勤管理系统的数据库中,需要包含员工信息表、考勤记录表、项目信息表等,这些表需要用到不同的数据字段和数据结构。
我们需要在设计时充分考虑到数据的完整性、准确性和安全性等因素,确保系统的数据能够正确地存储和查询。
(3)后台逻辑处理在完成数据库设计之后,我们需要使用Java等编程语言进行后台的逻辑处理程序的编写。
考勤管理系统后台逻辑程序需要实现员工信息录入、考勤记录的生成和统计,以及业务逻辑的处理等功能。
学生考勤系统实验报告:系统设计
if (i > 0)
{
canLogin = true;
this.Close();
}
else
{
MessageBox.Show("身份验证失败!,请检查用户名和密码!");
_tb.Clear();
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace 学生考勤系统
Not Null
学生姓名
班级名称
char(5)
Not Null
所在班级
课程名称
char(10)
P
Not Null
课程名称
缺勤状态
char(10)
Not Null
缺勤情况
(5)课程信息表course
字段名
字段类型
主/外键
字段约束
说明
课程编号
char(8)
p
Not null
课程编号
课程名称
char(20)
Not Null
所教班级
所教课程
char(20)
Not Null
所教课程
所属学院
char(20)
Not Null
所属学院
(3)考勤表kaoqin
字段名
字段类型
主/外键
字段约束
说明
考勤部实训报告万能模板
## 摘要本文以考勤部实训为背景,详细记录了实训过程中的学习内容、实践操作、心得体会以及总结反思。
通过对考勤管理系统的操作,对员工考勤数据的处理,以及对考勤异常情况的分析和处理,使我对考勤管理有了更为深刻的理解和认识。
## 目录1. 实训目的2. 实训环境3. 实训内容4. 实训过程5. 实训结果6. 实训总结7. 实训反思## 1. 实训目的通过本次考勤部实训,旨在:1. 掌握考勤管理系统的基本操作流程;2. 学会处理员工考勤数据,包括迟到、早退、旷工等异常情况;3. 了解考勤管理的重要性,提高工作效率;4. 培养团队合作精神,提高沟通协调能力。
## 2. 实训环境实训地点:XX公司考勤部实训设备:考勤管理系统、电脑、打印机等## 3. 实训内容1. 考勤管理系统操作:学习如何使用考勤管理系统进行员工考勤数据的录入、查询、统计和导出等操作;2. 考勤数据处理:学习如何处理员工考勤数据,包括迟到、早退、旷工等异常情况;3. 考勤异常情况分析:分析考勤异常情况的原因,并提出相应的解决措施;4. 考勤管理文件整理:学习如何整理考勤管理文件,包括考勤报表、考勤通知等。
## 4. 实训过程### 4.1 考勤管理系统操作在实训过程中,我们首先学习了考勤管理系统的基本操作流程。
通过实际操作,我们掌握了如何录入员工考勤数据、查询员工考勤记录、统计员工考勤情况以及导出考勤报表等功能。
### 4.2 考勤数据处理在实训过程中,我们学习了如何处理员工考勤数据。
针对迟到、早退、旷工等异常情况,我们了解了相应的处理方法,并学会了如何将异常情况记录在考勤管理系统中。
### 4.3 考勤异常情况分析在实训过程中,我们分析了考勤异常情况的原因,如员工个人原因、公司制度执行不力等。
针对这些原因,我们提出了相应的解决措施,如加强员工考勤意识教育、完善公司考勤制度等。
### 4.4 考勤管理文件整理在实训过程中,我们学习了如何整理考勤管理文件。
考勤管理实习报告
考勤管理实习报告一、实习背景及目的随着社会的发展和科技的进步,企业对考勤管理的需求日益增长。
为了提高企业的管理效率,降低人力成本,我选择了考勤管理作为实习课题。
本次实习的主要目的是了解并掌握考勤管理的基本原理和方法,通过实际操作,提高自己的实践能力。
二、实习内容及过程实习期间,我主要负责企业的考勤管理工作。
具体内容包括:员工考勤数据的收集、整理和分析;考勤制度的制定和实施;考勤异常的处理;考勤系统的使用和维护等。
在实习过程中,我首先了解了企业的考勤制度和相关规定,然后根据实际情况,协助主管制定了新的考勤管理制度。
新制度主要针对之前的漏洞和问题,如迟到、早退、请假等,进行了详细的规定和说明。
同时,我还负责收集和整理员工考勤数据,对异常情况进行分析和处理。
在这个过程中,我学会了如何使用考勤系统,并对其进行了维护和更新。
三、实习收获及反思通过本次实习,我对考勤管理有了更深入的了解,收获颇丰。
首先,我学会了如何制定和实施考勤制度,掌握了考勤数据的管理和分析方法。
其次,我明白了考勤管理在企业运营中的重要性,以及对员工工作积极性的影响。
最后,我提高了自己的沟通协调能力,学会了如何处理考勤异常情况。
然而,在实习过程中,我也发现了自己的不足之处。
例如,在处理考勤异常时,有时会因为缺乏经验而犹豫不决;在收集和整理考勤数据时,偶尔会出现疏漏。
这些问题都需要我在今后的工作中不断学习和提高。
四、实习总结总之,本次考勤管理实习让我收获颇丰,不仅提高了自己的专业素养,也增强了自己的实践能力。
在今后的学习和工作中,我将继续努力,不断完善自己的考勤管理能力,为企业的发展贡献自己的力量。
学生考勤系统系统分析报告书写实验
学生考勤管理信息系统系统分析报告书写实验学院:13级医药管理学院班级:信息管理2班姓名:一、引言1、系统名称,开发目标,主要功能等。
○1.系统名称:学生考勤管理信息系统○2 开发目标:建立的考勤管理系统,要把学生的考勤记录、老师的考勤、学生的选课信息等日常管理工作实行计算机统一管理,以提高工作效率和管理水平。
本系统的目标是实现对考勤管理的计算机化和办公自动化。
考勤管理系统的主要功能如下:a. 对老师信息的增加、删除、修改;b. 对学生信息的增加、删除、修改;c. 对考勤记录信息的登记。
○ 3主要功能:有专门的考勤员,如班长,对每个班级的学生周一到周五上课时间进行考勤,学生有请假等情况,考勤情况,教师需要对考勤人员上传的考勤信息进行确认,每个系部的辅导员老师和上课教师可以对班级的考勤情况和和班级课表进行查看,能统计出学生出勤率。
另外,学生、辅导员、授课老师都可以看到自己的信息,还有就是提供了一些请假信息查询、出勤情况查询以及一些相关规定产生的处理结果。
2、系统分析的原则和主要任务。
○1.原则:1.整体性原则,这是系统分析的一个基本思想,就是要把所要研究的对象看作一个有机的整体,以整体效益为目标。
2.层次性原则,任何一个系统都是由一定要素组成的整体。
3.相关性原则,系统与系统之间、系统各要素之间、系统和要素之间都是相互联系、相互作用的,具有相关性特点。
○2主要任务:在充分认识原信息系统的基础上,通过问题识别、可行性分析、详细调查、系统化分析,最终完成新系统的逻辑方案设计,或称逻辑模型设计。
逻辑方案不同于物理方案,前者解决“做什么”的问题,是系统分析的任务;后者解决“怎么做”的问题,是系统设计的任务。
3、参考文献资料:百度、知乎、搜狐等网络查询。
二、现行系统分析调查1、现行系统行业调查:采取问卷调查和统计的方式,调查对象为在校学生与任课教师。
调查范围为高校。
2、现行系统分析:用户需求分析:用户是系统的最终使用者,本系统包括学生、班主任、任课老师、院系领导、学校领导、系统管理员六类用户。
考勤管理系统实验报告-南通大学
计算机科学与技术学院考勤管理系统课程设计姓名:夏健&蒯程学号: 1013042029&1013042028专业: 软件工程101指导老师: 陈继红时间:2013.7.1三数据库设计:KQJL (考勤记录):ID 时间类别员工名称考勤时段考勤说明记录人(默认登录人)JQSQ(假期申请):ID 员工名称开始时间结束时间时长假期类别假期原因CHSQ(出差申请):ID 员工名称出差时间出差天数同行人员目的地出行方式出差理由JBSQ(加班申请):ID 员工名称申请时间加班时间加班时长加班原因TXSQ(调休申请):ID 员工名称申请时间调休时间起调休时间终未休时长调休时长调休原因审批人YGXX(员工信息): 姓名密码类型SJZD (数据字典):ID 类型说明具体信息四具体实现与截图说明4.1界面设计登陆界面:验证码出错后的界面:登陆后进入主界面:考勤记录的功能图:说明:用户和时间都是登录人的信息自动添加。
一开始有几个按钮是灰的,当双击表中的某行时才可以触发。
表示修改或者删除表中的记录。
主要流程:界面加载的时候用户可以添加功能。
填写相关信息之后后台读出所有的信息之后插入表中,然后再读到界面的表中。
当用户双击界面中的某行时当前行的信息就读到控件中用户就有了修改删除的功能了。
假期申请的功能截图:其后的出差,加班,调休基本都差不多,只是在一些细节上和表的内容不同而已截图如下:考勤查询是一个比较重要的涉及到多表的查询。
而且涉及的细节也比较多。
界面如下:多表查询涉及到的SQL语句如下:select xingm,qingj,chuc,jiaban,tiaox,chidao,zaotui,loudk,zaohui,zaocao,huiyi from (select xm as xingm from YGXX)n "+"left join ( select xm,sum(CONVERT(float,jqsc)) as qingj from JQSQ whereconvert(smalldatetime,sqsj_start) between convert(smalldatetime,'" + datefrom + "') and convert(smalldatetime,'" + dateto + "') group by JQSQ.xm )a on n.xingm=a.xm " +"left join ( select xm,sum(chts) as chuc from CHSQ where convert(smalldatetime,chsj) between convert(smalldatetime,'" + datefrom + "') and convert(smalldatetime,'" + dateto + "') group by CHSQ.xm )b on n.xingm=b.xm " +"left join ( select xm,sum(txsc) as tiaox from TXSQ where convert(smalldatetime,txsj_start) between convert(smalldatetime,'" + datefrom + "') and convert(smalldatetime,'" + dateto + "') group by TXSQ.xm )c on n.xingm=c.xm " +"left join ( select xm,sum(jbsc) as jiaban from JBSQ where convert(smalldatetime,jbsj) between convert(smalldatetime,'" + datefrom + "') and convert(smalldatetime,'" + dateto + "') group by JBSQ.xm )x on n.xingm=x.xm " +"left join ( select xm,count(*) as chidao from KQJL where kqxx='迟¨´到Ì?' andconvert(smalldatetime,kqsj) between convert(smalldatetime,'" + datefrom + "') andconvert(smalldatetime,'" + dateto + "') group by KQJL.xm )d on n.xingm=d.xm " +providerName="System.Data.SqlClient" /></connectionStrings><appSettings ><add key="connstr" value="Data Source=KUAICHENG-PC\KC;Initial Catalog=kaoqin;Integrated Security=True" /></appSettings></configuration>当点击上面的任意tab标签显示的就是当前行的员工在选择的时间内的具体信息。
学生上课考勤管理系统实习报告
就技术力量来说,邹龙辉的知识面较广,动手能力较强;张慧娟的理论性及编程能力较强;张春光计算机常识较多,善于提出问题;并且,媒体播放器已经很普遍,我们对其结构及功能的实现比较了解,我们可以完成此次开发。
_最小化按钮_被单击() ‘窗口最小化到系统任务栏
_最大化按钮_被单击() ‘实现全屏播放
_关闭按钮_被单击() ‘关闭窗口的同时播放列表框里的音 乐表也被保存在运行目录里的文件里,此文件格式是ini
_展开收缩按钮_被单击() ‘展开和收缩列表窗,并且在展开的时候自动和启动窗口对齐
_播放器1_打开状态被改变() ‘取当前媒体的信息,例如音乐的时间长度,然后赋值给进度条
整个系统由于是自行开发,自行使用,所以系统本身不存在法律上的版权争议。在服务器软件方面,应该使用正版软件,因为整个系统尽管是开发给内部使用,但它毕竟很多部分还是要依靠Internet 的,一旦服务器连接到Internet 上,它的操作系统可能会被Microsoft 跟踪,如果不是正版软件,将不得不面临民事诉讼的风险。
8,个性进度条:设计不同以往的进度条和音量控制条及其滑块,使整个播放器风格统一又区别其他播放器,力求本播放器简约时尚。
9,显示时间模块:一般情况下,应用软件很少会显示当前的日期和时间,即使是操作系统也很少自动显示日期,而用户在使用电脑时翻看是为了方便用户随时可以看到当前的日期和时间(显示年、月、日、时、分、秒),同时也为了增加本软件的实用性和趣味性。
五、课题研究预期效果:
我们在决定运用易语言编写一个媒体播放器时,就知道会有难度,因为我们都没有接触过易语言,但是看我们有信心,因为我们有编程基础的同时我们还有兴趣和爱好。刚开始的时候,我们会为实现的一个小小功能高兴一整天,也会因为熬了一天还是没写出那个功能好而难过。有时候我们会坐上一天,反复的运行测试修改几十次,只是为了使那个功能更便捷更完美。
考勤打卡系统实验报告
一、实验目的本次实验旨在了解和掌握考勤打卡系统的基本原理、功能设计以及实际操作,通过搭建一个基于STM32微控制器的考勤打卡系统,实现员工考勤信息的自动采集、存储、查询和统计,提高企业或单位的人力资源管理水平。
二、实验环境1. 硬件环境:- STM32F103C8T6微控制器- MFRC522射频卡模块- 0.96寸OLED显示屏- 四个按键- 蜂鸣器- 5V电源- 程序下载器2. 软件环境:- Keil uVision5开发环境- C语言编程- 串口通信三、实验原理1. 考勤打卡系统主要由以下模块组成:- 读写卡模块:用于读取员工射频卡信息,实现员工身份识别。
- 显示模块:用于显示系统状态、员工信息、时间等信息。
- 键盘模块:用于输入管理员指令,实现系统设置和管理。
- 语音模块:用于播放语音提示音,提醒员工打卡。
- 串口通信模块:用于将考勤数据上传至服务器或存储设备。
2. 系统工作流程:- 初始化:设置系统参数,包括读写卡模块、显示屏、按键、蜂鸣器等。
- 身份识别:读取射频卡信息,判断是否为管理员或员工。
- 考勤打卡:根据员工身份,记录上下班时间,并存储到数据库中。
- 数据查询与统计:管理员可通过查询功能查看员工考勤记录,进行数据统计和分析。
四、实验步骤1. 硬件连接:按照实验要求,将STM32微控制器、MFRC522射频卡模块、OLED显示屏、按键、蜂鸣器等硬件连接到开发板上。
2. 软件编程:- 在Keil uVision5开发环境中创建项目,编写C语言程序。
- 编写初始化函数,初始化各个硬件模块。
- 编写读写卡模块程序,实现射频卡信息读取。
- 编写显示模块程序,实现系统状态、员工信息、时间等信息显示。
- 编写键盘模块程序,实现管理员指令输入。
- 编写语音模块程序,实现语音提示音播放。
- 编写串口通信模块程序,实现考勤数据上传或存储。
3. 系统测试:- 将编写好的程序下载到STM32微控制器中。
智能考勤实训报告
一、实训背景随着科技的不断发展,智能考勤系统在我国各行业中的应用越来越广泛。
为了提高我国企业的人力资源管理水平,提升工作效率,减少人力成本,我国众多企业纷纷引进智能考勤系统。
为了更好地了解和掌握智能考勤系统的操作和应用,我参加了本次智能考勤实训。
二、实训目的1. 熟悉智能考勤系统的基本功能;2. 掌握智能考勤系统的操作方法;3. 学会运用智能考勤系统解决实际问题;4. 提高自身在人力资源管理方面的实践能力。
三、实训内容1. 智能考勤系统的基本功能(1)员工信息管理:包括员工基本信息、考勤记录、请假记录等;(2)考勤规则设置:包括打卡规则、请假规则、加班规则等;(3)考勤数据统计:包括个人、部门、公司等不同维度的考勤数据统计;(4)工资计算:根据考勤数据自动计算工资;(5)报表生成:生成考勤统计报表,便于管理人员查看和分析。
2. 智能考勤系统的操作方法(1)员工信息管理:在系统中录入员工基本信息,设置考勤记录、请假记录等;(2)考勤规则设置:根据企业实际情况,设置打卡规则、请假规则、加班规则等;(3)考勤数据统计:通过系统查询、筛选、导出等操作,获取个人、部门、公司等不同维度的考勤数据;(4)工资计算:根据考勤数据,自动计算员工工资;(5)报表生成:生成考勤统计报表,包括考勤明细、考勤汇总等。
3. 实际问题解决(1)请假处理:员工请假时,通过系统提交请假申请,审批通过后自动计算请假天数及扣款;(2)出差处理:员工出差时,通过系统制定出差计划,申请出差,审批通过后记录出差情况;(3)外勤处理:员工外出勤务,未能打卡时,由上级经理审批后,自动导入到人力资源部审批;(4)补卡处理:员工因特殊原因未打卡,由上级经理审批后,自动导入到人力资源部审批;(5)调班处理:因班别调整,支持数据的批量处理,由上级经理审批后,自动导入到人力资源部审批;(6)加班处理:记录员工加班加点情况,将加点时间折算成工作日,提供加班后的补休管理,根据加班时点状态自动判断加班工资计算倍数。
校园考勤系统实训报告
随着信息化时代的到来,教育行业也正在经历一场深刻的变革。
为了提高校园管理效率,提升学生管理质量,我校开展了校园考勤系统实训项目。
本项目旨在通过实训,让学生了解和掌握校园考勤系统的设计、实施与维护,为今后从事相关工作奠定基础。
二、实训目的1. 了解校园考勤系统的基本概念、工作原理和功能特点。
2. 掌握校园考勤系统的设计、开发、实施和维护方法。
3. 提高学生的团队协作能力和实践操作能力。
4. 培养学生具备一定的创新意识和解决实际问题的能力。
三、实训内容1. 系统需求分析:通过调研和分析,明确校园考勤系统的功能需求、性能需求和安全性需求。
2. 系统设计:根据需求分析结果,设计系统的架构、数据库、界面和功能模块。
3. 系统开发:使用Java、Python等编程语言进行系统开发,实现系统的各项功能。
4. 系统实施:将开发完成的系统部署到校园网络中,进行实际应用。
5. 系统维护:对系统进行定期检查、更新和优化,确保系统稳定运行。
四、实训过程1. 系统需求分析阶段:通过查阅相关资料、与教师和同学交流,明确了校园考勤系统的需求。
2. 系统设计阶段:采用UML建模工具,设计系统的架构、数据库、界面和功能模块。
3. 系统开发阶段:小组分工合作,完成系统的各个功能模块的开发。
4. 系统实施阶段:将系统部署到校园网络中,进行实际应用。
5. 系统维护阶段:定期检查系统运行情况,及时解决出现的问题。
1. 成功开发了一套校园考勤系统,实现了学生考勤、教师考勤、门禁控制等功能。
2. 提高了学生的团队协作能力和实践操作能力。
3. 培养了学生的创新意识和解决实际问题的能力。
4. 为学校提供了高效、便捷的校园考勤管理工具。
六、实训总结1. 通过本次实训,使学生掌握了校园考勤系统的设计、开发、实施和维护方法。
2. 提高了学生的实践操作能力和团队协作能力。
3. 培养了学生的创新意识和解决实际问题的能力。
4. 为学校提供了高效、便捷的校园考勤管理工具,为校园信息化建设做出了贡献。
电子考勤系统实验报告(3篇)
第1篇一、实验目的本次实验旨在通过设计和实现一个电子考勤系统,了解电子考勤系统的基本原理和开发流程,掌握相关技术,提高实际操作能力。
通过本实验,学生应能够熟练使用相关技术,实现考勤数据的录入、查询、统计和分析等功能。
二、实验内容1. 系统需求分析(1)功能需求电子考勤系统应具备以下功能:1)考勤数据录入:系统应能实现员工打卡、请假、加班等考勤数据的录入;2)考勤数据查询:系统应能实现按时间、部门、岗位等条件查询考勤数据;3)考勤数据统计:系统应能实现考勤数据的统计和分析,如迟到、早退、缺勤等;4)考勤数据导出:系统应能将考勤数据导出为Excel、CSV等格式;5)系统管理:系统应具备用户管理、权限管理、数据备份与恢复等功能。
(2)性能需求1)系统应具备良好的稳定性,能够保证在高峰时段正常运行;2)系统应具备较高的安全性,防止数据泄露和非法访问;3)系统应具备良好的可扩展性,方便后续功能扩展和升级。
2. 系统设计(1)系统架构本系统采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java语言进行开发。
数据库采用MySQL,系统运行在Tomcat服务器上。
(2)系统模块设计1)用户模块:实现用户登录、注册、修改密码等功能;2)考勤模块:实现考勤数据录入、查询、统计和分析等功能;3)权限模块:实现用户权限管理和数据备份与恢复等功能;4)数据模块:实现考勤数据的存储、查询、统计和分析等功能。
3. 系统实现(1)前端开发前端使用HTML、CSS、JavaScript等技术实现系统界面,包括登录、注册、考勤录入、查询、统计等功能模块。
(2)后端开发后端使用Java语言进行开发,采用Spring Boot框架进行开发,实现系统核心功能。
(3)数据库设计数据库采用MySQL,设计考勤表、用户表、权限表等数据表,实现数据存储和查询。
4. 系统测试(1)功能测试对系统各个功能模块进行测试,确保系统功能完整、稳定。
学生打卡考勤分析实验报告
学生打卡考勤分析实验报告1. 引言考勤是学校的一项重要工作,通过记录学生的出勤情况,可以及时发现学生的旷课、迟到等问题,对于提高学生的学习积极性和把握学生的学习情况具有重要意义。
传统的考勤方式多为老师手动记录学生的出勤情况,这种方式存在着效率低、易出错的问题。
为了解决这一问题,本实验使用打卡考勤系统来记录学生的出勤情况,并对考勤数据进行分析,提供参考依据。
2. 实验目的本实验旨在探索使用打卡考勤系统记录学生出勤情况,并通过数据分析对考勤数据进行处理和分析,以提供对学生出勤情况的评估和参考依据。
3. 实验步骤3.1 打卡考勤系统的搭建本实验选用了一款开源的打卡考勤系统,通过部署在校园服务器上,搭建了一个可供学生使用的打卡考勤系统。
系统使用了学生的学号和密码进行登录,每次课程开始时,学生可以在系统上进行打卡操作。
3.2 数据采集在每次课程中,学生通过系统进行打卡操作后,系统会自动记录下学生的打卡时间和相应的学号信息。
通过对系统的后台数据库进行查询操作,我们可以获取到每个学生的打卡记录。
3.3 数据分析通过对考勤数据的处理和分析,可以获得学生的出勤率、迟到情况、旷课情况等信息。
本实验选取了几个指标进行分析,为了方便分析和展示,使用了数据可视化工具,将分析结果以图表的形式进行展示。
4. 实验结果经过数据分析,我们得出了以下几个结论:1. 学生的出勤率呈现正态分布,绝大部分学生的出勤率在80%以上;2. 学生的迟到次数较少,大多数学生迟到次数少于3次;3. 学生的旷课情况较为严重,有一部分学生旷课次数超过了5次。
5. 分析讨论从实验结果来看,学生的出勤情况存在一定的问题。
学生的出勤率虽然大部分在80%以上,但仍有一些学生出勤率较低,需要及时关注并采取相应措施提高其出勤率。
迟到次数虽然较少,但在实验数据中仍有一定比例的学生存在迟到情况,需要注意纠正这一问题。
而旷课情况较为严重,某些学生旷课次数居高不下,可能需要制定更为严格的考勤制度来解决这一问题。
考勤工作的实习报告
一、实习目的本次实习的主要目的是为了将所学理论知识与实践相结合,深入了解企业考勤管理工作的实际操作流程,掌握考勤系统的应用,提高自己的组织协调能力和团队协作精神。
同时,通过实习,了解企业文化,增强职业素养,为今后从事相关工作奠定基础。
二、实习时间2023年6月1日至2023年8月31日三、实习地点XX科技有限公司人力资源部四、实习单位及部门实习单位:XX科技有限公司实习部门:人力资源部五、实习主要内容1. 考勤管理制度学习在实习期间,我首先对公司的考勤管理制度进行了深入学习,了解了考勤工作的基本原则、考勤制度、考勤流程、考勤处理方法等内容。
通过学习,我对考勤工作有了全面的认识。
2. 考勤数据录入与统计在实习过程中,我负责协助人力资源部完成考勤数据的录入与统计工作。
具体包括:(1)核对员工考勤记录,确保数据准确无误;(2)按照规定时间完成考勤数据的汇总;(3)根据考勤数据计算员工的加班费、请假天数等;(4)制作考勤报表,为领导提供决策依据。
3. 考勤异常处理在实习期间,我参与了考勤异常的处理工作。
具体包括:(1)收集考勤异常情况,如迟到、早退、旷工等;(2)与员工沟通,了解异常原因,进行核实;(3)根据公司规定,对考勤异常进行处理,如扣除工资、警告等。
4. 考勤系统操作为了提高工作效率,公司采用了考勤系统。
在实习期间,我学习了考勤系统的操作方法,包括:(1)员工信息录入与修改;(2)考勤数据的录入与统计;(3)考勤报表的生成与打印。
六、实习总结与体会1. 考勤工作的重要性通过实习,我深刻认识到考勤工作在企业中的重要性。
考勤数据是衡量员工工作状态的重要依据,对于企业的人力资源管理、薪酬福利管理等方面具有重要意义。
2. 考勤管理的规范性在实习过程中,我了解到公司对考勤管理有严格的规定,包括考勤制度、考勤流程、考勤处理方法等。
这些规定确保了考勤工作的规范性和公正性。
3. 考勤系统的便捷性考勤系统的应用,极大地提高了考勤工作的效率。
考勤管理系统实验报告
考勤管理系统实验报告考勤管理系统实验报告一、引言考勤管理是现代企业管理中非常重要的一环,对于企业来说,合理的考勤管理可以提高员工的工作效率和纪律性,避免拖延和迟到等现象的发生。
随着信息技术的发展和应用,考勤管理系统逐渐得到广泛应用。
本实验旨在设计和实现一个基于电子化的考勤管理系统,提高考勤管理的效率和准确性。
二、实验目的1. 了解考勤管理系统的基本原理和流程;2. 掌握考勤管理系统的设计和实现方法;3. 提高学生的软件开发能力。
三、实验内容1. 系统需求分析:明确系统的功能和要求,包括考勤打卡、考勤记录查询和统计、请假审批等;2. 系统设计:根据需求分析结果,设计系统的整体结构和模块划分;3. 数据库设计:设计系统所需的数据库表结构,包括员工信息表、考勤记录表、请假记录表等;4. 系统实现:根据系统设计和数据库设计,使用合适的编程语言和技术,实现考勤管理系统;5. 系统测试:对系统进行功能测试和性能测试,确保系统的稳定性和可靠性;6. 实验总结与展望:总结本次实验的经验和教训,并对系统的改进和扩展提出展望。
四、实验步骤1. 系统需求分析:通过与老师和同学的讨论,明确系统的功能和要求。
系统的主要功能包括员工打卡、考勤记录查询和统计、请假审批等。
2. 系统设计:根据需求分析结果,设计系统的整体结构和模块划分。
系统包括用户管理模块、考勤管理模块、请假管理模块等。
3. 数据库设计:根据系统设计,设计系统所需的数据库表结构。
员工信息表包括员工编号、姓名、部门等字段;考勤记录表包括员工编号、打卡时间、打卡状态等字段。
4. 系统实现:根据系统设计和数据库设计,使用Java语言和MySQL数据库,实现考勤管理系统。
通过编写Java代码和SQL语句,将系统的各个模块逐步实现。
5. 系统测试:对系统进行功能测试和性能测试。
通过模拟各种情况下的数据输入和操作,测试系统的稳定性和准确性。
6. 实验总结与展望:总结本次实验的经验和教训,并对系统的改进和扩展提出展望。
学生考勤系统实验报告:系统实施
(3)超前请假实施测试:开始时间选择一个与当前时间相差一个大于7天的日期请假。测试结果:提示只能提前7天请假的错误信息。
(4)超后请假实施测试:在开始时间中选择一个当前系统时间以前开始日期请假。测试结果:提示不能请过去时间的假的错误信息。
实验总结:
通过本次学生考勤信息系统的实施操作实验,是我们熟悉并掌握了以下内容:
(1)学生考勤管理系统应用程序的登录界面的实施;
(2)创建应用程序的主界面并进行菜单设计的实施测试的方法以及发生错误时修改的措施;
(3)熟悉并初步掌握了统计报表的程序设计和打印模块的程序设计实施的方法;
(4)知道了如何制作简单的应用程序帮助系统;
(1)空值测试:在不输入原始密码、新密码、确认密码或部分为空的情况下,直接点击修改密码。测试结果:提示请输入原始密码的错误信息。
(2)错误原始密码测试:输入错误原始密码,新密码、确认密码一致的测试。测试结果:提示原始密码不正确的错误信息。
(3)确认密码不正确的测试:输入正确的原始密码,而确认密码不正确的测试。测试结果:提示确认密码不正确的错误信息。
3、学生考勤信息查询界面
学生角色进入此界面后可以查询自己是否迟到、未到、请见等基本考勤信息。
4、关于界面
此界面的实施主要显示本小组开发此系统的小组成员的基本信息。
请假系统是学生用户的核心功能,由于涉及的用户比较多,此部分的测试是在几个同学的配合下完成,主要完成以下几个测试:
(1)空值实施测试:在请假开始时间、结束时间、请假原因都为空或部分为空的情况下,直接点提交数据在线请假。测试结果:系统拒绝提交数据,并能正确的做出相应的提示,如**不能为空的错误信息。
考勤管理的实验报告
一、实验背景随着信息技术的飞速发展,考勤管理已经成为企业管理中不可或缺的一部分。
传统的手工考勤方式存在诸多弊端,如易出错、效率低、管理难度大等。
为了提高企业考勤管理的效率,降低管理成本,我们开展了考勤管理系统的实验研究。
二、实验目的1. 熟悉数据库的基本概念和操作方法;2. 掌握SQL语言在数据库中的应用;3. 熟悉考勤管理系统的设计思路和实现方法;4. 培养团队合作能力和动手实践能力。
三、实验内容1. 数据库设计(1)需求分析根据企业考勤管理的需求,分析出以下主要功能:①员工信息管理:包括员工的基本信息、部门信息、岗位信息等;②考勤管理:包括打卡记录、请假记录、加班记录等;③考勤统计:根据考勤数据生成考勤报表;④权限管理:设置不同角色的权限,保证数据安全。
(2)数据库设计根据需求分析,设计如下数据库表:①员工信息表(Employee):包含员工编号、姓名、性别、出生日期、部门编号、岗位编号等字段;②部门信息表(Department):包含部门编号、部门名称、上级部门编号等字段;③岗位信息表(Position):包含岗位编号、岗位名称、岗位描述等字段;④打卡记录表(ClockIn):包含打卡记录编号、员工编号、打卡时间、打卡类型等字段;⑤请假记录表(Leave):包含请假记录编号、员工编号、请假时间、请假原因等字段;⑥加班记录表(Overtime):包含加班记录编号、员工编号、加班时间、加班原因等字段;⑦权限表(Role):包含角色编号、角色名称、权限描述等字段。
2. 系统实现(1)系统界面设计根据功能需求,设计如下界面:①登录界面:用户输入用户名和密码,进入系统;②主界面:显示系统菜单,用户可根据需求选择相应功能;③员工信息管理界面:显示员工信息列表,用户可进行增删改查操作;④考勤管理界面:显示打卡记录、请假记录、加班记录等,用户可进行查询和修改操作;⑤考勤统计界面:根据考勤数据生成考勤报表,用户可查看报表内容;⑥权限管理界面:设置不同角色的权限,保证数据安全。
动态考勤设计实验报告(3篇)
第1篇一、实验背景与目的随着科技的发展,传统的纸质考勤方式已经无法满足现代学校管理的需求。
为了提高考勤效率,确保学生出勤率,同时减轻教师的工作负担,我们设计了一套动态考勤系统。
本实验旨在通过设计、实现和测试动态考勤系统,验证其可行性,并对其性能进行评估。
二、实验设计1. 设计目的- 提高考勤效率,实现自动化考勤。
- 减轻教师工作负担,提高管理效率。
- 确保学生出勤率,保障教学质量。
2. 设计内容- 系统架构设计:包括前端界面、后端数据库和中间件。
- 功能模块设计:学生信息管理、课程信息管理、考勤记录、考勤统计和查询。
- 技术选型:前端采用HTML、CSS、JavaScript等技术,后端采用Java语言和MySQL数据库。
3. 系统功能- 学生信息管理:录入、修改和删除学生信息。
- 课程信息管理:录入、修改和删除课程信息。
- 考勤记录:实时记录学生出勤情况。
- 考勤统计:按班级、课程、日期等条件统计出勤情况。
- 查询功能:查询学生出勤记录、班级出勤情况等。
三、实验步骤1. 需求分析- 调研学校考勤现状,分析现有考勤方式的优缺点。
- 确定系统功能需求,明确系统目标。
2. 系统设计- 设计系统架构,确定技术选型。
- 设计系统界面,包括登录界面、主界面、功能模块界面等。
- 设计数据库结构,包括学生信息表、课程信息表、考勤记录表等。
3. 系统实现- 前端开发:使用HTML、CSS、JavaScript等技术实现系统界面。
- 后端开发:使用Java语言和MySQL数据库实现系统功能。
- 系统测试:对系统进行功能测试、性能测试和兼容性测试。
4. 系统部署- 将系统部署到服务器,确保系统稳定运行。
- 对用户进行培训,确保用户能够熟练使用系统。
四、实验结果与分析1. 实验结果- 动态考勤系统成功实现了考勤自动化,提高了考勤效率。
- 系统界面简洁、美观,操作方便,用户满意度高。
- 系统运行稳定,性能良好,能够满足学校考勤需求。
签到考勤系统实训报告
#### 一、实训背景随着信息化管理的普及,传统的考勤方式已无法满足现代企业对考勤管理的需求。
为提高考勤管理的效率,降低人力成本,提升企业信息化管理水平,本项目开展了基于Wi-Fi定位和生物识别技术的签到考勤系统实训。
#### 二、实训目标1. 掌握签到考勤系统的基本原理和设计方法。
2. 熟悉Wi-Fi定位和生物识别技术在考勤系统中的应用。
3. 学会使用相关开发工具和技术,实现签到考勤系统的开发。
4. 提高团队协作能力和项目管理能力。
#### 三、实训内容1. 需求分析- 分析企业考勤管理的现状和需求。
- 确定签到考勤系统的功能模块,包括:登录、签到、签退、请假、公告、通讯录等。
2. 系统设计- 设计系统架构,包括前端、后端、数据库等。
- 确定技术选型,如前端使用HTML、CSS、JavaScript,后端使用Python、Django,数据库使用MySQL等。
3. 系统实现- Wi-Fi定位考勤模块- 利用Wi-Fi信号强度和接入点信息进行定位。
- 通过手机APP或网页端实现签到和签退功能。
- 生物识别考勤模块- 采用人脸识别、指纹识别等技术实现考勤。
- 用户注册时,录入人脸或指纹信息,建立数据库。
- 系统功能实现- 登录功能:用户输入账号密码进行登录。
- 签到/签退功能:根据用户所在位置和时间,自动判断签到/签退状态。
- 请假功能:用户提交请假申请,管理员审批。
- 公告功能:管理员发布公告,用户查看。
- 通讯录功能:存储员工信息,方便联系。
4. 系统测试- 进行功能测试,确保系统各项功能正常运行。
- 进行性能测试,确保系统响应速度和稳定性。
- 进行安全测试,确保系统数据安全。
#### 四、实训成果1. 完成了基于Wi-Fi定位和生物识别技术的签到考勤系统。
2. 系统功能完善,包括登录、签到、签退、请假、公告、通讯录等。
3. 系统运行稳定,响应速度快,用户界面友好。
#### 五、实训总结1. 技术收获- 掌握了Wi-Fi定位和生物识别技术在考勤系统中的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第一章信息系统概况 (3)1.1 选题介绍 (3)1.2 课程设计小组基本情况介绍.................... 错误!未定义书签。
1.2.1课程设计小组成员的基本情况介绍........ 错误!未定义书签。
1.2.2课程设计小组前期的准备情况............ 错误!未定义书签。
1.2.3课程设计小组各成员所承担的课程设计的任务.. 错误!未定义书签。
第二章信息系统分析 (4)2.1 可行性分析 (4)2.1.1 技术可行性分析 (4)2.1.3 社会因素可行性分析 (5)2.1.4 可行性分析结论 (5)2.2 客户需求分析 (5)2.3 系统分析部分 (7)2.3.1 业务流程图 (7)2.3.2 数据流程图 (7)2.3.3 E-R图 (9)2.3.4 数据字典 (10)第三章信息系统设计 (12)3.1 功能结构图设计 (12)3.2 输入输出设计 (12)3.3 数据库结构设计 (13)3.3.1 概念设计 (13)3.3.1 逻辑结构设计设计 (14)3.4 代码设计 (16)第四章信息系统实施 (17)4.1 源程序 (17)4.1.1 添加用户 (17)4.1.2 修改密码 (17)4.1.3 出差情况 (17)4.1.4 添加部门 (19)4.1.5 部门管理 (20)4.1.6 更新部门 (22)4.1.7 员工考勤登记 (23)4.1.8 请假情况 (35)4.1.9 上班时间设置 (36)4.1.10 上班情况 (37)4.1.11 用户登入 (39)4.1.12 添加员工 (39)4.1.13 员工管理 (42)4.1.14 修改员工 (45)4.1.15 主界面 (47)4.3 模拟运行数据 (50)4.4 系统使用说明书 (54)第五章参考书籍 (55)第一章信息系统概况1.1 选题介绍当今社会,计算机已经十分普及,性能也日趋完善。
它已经被应用于许多领域。
比如说,小到图书馆的图书管理,超市或网吧的收费管理,KTV的点歌系统,大到航空、铁路的售票,全国人口户籍的管理等等。
随着现代科技的进步,用计算机来进行考勤的管理也成为现代化企业运作必不可少的一部分。
在过去我们的考勤工作都是人工完成的,不仅浪费了很多的人力跟物力,而且无法保证其准确性和透明度,给企业的管理带来了许多的不便。
现在利用计算机来管理我们的考勤工作,大大降低了工作人员的工作量,提高了工作效率,使原本复杂和枯燥无味的工作变得简单而轻松了,而且也实用、安全。
计算机技术特别是数据库技术的发展为企业建立管理信息系统,甚至对改变管理思想起着不可估量的作用。
实践证明信息技术已在企业的管理层面扮演越来越重要的角色。
通过考勤系统我们能很容易地对公司员工的信息有一个基本的了解,可以很方便地知道员工的出勤情况,通过对员工出勤信息的了解,就能计算出员工的实际工资。
一切的统计和计算都由计算机代为管理了,考勤信息管理系统对企业的合理化管理起到了很大的作用,它为企业信息化的建设打响了头炮,而企业的信息化建设已成为现代各个企业发展的需要。
所以说,考勤管理系统的开发具有非常重要的意义。
第二章信息系统分析2.1 可行性分析目前,计算机在我国的考勤管理工作中,主要可用来进行报表处理,档案管理,文书编辑,信息查询,综合分析。
查询统计作为考勤管理的一个重要组成部分,是通过对考勤情况的调查,整理和分析,了解考勤情况的发展趋势,为各级领导机关制定考出勤的方针,政策,加强干部管理,改革干部制度提供准确数字的依据。
其工作除涉及到干部的基本情况统计之外,还包括职工的工资统计,职工的考勤情况统计,职工的奖惩情况统计,职工的出差情况统计,职工的请假情况统计等方面,其涉及的面之广,数据量之大可想而知,若利用手工进行考勤的统计工作,大致要经过考勤统计查询,考勤的统计资料的整理,考勤统计分析三个过程,但这种手工统计过程,存在着几个明显的问题,比如说统计资料缺乏准确性,及时性,需要花费大量的人力,物力,财力等。
手工方法所表现出来的种种劣势,使人们慢慢意识到管理现代化已成为当代社会发展的一股不可抗拒的洪流。
在管理现代化的浪潮中,考勤管理现代化也势在必行。
实现考勤管理现代化是一个复杂的系统工程,需要采取科学的管理方法和先进的科技手段。
科学的管理方法在管理中一般是指数学方法、系统方法、信息方法、控制论方法、社会学方法、心理学方法等科学方法,而先进的科技手段主要是运用当代最新科学技术之一的电子计算机来为考勤管理现代化服务。
而且一个完善的考勤系统应做到以下几点:•提高了考勤管理效率,减轻劳动强度;•提高信息处理速度和准确性;•为考勤负责人提供更方便、科学的服务项目2.1.1 技术可行性分析系统开发环境: Windows xp sp3 + vs2005 + sqlserver2000技术已经比较成熟,和其他应用开发语言比起来有很大的优势,所以利用这些技术是完全可以完成这些功能的。
同时由于逻辑不是太复杂,估计可以按时完成此项目。
考勤管理系统是工作主要是在职工和管理都有之间架起一座桥梁,能相互沟通信息和处理信息。
这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。
计算机硬件和软件技术的飞速发展,为系统的建议提供了技术条件。
2.1.2 经济可行性分析(1) 支出A、在基建投资上,只需要配置一台DELL服务器,大概2万左右;B、软件设计和开发费用:2.5万元C、经常性指出:(主要是指软件的维护费用)(2) 收益进一步实现办公自动化,减少人力投资和办公费用,极大提高办公效率,同时更好地控制考勤制度,降低成本。
(3) 投资回收周期根据经验算法,收益的累计数开始超过支出的累计数的时间为1年。
2.1.3 社会因素可行性分析对所建议系统的社会因素方面的可行性分析:(1)法律可行性新系统的研制和开发,所有软件都选用正版,将不会侵犯他、集体和国家的利益,不会违反国家政策和法律。
(2)使用方面的可行性由于新系统的客户端只要求用浏览器,管理者与人员完全有能力使用此系统,并且新系统的研制和开发是充分考虑工作人员对考勤的易于管理,提高工作效率,界面友好,操作简单方便,能完全满足职工的使用要求。
对传统管理理念的冲击,可能引起管理层的变动和人员调整。
对于企业管理人员的要求提高,使企业在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽企业在市场竞争环境下的生存空间。
对于企业的管理者与职工之间管理方式的转变和扩充。
2.1.4 可行性分析结论结论意见:经上述可行性分析,系统研制和开发可以立即开始进行2.2 客户需求分析考勤系统应该便于管理者的查询、修改、更新、统计以及高层管理人员的查询等操作。
能从整体上体现去每个员工每日,每月的出勤情况。
基本信息管理包括节假日日期设置、部门信息管理和员工信息管理。
(1) 主要功能a.员工考勤签到:员工每天上班时需要登陆系统进行签到,如果当天已经签到了,则不执行重复操作!考勤签退:员工每天下班时需要登陆系统进行签退,如果当天还没有签过到,则不执行签退操作,如果当天还没有到下班时间,也不执行签退操作!节假日查看:员工可以登录查看节假日加班安排系统管理:修改自己的密码, 查看系统简介.b.管理员员工信息管理:管理员登陆系统后可以添加新的员工信息,可以对现有员工的信息进行修改和查询!可以删除某些员工信息,当删除员工信息时同时将删除他们的考勤信息职位类别及上下班时间管理:不同的职位类别拥有不同的上下班时间,管理员可以添加新的职位类别,修改已经存在的职位类别的名称和上下班时间, 部门信息管理:管理员可以添加和删除部门信息,当部门下面存在员工信息时不执行删除操作.系统管理:修改自己的登陆密码,查看系统简介。
节假日管理:节假日的设置和查看;(2) 特点实现了管理员和员工登陆信息的自动判断!根据不同的身份显示不同的功能菜单。
程序使用三层架构思想,采用完全面向对象的思想方法设计。
系统在进行相关操作如删除员工信息时使用了存储过程。
(3) 数据输入:通过登录系统输入职工上班下班,以及请假、出差等信息。
输出:职工考勤情况。
(用户对相关职工的查询结果和报表)(4) 安全保密系统对不同权限的用户提供不同的功能模块,对历史数据的更改和新数据的添加只有一定权限的用户才能操作,一般用户只能进行查询操作。
对数据库的关键数据应要求保密。
系统默认管理员登陆信息: 帐号admin 密码admin2.3 系统分析部分2.3.1 业务流程图图2-1 业务流程图2.3.2 数据流程图图2-2 顶层数据流程图图2-3 一层数据流程图2.3.3 E-R 图图2-5 E-R 图2.3.4 数据字典第三章信息系统设计3.1 功能结构图设计图3-1 功能结构图3.2 输入输出设计表3-3 员工下班表3-4 修改密码表3-5 申请请假表3-6 申请出差表3-7 员工添加表3-8 部门添加表3-9 上下班时间设定3.3 数据库结构设计3.3.1 概念设计数据库一般分为三级模式:外模式、概念模式和内模式。
在这里我们将要设计的是数据库的概念模式。
通过对职工出勤管理系统的内容和数据流程分析及E-R图,设计如下数据项和数据结构:1.部门信息。
包括部门编号、部门名称、部门人数等。
2.超级用户信息。
包括用户名、密码、姓名、性别、出生日期、籍贯等。
3.普通用户信息。
包括编号、部门名称、姓名、性别、出生日期、籍贯等信息。
4.考勤信息。
包括序列号、编号、签到时间、签离时间等信息。
5.员工状态。
包括员工请假、出差、早退、迟到、上班。
6.考勤历史信息。
包括记录号、编号、日期、签到时间、签离时间、迟到、缺勤、早退等信息。
7.用户信息。
包括用户名称、密码、所在单位、用户权限信息、操作员、最后修改时间。
3.3.1 逻辑结构设计设计根据职工考勤管理系统的功能要求,选取SQLServer 2000作为后台数据库。
在上面的实体和实体之间的E-R图设计基础上,将ER图转化为关系模型,形成数据库中的表格及表格之间的关系。
该数据库由5个表组成,部门表、超级用户表、用户表、考勤表、考勤历史表。
分别如下表所示:表3-11部门表表3-14 用户表表3-16 上班时间表表3-17 上班类型表3.4 代码设计部门代号为两位数,按照创建时间早晚排行。
例如:生产部为第七个创建的部门,所以他的编号为07。
员工ID一共分成6位,前两位表示部门代号,中间两位表示进入部门年份,后两位表示员工编号。
例如:娄京兆是2013年生产部招收的第一位员工,那么他的ID就是071301。
上班类型代号为一位数,按照上班类型分为五类,0:正常上班1:请假2:出差3:早退4:迟到。
第四章信息系统实施4.1 源程序4.1.1 添加用户Dim m_clsUser As clsUserPrivate Sub cmdReg_Click()Set m_clsUser = New clsUserm_clsUser.DoAddUser txtUserName, txtPassword, txtPasswordConfirm, txtRealName, comboPermission, txtRegTime, frmAddUserEnd SubPrivate Sub Form_Load()comboPermission.AddItem "管理员", 0comboPermission.AddItem "普通用户", 1comboPermission.ListIndex = 0End SubPrivate Sub cmdClose_Click()Unload MeEnd Sub4.1.2 修改密码Dim m_clsUser As clsUserPrivate Sub cmdChPwdOk_Click()Set m_clsUser = New clsUserm_clsUser.DoChPwd txtChUser, txtOldPwd, txtNewPwd, txtNewPwdagain, frmChPwdEnd SubPrivate Sub Form_Load()End SubPrivate Sub cmdChPwdCancel_Click()Unload MeEnd Sub4.1.3 出差情况Dim strSql As StringDim rs As New RecordsetPrivate Sub cboDept_Click()cboName.ClearstrSql = "Select * from TWorker where departmentId=" &cboDept.ItemData(cboDept.ListIndex) & " order by workerId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboName.AddItem (rs.Fields(2).Value)cboName.ItemData(cboName.NewIndex) = rs.Fields(1).Valuers.MoveNextLooprs.ClosecboName.ListIndex = 0cboName.RefreshEnd SubPrivate Sub cmdPrint_Click()Set drChuChai.DataSource = adodcChuChai.RecordsetdrChuChai.Sections(1).Controls(1).Caption = "请假情况统计表"drChuChai.Sections(2).Controls(1).Caption = "部门名称"drChuChai.Sections(2).Controls(2).Caption = "员工名称"drChuChai.Sections(2).Controls(3).Caption = "出差时间"drChuChai.Sections(2).Controls(4).Caption = "出差地点"drChuChai.Sections(2).Controls(5).Caption = "出差天数"drChuChai.Sections(2).Controls(6).Caption = "登记时间"drChuChai.Sections(2).Controls(7).Caption = "销差时间"drChuChai.Sections(2).Controls(8).Caption = "出差备注"drChuChai.Sections(3).Controls(1).DataField = "部门名称"drChuChai.Sections(3).Controls(2).DataField = "员工名称"drChuChai.Sections(3).Controls(3).DataField = "出差时间"drChuChai.Sections(3).Controls(4).DataField = "出差地点"drChuChai.Sections(3).Controls(5).DataField = "出差天数"drChuChai.Sections(3).Controls(6).DataField = "登记时间"drChuChai.Sections(3).Controls(7).DataField = "销差时间"drChuChai.Sections(3).Controls(8).DataField = "出差备注"drChuChai.ShowEnd SubPrivate Sub cmdQuery_Click()strSql = "select a.departmentName as 部门名称,b.workerName as 员工名称,Time as 出差时间,Area as 出差地点,Length as 出差天数,c.dcTime as 登记时间,c.xcTime as 销差时间,Content as 出差备注from TDepartment a, TWorker b,TChuChai c where b.departmentId=" &cboDept.ItemData(cboDept.ListIndex) & "and b.workerId=" &cboName.ItemData(cboName.ListIndex) & " and a.departmentId=b.departmentId and b.departmentId=c.departmentId and b.workerId =c.workerId and Time between #" & dtpStartDate & "# and #" & dtpEndDate & "# "ConnectToDBRefushDataGrid adodcChuChai, dgChuChai, strSqlDisConnectEnd SubPrivate Sub Form_Load()strSql = "Select * from TDepartment order by departmentId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboDept.AddItem (rs.Fields(1).Value)cboDept.ItemData(cboDept.NewIndex) = rs.Fields(0).Valuers.MoveNextLooprs.ClosecboDept.ListIndex = 0cboDept.RefreshEnd Sub4.1.4 添加部门Dim departId As IntegerDim departName As StringIf txtbmName.Text = "" ThenMsgBox "部门名称不能有空值"Exit SubElsedepartId = Trim(txtaddbmId.Text)departName = Trim(txtbmName.Text)strSql = "insert into TDepartment (departmentId,departmentName) values(" _ & departId & ",'" & departName & "')"TransactSQL (strSql)MsgBox "添加成功"End IfEnd SubPublic Sub init()txtbmName.Text = ""num = 0strSql = "select * from TDepartment order by departmentId"Set rs = TransactSQL(strSql)If Not rs.EOF And Not rs.BOF Thenrs.MoveLastnum = rs(0)num = num + 1Me.txtaddbmId.Text = CStr(num)ElseMe.txtaddbmId.Text = 1End IfEnd SubPrivate Sub cmdreadd_Click()Call initEnd SubPrivate Sub Form_Load()num = 0strSql = "select * from TDepartment order by departmentId"Set rs = TransactSQL(strSql)If Not rs.EOF And Not rs.BOF Thenrs.MoveLastnum = rs(0)num = num + 1Me.txtaddbmId.Text = CStr(num)ElseMe.txtaddbmId.Text = 1End IfEnd Sub4.1.5 部门管理Dim strSql As StringDim RowNumber As IntegerPrivate Sub cmdadd_Click()frmDepAdd.Show vbModalEnd SubPrivate Sub cmddel_Click()If ConnectToDB() = False ThenMsgBox "数据库连接失败!"Exit SubEnd IfIf MsgBox("你真的要删除吗", vbInformation + vbYesNo, App.Title) = vbYes ThenstrSql = "delete from TDepartment where departmentId =" & RowNumberTransactSQL (strSql)DisConnectMsgBox "删除成功", vbInformation, App.TitlestrSql = "select departmentId as 部门编号, departmentName as 部门名称from TDepartment"RefreshData adodcDepManage, dgDepManage, strSqlExit SubEnd IfEnd SubPrivate Sub cmdUpdate_Click()If RowNumber = -1 ThenMsgBox "请先选择要修改的数据!"Exit SubEnd IffrmDepUpdate.Show vbModalEnd SubPrivate Sub Comselect_Click()Dim m_txtdepartID As StringDim m_txtdepartName As Stringm_txtdepartID = Trim(txtDepartId.Text)m_txtdepartName = Trim(txtDepartName.Text)If (m_txtdepartID = "" And m_txtdepartName = "") ThenstrSql = "select departmentId as 部门编号, departmentName as 部门名称from TDepartment"ElseIf (m_txtdepartID <> "" And m_txtdepartName <> "") ThenstrSql = "select departmentId as 部门编号, departmentName as 部门名称" _& " from TDepartment where departmentId =" &m_txtdepartID & " and departmentName like '%" & m_txtdepartName & "%'"ElseIf (m_txtdepartID <> "") ThenstrSql = "select departmentId as 部门编号, departmentName as 部门名称from TDepartment where departmentId =" & m_txtdepartIDElseIf m_txtdepartName <> "" ThenstrSql = "select departmentId as 部门编号, departmentName as 部门名称" _& "from TDepartment where departmentName like '%" &m_txtdepartName & "%'"End IfRefreshData adodcDepManage, dgDepManage, strSqlEnd SubPrivate Sub dgDepManage_Click()On Error GoTo ShowErr:If IsNull(dgDepManage.Bookmark) ThenRowNumber = -1Exit SubElseRowNumber =dgDepManage.Columns("0").CellValue(dgDepManage.Bookmark)End IffrmDepUpdate.SetRowNumber RowNumberShowErr:Exit SubEnd SubPrivate Sub dgDepManage_DblClick()On Error GoTo ShowErr:If IsNull(dgDepManage.Bookmark) ThenRowNumber = -1Exit SubElseRowNumber =dgDepManage.Columns("0").CellValue(dgDepManage.Bookmark)End IffrmDepUpdate.SetRowNumber RowNumberfrmDepUpdate.Show vbModalShowErr:Exit SubEnd SubPrivate Sub Form_Load()RowNumber = -1End Sub4.1.6 更新部门Option ExplicitDim strSql As StringDim rsDep As New ADODB.RecordsetDim m_irownumber As IntegerDim m_iDepartId As IntegerDim m_strDepartName As StringPrivate Sub cmdOk_Click()If txtDepartName.Text = "" ThenMsgBox "登记项目不能有空值"Exit SubElsem_iDepartId = CInt(txtDepartId.Text)m_strDepartName = Trim(txtDepartName.Text)strSql = "update TDepartment set departmentName='" & m_strDepartName & "' where departmentId=" & m_iDepartIdIf ConnectToDB() = False ThenMsgBox "数据库连接失败!"Exit SubEnd IfTransactSQL (strSql)MsgBox "修改成功"cmdok.Enabled = FalseDisConnectstrSql = "select departmentId as 部门编号, departmentName as 部门名称from TDepartment"RefreshData frmDepManage.adodcDepManage, frmDepManage.dgDepManage, strSqlEnd IfEnd SubPrivate Sub Form_Load()m_iDepartId = GetRowNumberIf ConnectToDB() = False ThenMsgBox "数据库连接失败!"Exit SubEnd IfstrSql = "select * from TDepartment where departmentId=" & m_iDepartIdSet rsDep = TransactSQL(strSql)txtDepartId.Text = rsDep.Fields(0)txtDepartId.RefreshtxtDepartName.Text = rsDep.Fields(1)txtDepartName.RefreshtxtDepartId.Enabled = FalseDisConnectEnd SubPublic Function SetRowNumber(ByVal p_irownumber As Integer) m_irownumber = p_irownumberEnd FunctionPublic Function GetRowNumber() As IntegerGetRowNumber = m_irownumberEnd Function4.1.7 员工考勤登记Dim strSql As StringDim rs As New ADODB.RecordsetDim today As StringDim qjLength As DoubleDim qjTime As StringDim djTime As StringDim qjReason As StringDim ccLength As DoubleDim ccTime As StringDim dcTime As StringDim ccArea As StringDim ccContent As StringDim nowtime As StringPrivate Sub cboDept_Click()cboName.ClearstrSql = "Select * from TWorker where departmentId=" &cboDept.ItemData(cboDept.ListIndex) & " order by workerId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboName.AddItem (rs.Fields(2).Value)cboName.ItemData(cboName.NewIndex) = rs.Fields(1).Valuers.MoveNextLooprs.ClosecboName.ListIndex = 0cboName.RefreshEnd SubPrivate Sub cboYourDepCC_Click()cboYourNameCC.ClearstrSql = "Select * from TWorker where departmentId=" & cboYourDepCC.ItemData(cboYourDepCC.ListIndex) & " order by workerId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboYourNameCC.AddItem (rs.Fields(2).Value)cboYourNameCC.ItemData(cboYourNameCC.NewIndex) = rs.Fields(1).Valuers.MoveNextLooprs.ClosecboYourNameCC.ListIndex = 0cboYourNameCC.RefreshEnd SubPrivate Sub cboYourDepQJ_Click()cboYourNameQJ.ClearstrSql = "Select * from TWorker where departmentId=" & cboYourDepQJ.ItemData(cboYourDepQJ.ListIndex) & " order by workerId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboYourNameQJ.AddItem (rs.Fields(2).Value)cboYourNameQJ.ItemData(cboYourNameQJ.NewIndex) =rs.Fields(1).Valuers.MoveNextLooprs.ClosecboYourNameQJ.ListIndex = 0cboYourNameQJ.RefreshEnd SubPrivate Sub cmdOk_Click()Dim psw As StringDim worktype As IntegerDim workerPsw As StringDim pwdCount As IntegerpwdCount = 0Dim departId As IntegerDim workerId As IntegerdepartId = cboDept.ItemData(cboDept.ListIndex)workerId = cboName.ItemData(cboName.ListIndex)strSql = "select workerPsw from TWorker where departmentId=" & departId & " and workerId=" & workerIdSet rs = TransactSQL(strSql)If rs.EOF = False ThenworkerPsw = rs.Fields(0)End IfIf Frame1.Visible = True ThenIf optmstart.Value = True ThenIf MsgBox("确定要" & optmstart.Caption & "么?", vbOKCancel) = vbOK Thenpsw = InputBox("请输入员工密码:", "输入密码")If yanzhengPWD(labwelcome, psw, workerPsw) = False ThenExit Sublabwelcome.Visible = FalseElseCall getTimeIf DateDiff("s", nowtime, mstart) >= 0 Thenworktype = 6Elseworktype = 4End IfIf yanzheng(departId, workerId, today) ThenMsgBox "你已经上班,不必再登记!"ElsestrSql = "insert into TShangBan (departmentId,workerId,workday,mstartTime,workmsType) " & _"values(" & departId & "," & workerId & ",#" & today & "# ,#" & nowtime & "#," & worktype & ")"TransactSQL (strSql)cmdok.Enabled = Falselabwelcome.Visible = Truelabwelcome.Caption = "欢迎" & cboName.Text & optmstart.Caption & ",祝你今天上午工作愉快!"MsgBox "登记成功!"End IfEnd IfElseMsgBox "不登记"End IfElseIf MsgBox("确定要" & optmleave.Caption & "么?", vbOKCancel) = vbOK Thenpsw = InputBox("请输入员工密码:", "输入密码")If yanzhengPWD(labwelcome, psw, workerPsw) = False ThenExit Sublabwelcome.Visible = FalseElseCall getTimeIf DateDiff("s", nowtime, mleave) <= 0 Thenworktype = 6Elseworktype = 3End IfIf yanzheng(departId, workerId, today) ThenIf mlrecord(departId, workerId, today) ThenstrSql = "update TShangBan set workmlType =" & worktype & ", mleaveTime ='" & nowtime & "' where departmentId =" & departId & " and workerId =" & workerId & " and workday=#" & today & "#"TransactSQL (strSql)cmdok.Enabled = Falselabwelcome.Visible = Truelabwelcome.Caption = "" & cboName.Text & optmleave.Caption & ",祝你生活幸福!"MsgBox "登记成功!"ElseMsgBox "你已经下班,不必再登记!"End IfElseMsgBox "对不起,你还没有上班,请先上班!", vbOKOnly + vbExclamation, "请遵守公司上下班秩序"End IfEnd IfElseMsgBox "不登记"End IfEnd IfElseIf optastart(0).Value = True ThenIf MsgBox("确定要" & optastart(0).Caption & "么?", vbOKCancel) = vbOK Thenpsw = InputBox("请输入员工密码:", "输入密码")If yanzhengPWD(labwelcome, psw, workerPsw) = False ThenExit Sublabwelcome.Visible = FalseElseCall getTimeIf DateDiff("s", nowtime, astart) >= 0 Thenworktype = 6Elseworktype = 4End IfIf yanzheng(departId, workerId, today) ThenIf asrecord(departId, workerId, today) ThenstrSql = "update TShangBan set workasType =" & worktype & ", astartTime ='" & nowtime & "' where departmentId =" & departId & " and workerId =" & workerId & " and workday=#" & today & "#"TransactSQL (strSql)cmdok.Enabled = Falselabwelcome.Visible = Truelabwelcome.Caption = "" & cboName.Text & optastart(0).Caption & ",祝你今天下午工作愉快!"MsgBox "登记成功!"ElseMsgBox "你已经上班,不必再登记!"End IfElsestrSql = "insert into TShangBan (departmentId,workerId,workday,astartTime,workasType) " & _"values(" & departId & "," & workerId & ",'" & today & "','" & nowtime & "'," & worktype & ")"TransactSQL (strSql)cmdok.Enabled = Falselabwelcome.Visible = Truelabwelcome.Caption = "欢迎" & cboName.Text & optastart(0).Caption & ",祝你今天下午工作愉快!"MsgBox "登记成功!"End IfEnd IfElseMsgBox "不登记"End IfElseIf MsgBox("确定要" & optaleave(1).Caption & "么?", vbOKCancel) = vbOK Thenpsw = InputBox("请输入员工密码:", "输入密码")If yanzhengPWD(labwelcome, psw, workerPsw) = False ThenExit Sublabwelcome.Visible = FalseElseCall getTimeIf DateDiff("s", nowtime, aleave) <= 0 Thenworktype = 6Elseworktype = 3End IfIf yanzheng(departId, workerId, today) ThenIf alrecord(departId, workerId, today) ThenstrSql = "update TShangBan set workalType =" & worktype & ", aleaveTime ='" & nowtime & "' where departmentId =" & departId & " and workerId =" & workerId & " and workday=#" & today & "#"TransactSQL (strSql)cmdok.Enabled = Falselabwelcome.Visible = Truelabwelcome.Caption = "" & cboName.Text & optaleave(1).Caption & ",祝你生活幸福!"MsgBox "登记成功!"ElseMsgBox "你已经下班,不必再登记!"End IfElseMsgBox "对不起,你还没有上班,请先上班!", vbOKOnly + vbExclamation, "请遵守公司上下班秩序"End IfEnd IfElseMsgBox "不登记"End IfEnd IfEnd IfEnd SubPrivate Sub cmdOKCC_Click()Dim departId As IntegerDim workerId As IntegerdepartId = cboYourDepCC.ItemData(cboYourDepCC.ListIndex)workerId = cboYourNameCC.ItemData(cboYourNameCC.ListIndex)If txtccTime.Text = "" Or txtccLength.Text = "" Or txtccArea.Text = "" Or txtccContent.Text = "" ThenMsgBox "登记项目不能有空值"Exit SubElseIf IsDate(txtccTime.Text) = False ThenMsgBox "时间格式不对!"yTimeCC.Visible = TrueyTimeCC.Caption = "时间格式:" & Now()Exit SubElseyTimeCC.Caption = ""yTimeCC.Visible = FalseccArea = Trim(txtccArea.Text)ccContent = Trim(txtccContent.Text)strSql = "insert into TChuChai(departmentId,workerId,ccTime,ccArea,ccLength,dcTime,ccContent) values(" _& departId & "," & workerId & ",'" & ccTime & "','" & ccArea & "'," & ccLength & ",'" & dcTime & "','" & ccContent & "')"TransactSQL (strSql)MsgBox "登记成功"End IfEnd SubPrivate Sub cmdOKQJ_Click()Dim departId As IntegerDim workerId As IntegerdepartId = cboYourDepQJ.ItemData(cboYourDepQJ.ListIndex)workerId = cboYourNameQJ.ItemData(cboYourNameQJ.ListIndex)If txtqjTime.Text = "" Or txtqjLength.Text = "" Or txtqjReason.Text = "" Then MsgBox "登记项目不能有空值"Exit SubElseIf IsDate(txtqjTime) = False ThenMsgBox "时间格式不对!"yTime.Visible = TrueyTime.Caption = "时间格式:" & Now()Exit SubElseyTime.Visible = FalseqjReason = Trim(txtqjReason.Text)strSql = "insert into TQingJia(departmentId,workerId,qjTime,qjLength,djTime,qjReason) values(" _& departId & "," & workerId & ",'" & qjTime & "'," & qjLength & ",'" & djTime & "','" & qjReason & "')"TransactSQL (strSql)MsgBox "登记成功"End IfEnd SubPrivate Sub cmdokUserLogin_Click()Dim m_clsUser As clsUserDim p_enumUserLogin As USERLOGINSet m_clsUser = New clsUserp_enumUserLogin = m_clsUser.DoUserLogin(Trim(txtUserName.Text), Trim(txtPassword.Text), frmUserLogin)If p_enumUserLogin = LOGERROR ThenExit SubElseIf p_enumUserLogin = LOGSUPER ThenUnload frmNormalUserMainMDIfrmAdminMain.ShowElseIf p_enumUserLogin = LOGNORMAL ThenUnload MDIfrmAdminMainfrmNormalUserMain.ShowEnd IfEnd SubPrivate Sub Form_Load()Dim nowtime As Stringlabwelcome.Visible = Falsenowtime = Time()If Hour(nowtime) < 13 ThenFrame1.Visible = TrueFrame2.Visible = FalseElseFrame1.Visible = FalseFrame2.Visible = TrueEnd IfstrSql = "Select * from TDepartment order by departmentId"Set rs = TransactSQL(strSql)Do While Not rs.EOFcboDept.AddItem (rs.Fields(1).Value)cboDept.ItemData(cboDept.NewIndex) = rs.Fields(0).ValuecboYourDepQJ.AddItem (rs.Fields(1).Value)cboYourDepQJ.ItemData(cboYourDepQJ.NewIndex) =rs.Fields(0).ValuecboYourDepCC.AddItem (rs.Fields(1).Value)cboYourDepCC.ItemData(cboYourDepCC.NewIndex) =rs.Fields(0).Valuers.MoveNextLooprs.ClosecboDept.ListIndex = 0cboYourDepQJ.ListIndex = 0cboYourDepCC.ListIndex = 0cboDept.RefreshcboYourDepQJ.RefreshcboYourDepCC.RefreshtxtqjTime.Text = Now()labdjTime.Caption = ""yTime.Visible = FalsetxtccTime.Text = Now()labdcTime.Caption = ""yTimeCC.Caption = ""yTimeCC.Visible = FalseEnd SubPrivate Sub Form_Unload(Cancel As Integer)Unload frmUserLoginEnd SubPublic Function mlrecord(cdepartId As Integer, cworkerId As Integer, ctoday As String) As BooleanstrSql = "select workmlType from TShangBan where departmentId =" & cdepartId & " and workerId =" & cworkerId & " and workday=#" & ctoday & "#"Set rs = TransactSQL(strSql)If rs.Fields(0).Value = 0 Thenmlrecord = TrueElsemlrecord = FalseEnd Ifrs.CloseEnd FunctionPublic Function asrecord(cdepartId As Integer, cworkerId As Integer, ctoday As String) As BooleanstrSql = "select workasType from TShangBan where departmentId =" & cdepartId & " and workerId =" & cworkerId & " and workday=#" & ctoday & "#"Set rs = TransactSQL(strSql)If rs.Fields(0).Value = 0 Thenasrecord = TrueElseasrecord = FalseEnd Ifrs.CloseEnd FunctionPublic Function alrecord(cdepartId As Integer, cworkerId As Integer, ctoday As String) As BooleanstrSql = "select workalType from TShangBan where departmentId =" & cdepartId & " and workerId =" & cworkerId & " and workday=#" & ctoday & "#"Set rs = TransactSQL(strSql)If rs.Fields(0).Value = 0 Thenalrecord = TrueElsealrecord = FalseEnd Ifrs.CloseEnd FunctionPublic Sub getTime()strSql = "Select * from TWorkTime"Set rs = TransactSQL(strSql)If Not rs.EOF Thenmstart = rs.Fields(0)mleave = rs.Fields(1)astart = rs.Fields(2)aleave = rs.Fields(3)End Ifnowtime = Time()today = DateEnd SubPublic Function yanzheng(cdepartId As Integer, cworkerId As Integer, ctoday As String) As BooleanstrSql = "select * from TShangBan where departmentId =" & cdepartId & " and workerId =" & cworkerId & " and workday=#" & ctoday & "#"Set rs = TransactSQL(strSql)If rs.EOF = False Thenyanzheng = TrueElseyanzheng = FalseEnd Ifrs.CloseEnd FunctionPublic Function yanzhengPWD(ByVal labwelcome As Label, ByVal psw As String, workerPsw As String) As BooleanDo While psw <> workerPswlabwelcome.Visible = Truelabwelcome.Caption = "你的身份被怀疑啦,请再次输入你的员工密码!"pwdCount = pwdCount + 1If pwdCount = 3 ThenMsgBox "你已经是三次输错,系统将关闭啦!", vbOKOnly + vbExclamation, "通知"yanzhengPWD = FalseExit FunctionEnd Ifpsw = InputBox("请输入员工密码:", "输入密码")LoopyanzhengPWD = True。