基于C#开发的办公室考勤管理系统毕业论文.doc
基于C#开发的办公室考勤管理系统摘要:办公室考勤信息管理系统对企业的合理化管理起到了很大的作用,它为企业信息化的建设打响了头炮,而企业的信息化建设已成为现代各个企业发展的需要。开发此系统的目的是记录员工的出勤日期、签到时间、签退时间。此系统集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。大大减少了公司的人力和物力,为公司的考勤以及工资的发放带来很大的便利。关键词:办公室考勤;信息化;目的目录1 概述31.1 引言31.2 开发背景及意义32 需求分析52.1简单的需求分析52.1.1目标52.1.2用户的特点52.1.3运行环境52.1.4条件与限制52.1.5系统功能需求52.2系统功能模块62.2.1员工信息管理模块62.2.2 员工考勤模块72.3 用户需求描述72.4性能需求82.4.1 对性能的规定82.4.2 故障处理要求82.4.3 其他专门要求83 概要设计94 数据表结构设计125 运行环境规定145.1设备配置145.1.1最低配置145.1.2 建议配置145.2 支持软件145.3 输入输出接口156窗体设计166.1登陆窗体设计166.2修改密码窗体设计166.3用户签到窗体设计176.4用户签退窗体设计176.5考勤记录查询窗体设计186.6信息设置窗体设计196.7部门信息设置窗体196.8职位类别设置窗体206.9员工信息管理模块窗体217主要代码237.1员工信息管理模块核心代码237.2员工信息添加代码248调试269致谢2710 参考文献281 概述1.1 引言我国中小企业信息化水平一直处在比较初级的阶段,有关统计表明,真正具备计算机信息化比较高应用水平的企业在全国1000多万中小企业中所占的比例还不足10%。然而,随着我国市场经济的不断成熟,企业的竞争也在不断的加剧,同时企业组织管理观念的变革以及业务流程标准化也在不断完善,中小企业信息化建设的热情近几年来有了显著的提高。因此开发一个高质量的考勤信息管理系统进行企业管理尤为重要。伴随着计算机技术在各行各业日益广泛和深入的应用,企业对员工的考勤管理不在像过去一样靠手工去做,在一些稍具规模的企事业单位内考勤也开始信息化。考勤规则的灵活定义,提供和多种考勤机的接口,并可以手工录入考勤记录。 本系统就是为了适应这种要求而设计的。集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。大大减少了公司的人力和物力,为公司的考勤以及工资的发放带来很大的便利。 1.2 开发背景及意义 随着现代科技的进步,用计算机来进行考勤的管理也成为现代化企业运作必不可少的一部分。在过去我们的考勤工作都是人工完成的,不仅浪费了很多的人力跟物力,而且无法保证其准确性和透明度,给企业的管理带来了许多的不便。现在利用计算机来管理我们的考勤工作,大大降低了工作人员的工作量,提高了工作效率,使原本复杂和枯燥无味的工作变得简单而轻松了,而且也实用、安全。计算机技术特别是数据库技术的发展为企业建立管理信息系统,甚至对改变管理思想起着不可估量的作用。实践证明信息技术已在企业的管理层面扮演越来越重要的角色。通过考勤系统我们能很容易地对公司员工的信息有一个基本的了解,可以很方便地知道员工的出勤情况。一切的统计和计算都由计算机代为管理了,考勤信息管理系统对企业的合理化管理起到了很大的作用,它为企业信息化的建设打响了头炮,而企业的信息化建设已成为现代各个企业发展的需要。所以说,考勤管理系统的开发具有非常重要的意义。2 需求分析2.1简单的需求分析2.1.1目标通过学习软件工程的设计方法,主要采用C#以及SQL server技术,使用户可以使用具备查询功能、登记功能、修改功能、删除功能等处理功能的软件,主要用于办公室员工的考勤管理。 2.1.2用户的特点 本系统包括两类使用用户:系统管理员,即具有输入、查询、删除、修改记录的系统管理员;普通用户,即办公室员工。 系统管理员享有最高权限,办公室员工只考勤签到签退功能。 账号为员工编号,密码默认为123。2.1.3运行环境操作系统平台:windows xp平台:sql server2.1.4条件与限制 程序运行前提:本程序基于.net framework 2.0 开发,需要框架支持。2.1.5系统功能需求 根据各类用户的需求描述,系统应当具备员工信息管理系统、员工考勤系统、考勤管理系统三大功能。 员工信息管理系统功能需求:包括新增员工的信息,修改员工信息,查询员工信息。该功能是对系统的初始化,对员工有基本信息进行管理和维护。考虑到单位人较多,设置了员工基本信息查询,操作人员可以按员工编号、姓名和部门进行查询,并对查询结果进行维护,从而减少了操作人员的工作强度。员工考勤系统功能需求:主要包括员工的签到和签退操作。员工再签到或签退时,不能进行重复操作。还没进行签到操作时,不允许签退操作。还没到管理员规定的下班签退时间时,不允许员工签退下班。管理员考勤管理系统功能需求:主要包括对员工考勤信息的查看,查询以及修改上下班时间的操作。管理员可以根据员工的职位信息来修改上下班时间,系统十分灵活,而且可以按员工编号、姓名和部门查询特定员工的考勤信息。2.2系统功能模块 总体功能模块设计,是在需求的基础上,对系统的建构做一个总体的规划。开发一个项目,特别是负责的项目,总体设计方案是由大家集思广益,多次商讨之后决定的。我们这样做,也是按照程序设计的指导思想进行的,即由上至下、逐步求精。根据系统用户的需求,将本系统功能划分成三大功能模块:员工信息管理模块、员工考勤模块、管理员考勤管理模块。涉及到办公室员工与考勤管理员两大类用户。2.2.1员工信息管理模块(1)员工信息管理:管理员登陆系统后可以添加新的员工信息,可以对现有员工的信息进行修改和查询,可以删除某些员工信息,当删除员工信息时同时将删除他们的考勤信息。(2)系统管理:员工登陆系统后可以修改自己的登陆密码。 2.2.2 员工考勤模块(1)考勤签到:员工每天上班时需要登陆系统进行签到,如果当天已经签到了,则不执行重复操作。(2)考勤签退:员工每天下班时需要登陆系统进行签退,如果当天还没有签过到,则不执行签退操作,如果当天还没有到下班时间,也不执行签退操作。管理员考勤管理模块: (1)职位类别及上下班时间管理:不同的职位类别拥有不同的上下班时间,管理员可以添加新的职位类别,修改已经存在的职位类别的名称和上下班时间。 (2)部门信息管理:管理员可以添加和删除部门信息,当部门下面存在员工信息时不执行删除操作。(3)系统管理:管理员登陆系统后可以修改自己的登陆密码。2.3 用户需求描述(1)员工需求描述用户对本系统的主要需求是:实行实时的签到签退操作,以及修改员工的登录密码。(2)考勤管理员需求描述管理员对本系统的主要需求是:新增员工的信息,修改员工信息,查询员工信息,删除员工信息。对员工考勤信息的查询和修改员工上下班时间的操作,以及修改管理员的登录密码。(3)用户界面描述 根据用户的需求描述,设计相关的图形界面。登录界面 实现管理员和员工登陆信息自动判断,根据不同的身份显示不同功能菜单。员工操作界面 员工操作界面包括以下功能:密码修改;进行考勤签到操作;进行考勤签退操作。管理员操作界面管理员操作界面包括以下功能:修改密码;员工信息管理(查看、修改、添加和删除);考勤记录查询与管理。2.4性能需求2.4.1 对性能的规定(1)精度:本系统全部为整数(2)时间特性要求:各个操作在1-20秒内完成(3)灵活性:系统可以立刻适应数据库接受的新数据;要求系统可以在PC机和笔记本上通用2.4.2 故障处理要求 出现异常提供详细异常错误信息并给出合适的解决方案。2.4.3 其他专门要求(1)安全性:对用户账户信息严格保护。(2)可维护性:有错误时,可以提供及时修复工作(3)易读性:界面符合windows友好界面风格,能提示用户下一步的操作步骤(4)可转移性:支持IE的PC机都可以使用本系统。(5)可靠性:出现错误不会导致系统死机。3 概要设计员工信息管理模块功能如图3-1所示:开始录入员工信息员工信息查询否是否维护员工信息?是修改或删除员工信息结束图3-1员工信息管理模块员工考勤模块功能如图3-2所示:开始 否员工签到或签退签到或签退时间到了吗?是签到或签退成功主页图3-2员工考勤模块 开始查看不同职位员工上下班时间是否维护?否是修改、删除或添加员工的职位或上下班时间结束图3-3管理员考勤管理模块3.3 本系统的三大模块功能如图3-4所示:办公室考勤信息管理系统考勤管理模块员工考勤模块员工信息管理模块信息设置考勤管理考勤登记系统管理系统管理添加员工信息员工信息维护考勤记录查询部门信息设置职位类别设置修改管理员密码签到签退修改员工密码图3-4办公室考勤信息管理系统模块功能4 数据表结构设计采用SQL Server数据库写入读取文件数据库名称:AttendanceDB数据表描述:表4-1 dbo.attendanceInfo(考勤信息表)字段名解释数据类型是否为空备注attendanceId出勤记录计数varchar(20)否主键attendanceEmployeeNo员工号int是attendanceStartTime上班开始时间int是attendanceEndTime上班结束时间int是attendanceStartFlag上班状态smallint是attendanceEndFlag下班状态smallint是表4-2 dbo.workTypeInfo(工作时间信息表)字段名解释数据类型是否为空备注workTypeId工作时间记录计数int否主键workTypeName职位varchar(30)是workTypeStartTime此职位上班开始时间int是workTypeEndTime此职位上班结束时间int是表4-3 dbo.departmentInfo(部门信息表)字段名解释数据类型是否为空备注departmentId公司部门记录计数int否主键departmentName部门名varchar(30)是departmentRemart部门职能varchar(100)是departmentCount部门总人数int是departmentManager部门负责人varchar(20)是表4-4 dbo.employeeInfo(员工信息表)字段名解释数据类型是否为空备注employeeNo员工号Varchar(20) 否主键employeeName姓名Varchar(20) 是employeePassword密码Varchar(20) 是employeeSex性别nchar(1) 是employeeBirthday生日datetime 是employeeDepartmentID部门号int 是employeeWorkTypeID工作时间号int 是employeeEducationID学历号int 是employeeHomeTel家庭电话Varchar(20) 是employeeMobile手机Varchar(20) 是employeeCard身份证Varchar(20) 是employeeEmail电邮地址Varchar(30) 是employeeAddress地址NVarchar(80) 是表4-5 dbo.admin(管理员登陆表)字段名解释数据类型是否为空备注adminUsername管理员Varchar(20)否adminPassword密码Varchar(20)否表4-6 dbo.educationInfo(员工学历信息表)字段名解释数据类型是否为空备注educationID学历号int 否主键educationName学历Varchar(10) 是educationSName第二学历Varchar(10) 是remark备注Varchar(100) 是5 运行环境规定5.1设备配置5.1.1最低配置 服务器端: 1)硬件需求:处理器 Intel Pentium III 内存 128M 硬盘 40G 2) 软件需求:Windows 98 学生考勤管理系统服务器端 SQL Server 数据库 客户端 : 1) 硬件需求: 处理器 Intel奔腾133或相当的处理器 内存 64M 硬盘 10G2) 软件需求: Windows 98 SQL Server2000 数据库 办公室考勤信息管理系统 5.1.2 建议配置 服务器端: 1) 硬件需求:处理器 Intel Pentium IV 2.8G 内存 512M 硬盘 80G 2) 软件需求:Microsoft Windows 2000/XP SQL Server 2005数据库 办公室考勤信息管理系统客户端 : 1) 硬件需求:处理器 Intel Pentium IV 1.8或相当的处理 内存512M 硬盘 20G 2)软件需求: Windows 2000/XP 办公室考勤信息管理系统 5.2 支持软件 操作系统: Microsoft Windows 2000/XP编译程序:Visual Studio2008 SQL Servwr2008 测试程序:Visual Studio2008 SQL Servwr2008 5.3 输入输出接口1) 系统输入:从用户界面输入登录信息2) 系统输出:登录信息反馈3)硬件接口:一般奔3或以上PC机或笔记本4)软件接口:Windows XP本软件应用ADO.NET技术实现对数据库的操作,基于SQL server数据库访问技术。 本产品的用户一般需要通过终端进行操作,进入主界面后点击相应的窗口,分别进入相对应的界面(如:输入界面、查询界面)。用户对程序的维护,最好要有备份。 6窗体设计6.1登陆窗体设计 登陆时,用户名中可以输入管理员名或员工编号,然后输入密码。密码正确,会出现会直接进入管理员页面或员工考勤页面。密码不正确时,会出现“用户名或密码错误”的提示。若是没有输入用户名或密码,会出现“必须输入用户名和口令”提示。 如图2 所示。 图2 登陆窗体6.2修改密码窗体设计 点击系统管理按钮会弹出密码修改页面,可以分别修改管理员和员工的密码。如图3所示。图3 考勤记录查询窗体6.3用户签到窗体设计 在首页中使用员工编号和员工密码登陆时,进入员工考勤页面,点击考勤登记按钮,会弹出签到和签退选项。点击签到时,用GetData()获取当前时间,并提示签到成功,当重复点击签到时,弹出对话框提示今天已签到。本页面主要连接到数据库中的考勤信息表。如图4所示。图4用户签到窗体6.4用户签退窗体设计 签退时间与员工的职位有关,当员工在没有在规定的时间后签退时,弹出对话框提示“还没有到下班时间,不能签退”。当员工在没有签到就按签退时会提示“还没有签到,不能签退”。如图5所示。图5 用户签到窗体6.5考勤记录查询窗体设计 本页面主要是查询员工的出勤情况,显示员工的上班签到时间和签退时间,当员工在没有在规定的时间后签退时,会禁止签退,并显示没有下班签退。本页面还具有查询功能,可以分别通过员工编号,考勤年份和考勤月份查询到所需员工的出勤情况。本页面连接数据库中的员工考勤信息表。如图4-6所示。考勤记录查询窗体6.6信息设置窗体设计 “办公室考勤信息管理系统”中“信息设置”中的部门信息设置窗体和职位类别设置窗体。如图4-1所示。图4-1 部门信息设置窗体6.7部门信息设置窗体 本窗体主要连接数据库中的部门信息表,可以添加新的部门与删除现有的部门信息。与员工信息表相关联。如图4-2所示。图4-2 部门信息设置窗体6.8职位类别设置窗体本页面主要是修改已有职位类别的上下班时间和添加新职位类别的信息和上下班时间。主要是连接数据库中的工作时间表。下面窗体具有添加员工职位类别和员工上下班时间,按添加后即能添加到“工作信息时间表”中。如图4-3所示。图4-3 添加新职位类别信息窗体 点击已有职位类别最右边更新栏下得详细按钮,即可跳转到“信息更新”窗体,可以修改已有职位的上下班时间。如图4-4所示。图4-4 更新职位类别信息窗体6.9员工信息管理模块窗体 (1) 添加员工信息窗体 管理员可以添加员工编号、员工姓名、员工登陆密码、性别、生日、职位性质、学历、家庭电话、手提电话、电邮地址、家庭地址、邮政编码,其中所在部门连接数据库中的部门数据表,职位类别连接数据库中的上下班时间数据表(上下班时间由职位类别决定),生日日期会在弹出的日历控件中选择。点击添加按钮,所有的员工信息就会添加到数据库中的员工资料表中。如图1所示。图1 添加员工信息窗体(2)员工信息维护窗体本页面连接数据库中员工信息表,用DataGrid控件显示。可以分别通过员工编号、员工姓名、员工部门和员工类别查询所需的员工信息,并可以编辑员工的基本信息和删除员工信息。如图2所示。图2 员工信息维护窗体7主要代码7.1员工信息管理模块核心代码登陆窗体的核心代码:<TD class="bottom" align="left" bgColor="#52beef" colSpan="2" height="35">考勤管理系统</TD><TD class="br" style="HEIGHT: 33px" align="right" width="41%">请输入用户名:</TD><TD class="br" align="right" width="41%">请输入密码:</TD><TD class="bottom" align="left"><asp:textbox id="txtPwd" runat="server" maxLength="12" Width="145" TextMode="Password"></asp:textbox></TD></TR><TR><TD align="center" colSpan="2" height="40"> <asp:button id="Button1" style="MARGIN-RIGHT: 25px" runat="server" CssClass="searchButton" Text="登陆" onclick="Button1_Click"></asp:button><input class="searchButton" id="btnExit" onclick="window.close();" type="button" value="退出"name="btnExit"></TD>7.2员工信息添加代码public partial class Employee_EmployeeInfoAdd : System.Web.UI.Page/*添加功能代码*/ protected void Btn_Add_Click(object sender, EventArgs e) /*首先建立员工对象的模型并将界面上的信息传递给它*/ EmployeeModel employeeModel = new EmployeeModel(); employeeModel.EmployeeNo = this.EmployeeNo.Text; employeeModel.EmployeeName = this.EmployeeName.Text; employeeModel.EmployeePassword = this.EmployeePassword.Text; employeeModel.EmployeeSex = this.EmployeeSex.Text; if (this.EmployeeBirthday.Text != "") employeeModel.EmployeeBirthday = Convert.ToDateTime(this.EmployeeBirthday.Text); employeeModel.EmployeeDepartmentId = Convert.ToInt32(this.EmployeeDepartment.SelectedValue); employeeModel.EmployeeWorkTypeId = Convert.ToInt32(this.EmployeeWorkType.SelectedValue); employeeModel.EmployeeEducationId = Convert.ToInt32(this.EmployeeEducation.SelectedValue); employeeModel.EmployeeHomeTel = this.EmployeeHomeTel.Text; employeeModel.EmployeeMobile = this.EmployeeMobile.Text; employeeModel.EmployeeCard = this.EmployeeCard.Text; employeeModel.EmployeeEmail = this.EmployeeEmail.Text; employeeModel.EmployeeAddress = this.EmployeeAddress.Text; /*然后调用业务层对员工信息进行添加,成功返回true,失败返回false错误信息保存在ErrMessage中*/ EmployeeLogic employeeLogic = new EmployeeLogic(); if (employeeLogic.EmployeeInfoAdd(employeeModel) Response.Write("<script>alert('员工信息添加成功!');location.href='EmployeeInfoAdd.aspx'</script>"); else Response.Write("<script>alert('"+ employeeLogic.ErrMessage + "');</script>"); 8调试 在系统投入使用前要进行一系列测试,以保证更高的系统准确性,数据要按照标准测试要求进行测试,如边界数据、关联数据、相似区分数据、正常使用数据、大小写等。 经调试后确认本系统(我负责的模块)已完成分析阶段所要求的所有功能,可以投入使用。9致谢10 参考文献1 罗超理,李万红管理信息系统原理应用M北京:清华大学出版社2002 2 萨师煊,王珊数据库系统概论M北京:高等教育出版社2000 3 孙家广软件工程M北京:高等教育出版社2005 4 启明工作室编著ASP.NET网络应用系统开发与实例人民邮电出版社20055 王华杰,李律松,孙一波等编著C#数据库开发技术.清华大学出版社2003.26 苗雪兰,刘瑞新,宋歌等编著数据库系统原理及应用教程.机械工业出版社2009.126