《最新考勤管理系统实验报告.doc》由会员分享,可在线阅读,更多相关《最新考勤管理系统实验报告.doc(149页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、考勤管理系统实验报告(可以直接使用,可编辑 优秀版资料,欢迎下载)目录第一章信息系统概况41。1 选题介绍41.2 课程设计小组基本情况介绍4课程设计小组成员的基本情况介绍41。2.2课程设计小组前期的准备情况51.2。3课程设计小组各成员所承担的课程设计的任务5第二章信息系统分析62.1 可行性分析62。1。1 技术可行性分析62。1.3 社会因素可行性分析72.1.4 可行性分析结论72。2 客户需求分析72.3 系统分析部分92.3。1 业务流程图92.3.2 数据流程图92。3.3 E-R图112.3.4 数据字典12第三章信息系统设计143.1 功能结构图设计143.2 输入输出设计
2、143。3 数据库结构设计153.3.1 概念设计153。3.1 逻辑结构设计设计163。4 代码设计18第四章信息系统实施194。1 源程序194.1。1 添加用户194.1。2 修改密码194。1.3 出差情况194。1.4 添加部门214.1.5 部门管理224.1.6 更新部门244。1.7 员工考勤登记254.1。8 请假情况374.1。9 上班时间设置384。1。10 上班情况394。1.11 用户登入414。1.12 添加员工414。1。13 员工管理444。1。14 修改员工474.1.15 主界面494.3 模拟运行数据524。4 系统使用说明书55第五章参考书籍56第一章
3、信息系统概况1。1 选题介绍当今社会,计算机已经十分普及,性能也日趋完善.它已经被应用于许多领域。比如说,小到图书馆的图书管理,超市或网吧的收费管理,KTV的点歌系统,大到航空、铁路的售票,全国人口户籍的管理等等。随着现代科技的进步,用计算机来进行考勤的管理也成为现代化企业运作必不可少的一部分。在过去我们的考勤工作都是人工完成的,不仅浪费了很多的人力跟物力,而且无法保证其准确性和透明度,给企业的管理带来了许多的不便。现在利用计算机来管理我们的考勤工作,大大降低了工作人员的工作量,提高了工作效率,使原本复杂和枯燥无味的工作变得简单而轻松了,而且也实用、安全。计算机技术特别是数据库技术的发展为企业
4、建立管理信息系统,甚至对改变管理思想起着不可估量的作用.实践证明信息技术已在企业的管理层面扮演越来越重要的角色。通过考勤系统我们能很容易地对公司员工的信息有一个基本的了解,可以很方便地知道员工的出勤情况,通过对员工出勤信息的了解,就能计算出员工的实际工资。一切的统计和计算都由计算机代为管理了,考勤信息管理系统对企业的合理化管理起到了很大的作用,它为企业信息化的建设打响了头炮,而企业的信息化建设已成为现代各个企业发展的需要。所以说,考勤管理系统的开发具有非常重要的意义。1.2 课程设计小组基本情况介绍1。2。1课程设计小组成员的基本情况介绍1。2。2课程设计小组前期的准备情况一、仔细阅读课程设计
5、指导书,了解实验内容,同时确定小组成员,确定信息管理系统主题,然后各自分工.二、熟悉需要使用的软件的操作,包括:Microsoft Visual Basic 6.0 中文版、Microsoft Office Access 2003。1.2。3课程设计小组各成员所承担的课程设计的任务表1-1 小组成员及其所承担的任务第二章 信息系统分析2。1 可行性分析目前,计算机在我国的考勤管理工作中,主要可用来进行报表处理,档案管理,文书编辑,信息查询,综合分析。查询统计作为考勤管理的一个重要组成部分,是通过对考勤情况的调查,整理和分析,了解考勤情况的发展趋势,为各级领导机关制定考出勤的方针,政策,加强干部
6、管理,改革干部制度提供准确数字的依据.其工作除涉及到干部的基本情况统计之外,还包括职工的工资统计,职工的考勤情况统计,职工的奖惩情况统计,职工的出差情况统计,职工的请假情况统计等方面,其涉及的面之广,数据量之大可想而知,若利用手工进行考勤的统计工作,大致要经过考勤统计查询,考勤的统计资料的整理,考勤统计分析三个过程,但这种手工统计过程,存在着几个明显的问题,比如说统计资料缺乏准确性,及时性,需要花费大量的人力,物力,财力等。手工方法所表现出来的种种劣势,使人们慢慢意识到管理现代化已成为当代社会发展的一股不可抗拒的洪流。在管理现代化的浪潮中,考勤管理现代化也势在必行。实现考勤管理现代化是一个复杂
7、的系统工程,需要采取科学的管理方法和先进的科技手段。科学的管理方法在管理中一般是指数学方法、系统方法、信息方法、控制论方法、社会学方法、心理学方法等科学方法,而先进的科技手段主要是运用当代最新科学技术之一的电子计算机来为考勤管理现代化服务。而且一个完善的考勤系统应做到以下几点: 提高了考勤管理效率,减轻劳动强度; 提高信息处理速度和准确性; 为考勤负责人提供更方便、科学的服务项目2。1。1 技术可行性分析系统开发环境: Windows xp sp3 + vs2005 + sqlserver2000技术已经比较成熟,和其他应用开发语言比起来有很大的优势,所以利用这些技术是完全可以完成这些功能的.
8、同时由于逻辑不是太复杂,估计可以按时完成此项目.考勤管理系统是工作主要是在职工和管理都有之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建议提供了技术条件。2。1.2 经济可行性分析(1) 支出A、在基建投资上,只需要配置一台DELL服务器,大概2万左右;B、软件设计和开发费用:2.5万元C、经常性指出:(主要是指软件的维护费用)(2) 收益进一步实现办公自动化,减少人力投资和办公费用,极大提高办公效率,同时更好地控制考勤制度,降低成本。(3) 投资回收周期
9、根据经验算法,收益的累计数开始超过支出的累计数的时间为1年。 社会因素可行性分析对所建议系统的社会因素方面的可行性分析:(1)法律可行性新系统的研制和开发,所有软件都选用正版,将不会侵犯他、集体和国家的利益,不会违反国家政策和法律。(2)使用方面的可行性由于新系统的客户端只要求用浏览器,管理者与人员完全有能力使用此系统,并且新系统的研制和开发是充分考虑工作人员对考勤的易于管理,提高工作效率,界面友好,操作简单方便,能完全满足职工的使用要求。对传统管理理念的冲击,可能引起管理层的变动和人员调整。对于企业管理人员的要求提高,使企业在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽企业在市
10、场竞争环境下的生存空间。对于企业的管理者与职工之间管理方式的转变和扩充。2。1.4 可行性分析结论结论意见:经上述可行性分析,系统研制和开发可以立即开始进行2。2 客户需求分析考勤系统应该便于管理者的查询、修改、更新、统计以及高层管理人员的查询等操作。能从整体上体现去每个员工每日,每月的出勤情况。基本信息管理包括节假日日期设置、部门信息管理和员工信息管理.(1) 主要功能a。员工考勤签到:员工每天上班时需要登陆系统进行签到,如果当天已经签到了,则不执行重复操作!考勤签退:员工每天下班时需要登陆系统进行签退,如果当天还没有签过到,则不执行签退操作,如果当天还没有到下班时间,也不执行签退操作! 节
11、假日查看:员工可以登录查看节假日加班安排系统管理:修改自己的密码, 查看系统简介。b.管理员员工信息管理:管理员登陆系统后可以添加新的员工信息,可以对现有员工的信息进行修改和查询!可以删除某些员工信息,当删除员工信息时同时将删除他们的考勤信息职位类别及上下班时间管理:不同的职位类别拥有不同的上下班时间,管理员可以添加新的职位类别,修改已经存在的职位类别的名称和上下班时间,部门信息管理:管理员可以添加和删除部门信息,当部门下面存在员工信息时不执行删除操作.系统管理:修改自己的登陆密码,查看系统简介。节假日管理:节假日的设置和查看; (2) 特点 实现了管理员和员工登陆信息的自动判断!根据不同的身
12、份显示不同的功能菜单。程序使用三层架构思想,采用完全面向对象的思想方法设计。系统在进行相关操作如删除员工信息时使用了存储过程。(3) 数据输入:通过登录系统输入职工上班下班,以及请假、出差等信息。输出:职工考勤情况。(用户对相关职工的查询结果和报表)(4) 安全保密系统对不同权限的用户提供不同的功能模块,对历史数据的更改和新数据的添加只有一定权限的用户才能操作,一般用户只能进行查询操作.对数据库的关键数据应要求保密.系统默认管理员登陆信息: 帐号admin 密码admin2。3 系统分析部分2。3。1 业务流程图图2-1 业务流程图2.3。2 数据流程图图2-2 顶层数据流程图图23 一层数据
13、流程图2。3.3E-R图图25 ER图名字:上班时间数据描述:关于每日上班时间的信息,用于员工对上班时间的确认定义:上班时间数据=上午工作开始时间+上午工作离开时间+下午工作开始时间+下午工作离开时间位置:输入到上班时间表2。3.4 数据字典名字:部门数据描述:部门的信息,用于对部门的确认定义:部门资料数据=部门代号+部门名称位置:输入到部门表名字:上班类型数据描述:上班类型的信息,用于对员工上班时间类型的确认定义:上班类型数据=类型代号+类型名称位置:输入到上班类型表名字:个人资料数据描述:职工的个人信息,用于对职工的确认定义:个人资料数据=员工ID+员工姓名+员工性别+出生日期 +职务+个
14、人工作资料档案位置:输入到员工表 名字:职工列表数据描述:职工的部门信息,用于对职工部门的确认定义:职工列表数据=员工ID +员工姓名+部门代码+部门名称+员工类别+员工职位+查询密码位置:输入到部门表、用户表名字:考勤数据描述:职工的考勤信息定义:考勤数据=员工ID+年月+迟到+早退+请假+旷工 位置:输入到请假表、上班表、出差表名字:用户名别名: 描述:惟一标识本系统的用户身份定义:用户名=5字符5位置:操作用户表名字:操作用户表别名:操作用户信息描述:是对使用本系统的用户进行身份和权限验证用的定义:用户名+密码+所属单位+权限一+权限二+操作员位置:所有表单名字:密码别名: 描述:验证本
15、系统的用户身份定义:密码=5字符5位置:用户表名字:权限二别名: 描述:标识本系统的用户对本系统登记权的使用权限定义:权限二=5字符5位置:用户表名字:权限一别名: 描述:标识本系统的用户对本系统管理权使用权限定义:权限一=5字符5位置:用户表第三章 信息系统设计3.1 功能结构图设计图3-1 功能结构图3.2 输入输出设计表31 登录名称、标识符登录输入填写用户的ID号和密码,点击确认按钮.输出提示登录成功进入系统主页面表32 员工上班名称、标识符上班输入选择部门、姓名,点击上班输出提示上班成功信息表3-3 员工下班名称、标识符下班输入输入部门、姓名,点击上班输出提示下班成功信息表34 修改
16、密码名称、标识符修改密码输入管理员输入用户名、原始密码、新设定的密码输出提示修改密码成功信息表3-5 申请请假名称、标识符申请请假输入输入请假人姓名、所属部门、请假时间、请假时长、请假原因输出提示请假申请已经提交信息表36 申请出差名称、标识符申请出差输入申请人姓名、所属部门、出差的开始时间、出差地点、出差原因输出提示出差申请已经提交信息表3-7 员工添加名称、标识符添加员工输入输入部门、姓名、性别、年龄、进公司时间、个人密码输出提示添加已完成表38 部门添加名称、标识符部门添加输入输入部门名称输出提示添加已完成表39 上下班时间设定名称、标识符上、下班时间设定输入上、下班时间输出提示设置成功
17、3。3 数据库结构设计3.3.1 概念设计数据库一般分为三级模式:外模式、概念模式和内模式。在这里我们将要设计的是数据库的概念模式.通过对职工出勤管理系统的内容和数据流程分析及E-R图,设计如下数据项和数据结构:1.部门信息。包括部门编号、部门名称、部门人数等。2.超级用户信息.包括用户名、密码、姓名、性别、出生日期、籍贯等。3。普通用户信息。包括编号、部门名称、姓名、性别、出生日期、籍贯等信息。4。考勤信息.包括序列号、编号、签到时间、签离时间等信息。5。员工状态。包括员工请假、出差、早退、迟到、上班。6.考勤历史信息。包括记录号、编号、日期、签到时间、签离时间、迟到、缺勤、早退等信息。7.
18、用户信息。包括用户名称、密码、所在单位、用户权限信息、操作员、最后修改时间。3.3。1 逻辑结构设计设计根据职工考勤管理系统的功能要求,选取SQLServer 2000作为后台数据库。在上面的实体和实体之间的E-R图设计基础上,将ER图转化为关系模型,形成数据库中的表格及表格之间的关系.该数据库由5个表组成,部门表、超级用户表、用户表、考勤表、考勤历史表.分别如下表所示:表3-10出差表名称字段类型为空性备注部门代号departmentId数字否员工IDworkerId数字否出差时间ccTime日期/时间否出差地点ccArea文本是出差天数ccLength数字是登记时间dcTime日期/时间是
19、销差时间xcTime日期/时间是出差备注ccContent文本是表3-11部门表名称字段类型为空性备注部门代号departmentId数字否唯一表示部门部门名称departmentName文本否部门名称表312 请假表名称字段类型为空性备注部门代号departmentId数字否员工IDworkerId数字否请假时间qjTime日期/时间否请假天数qjLength数字是登记时间djTime日期/时间是请假原因qjReason文本是销假时间xjTime日期/时间是是否旷工ynKg是/否是表313上班表名称字段类型为空性备注部门代号departmentId数字否员工IDworkerId数字否工作日期
20、workday日期/时间否上午上班时间mstartTime日期/时间是下午上班时间astartTime日期/时间是上午下班时间mleaveTime日期/时间是下午下班时间aleaveTime日期/时间是上班类型1workmsType数字是存放工作类型表中的typeId 0:正常上班 1:请假 2:出差 3:早退 4:迟到上班类型2workmlType数字是默认值为0,作为是否已经登记的标记上班类型3workasType数字是默认值为0,作为是否已经登记的标记上班类型4workalType数字是默认值为0,作为是否已经登记的标记表314用户表名称字段类型为空性备注用户名username文本否密码
21、password文本否真实姓名realname文本否注册时间regtime日期/时间否权限permission数字否0:管理员 1:普通用户表3-15员工表名称字段类型为空性备注部门代号departmentId数字否员工IDworkerId数字否员工姓名workerName文本是员工性别workerSex文本是员工年龄workerAge数字是进入公司时间intoCompanyTime日期/时间否员工密码workerPsw文本否进行出勤输入的最后验证表316上班时间表名称字段类型为空性备注上午工作开始时间mstartTime日期/时间否上午工作离开时间mleaveTime日期/时间否下午工作开始
22、时间astartTime日期/时间否下午工作离开时间aleaveTime日期/时间否表3-17 上班类型表名称字段类型为空性备注类型代号typeId数字否类型名称typeName文本是3.4 代码设计部门代号为两位数,按照创建时间早晚排行。例如:生产部为第七个创建的部门,所以他的编号为07。员工ID一共分成6位,前两位表示部门代号,中间两位表示进入部门年份,后两位表示员工编号。例如:娄京兆是2021年生产部招收的第一位员工,那么他的ID就是071301.上班类型代号为一位数,按照上班类型分为五类,0:正常上班1:请假2:出差3:早退4:迟到。 第四章 信息系统实施4。1 源程序4。1。1 添加
23、用户Dim m_clsUser As clsUserPrivate Sub cmdReg_Click()Set m_clsUser = New clsUser m_clsUser.DoAddUser txtUserName, txtPassword, txtPasswordConfirm, txtRealName, comboPermission, txtRegTime, frmAddUserEnd SubPrivate Sub Form_Load() comboPermission.AddItem ”管理员, 0 comboPermission.AddItem ”普通用户”, 1 combo
24、Permission.ListIndex = 0 End SubPrivate Sub cmdClose_Click() Unload MeEnd Sub4。1。2 修改密码Dim m_clsUser As clsUserPrivate Sub cmdChPwdOk_Click() Set m_clsUser = New clsUser m_clsUser.DoChPwd txtChUser, txtOldPwd, txtNewPwd, txtNewPwdagain, frmChPwdEnd SubPrivate Sub Form_Load()End SubPrivate Sub cmdChP
25、wdCancel_Click() Unload MeEnd Sub出差情况Dim strSql As StringDim rs As New RecordsetPrivate Sub cboDept_Click() cboName。Clear strSql = ”Select from TWorker where departmentId=” cboDept.ItemData(cboDept。ListIndex) & order by workerId” Set rs = TransactSQL(strSql) Do While Not rs.EOF cboName.AddItem (rs.F
26、ields(2)。Value) cboName.ItemData(cboName.NewIndex) = rs。Fields(1).Value rs。MoveNextLoop rs。Close cboName。ListIndex = 0 cboName。RefreshEnd SubPrivate Sub cmdPrint_Click() Set drChuChai。DataSource = adodcChuChai.Recordset drChuChai.Sections(1)。Controls(1).Caption = ”请假情况统计表” drChuChai.Sections(2)。Cont
27、rols(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)。Con
28、trols(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。Secti
29、ons(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
30、 as 员工名称,c。ccTime as 出差时间,c.ccArea as 出差地点,c.ccLength as 出差天数,c.dcTime as 登记时间,c.xcTime as 销差时间,c。ccContent 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。depar
31、tmentId and b.departmentId=c。departmentId and b.workerId =c。workerId and c.ccTime between #” dtpStartDate and ” & dtpEndDate & ”# ” ConnectToDB RefushDataGrid adodcChuChai, dgChuChai, strSql DisConnectEnd SubPrivate Sub Form_Load()strSql = Select from TDepartment order by departmentId” Set rs = Tran
32、sactSQL(strSql) Do While Not rs.EOF cboDept。AddItem (rs.Fields(1)。Value) cboDept。ItemData(cboDept.NewIndex) = rs.Fields(0).Value rs.MoveNextLoop rs。Close cboDept。ListIndex = 0 cboDept.RefreshEnd Sub4.1。4添加部门Dim departId As IntegerDim departName As StringIf txtbmName。Text = ” Then MsgBox ”部门名称不能有空值”E
33、xit 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 = 0 strSql = ”select from TDepart
34、ment order by departmentId Set rs = TransactSQL(strSql) If Not rs。EOF And Not rs.BOF Then rs。MoveLast num = rs(0) num = num + 1 Me.txtaddbmId.Text = CStr(num) Else Me.txtaddbmId.Text = 1 End IfEnd SubPrivate Sub cmdreadd_Click() Call initEnd SubPrivate Sub Form_Load() num = 0 strSql = ”select from T
35、Department order by departmentId” Set rs = TransactSQL(strSql) If Not rs。EOF And Not rs。BOF Then rs.MoveLast num = rs(0) num = num + 1 Me。txtaddbmId.Text = CStr(num) Else Me。txtaddbmId。Text = 1 End If End Sub4。1。5部门管理Dim strSql As StringDim RowNumber As IntegerPrivate Sub cmdadd_Click() frmDepAdd.Sh
36、ow vbModalEnd SubPrivate Sub cmddel_Click() If ConnectToDB() = False Then MsgBox ”数据库连接失败! Exit Sub End If If MsgBox(”你真的要删除吗, vbInformation + vbYesNo, App.Title) = vbYes Then strSql = delete from TDepartment where departmentId =” RowNumber TransactSQL (strSql) DisConnect MsgBox 删除成功, vbInformation,
37、 App.Title strSql = ”select departmentId as 部门编号, departmentName as 部门名称 from TDepartment” RefreshData adodcDepManage, dgDepManage, strSql Exit Sub End IfEnd SubPrivate Sub cmdUpdate_Click() If RowNumber = -1 Then MsgBox ”请先选择要修改的数据!” Exit Sub End If frmDepUpdate。Show vbModalEnd SubPrivate Sub Comse
38、lect_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 = ”) Then strSql = select departmentId as 部门编号, departmentName as 部门名称 from TDepartment ElseIf (m_txtdepartID
39、 ” And m_txtdepartName ”) Then strSql = ”select departmentId as 部门编号, departmentName as 部门名称 ” _ & from TDepartment where departmentId =” m_txtdepartID & and departmentName like %” & m_txtdepartName & % ElseIf (m_txtdepartID ”) Then strSql = ”select departmentId as 部门编号, departmentName as 部门名称 from
40、TDepartment where departmentId =” & m_txtdepartID ElseIf m_txtdepartName ” Then strSql = select departmentId as 部门编号, departmentName as 部门名称 ” _ & from TDepartment where departmentName like % m_txtdepartName ”% End If RefreshData adodcDepManage, dgDepManage, strSqlEnd SubPrivate Sub dgDepManage_Clic
41、k()On Error GoTo ShowErr: If IsNull(dgDepManage.Bookmark) Then RowNumber = -1 Exit Sub Else RowNumber = dgDepManage。Columns(0”)。CellValue(dgDepManage.Bookmark) End If frmDepUpdate.SetRowNumber RowNumberShowErr: Exit SubEnd SubPrivate Sub dgDepManage_DblClick()On Error GoTo ShowErr: If IsNull(dgDepMa
42、nage.Bookmark) Then RowNumber = 1 Exit Sub Else RowNumber = dgDepManage。Columns(0)。CellValue(dgDepManage。Bookmark) End If frmDepUpdate。SetRowNumber RowNumber frmDepUpdate。Show vbModalShowErr: Exit SubEnd SubPrivate Sub Form_Load() RowNumber = 1End Sub更新部门Option ExplicitDim strSql As StringDim rsDep As New ADODB.RecordsetDim m_irownumber As IntegerDim m_iDepartId As Intege