考勤管理系统的设计毕业论文.doc
考勤管理系统的设计摘 要: 考勤管理系统能够帮助公司单位在人事管理上对员工信息进行管理,系统全面实现了公司的基本管理要求,能大大提高公司的工作效率和管理能力。本系统就是为了适应信息化时代潮流而提出的。它的使用结合机读磁卡进行公司的日常考勤,可以实现日常考勤、考勤统计、考勤的查询、员工管理等一系列工作的智能化、数字化,从而代替昔日费时、费力易错、枯燥乏味的人工考勤方式。使公司能够对员工的各种信息进行全面统计,方便公司做出恰当的奖惩制度。本系统我主要设计了登录模块,主模块,考勤管理模块。系统使用Delphi7.0软件开发工具,SQL Server数据库。关键词:考勤统计;考勤查询;SQL Server数据库随着信息化的发展,各公司规模的不断扩大,员工管理越来越复杂,考勤的时间又很短,且工作量大, 而考勤管理在公司、企业中起着举足轻重的作用。因为人员考勤管理涉及到工资、福利等与员工个人利益相关的事物,一个经济实体考勤管理工作的好坏,直接影响到员工主观能动性的发挥,从而影响到企业的经济利益。经过我们的详细的调查,目前,许多单位员工考勤还停留在人工管理的基础上,这样的管理方法浪费许多人力和物力,随着科学技术的不断提高这种传统的手工管理方法必然被以计算机为基础的信息管理方法所取代.使用计算机进行管理不仅可以降低管理工作的难度,也可以减少错误和提高效率.因此,开发一套能够为公司提供充足的信息和快捷的查询手段的考勤管理,是非常必要的.本设计是从西安华龙公司的实际考勤业务需求出发,针对该公司人工考勤管理的现状,经过详细的系统调查,为该公司设计同时又有较强的通用性的前提下开发出的一个使用的智能卡考勤系统管理系统。一、开发工具“智能考勤系统”设计为Client/Server结构的应用程序。客户端采用Delphi7.0作为前端开发工具,采用ADO设置数据源,后台采用Microsoft SQL Server 2000数据库。系统运行的操作系统为XP。下面简要介绍各个开发工具。Delphi被称为第四代程序开发语言,是一种常用的可视化编程工具,集成了大量的可视化控件,程序员只需要做少量的工作就能完成大量复杂的工作。同时,Delphi还具有功能强大,运行高效,界面简洁等特点。它与Visual C+相比,在功能上豪不逊色,而且更容易掌握;与Visual Basic相比,Delphi具有更强大的功能。可以说Delphi集合了Visual C+强大的功能和Visual Basic的操作简便。因此,利用Delphi编写Windows开发应用程序十分方便。Delphi7.0是公司在2002年8月推出的新版本。与以往的各个版本相比,不仅继承了功能强大、成熟而丰富的组件,同时又增加了一些新的特性,如企业应用的MDA开发,可视化的快速Web开发,免费的Datasnap多层应用开发以及基于Windows XP的应用。Microsoft SQL Server 2000是Microsoft在SQL Server 7.0基础上推出的新一代大型电子商务、数据转换服务、数据仓库服务等方面引入了大量新的特性,为Web标准提供了大量支持,并为系统管理提供了许多有力的工具。二、需求分析功能需求主要是为了明确所开发的软件必须具备的功能。考勤是相对繁琐的工作,公司每天都要对员工进行考勤,员工上班时在考勤系统上登陆,下班时进行注销,系统会自动记录,这样可以节省许多时间。当员工不能正常上班时,如出差、请假等,可以给系统操作员说明原因,然后在考勤系统上进行记录,在每个月进行结算工资是根据考勤系统的记录来增减个人薪金。考勤信息的来源,可以直接由考勤人员手工输入,也可以由每个员工登陆考勤系统,进行注册。当然还有其他方式进行考勤信息输入。在本文所阐述的系统中,所有员工都通过智能卡识别来进行登陆和注销,同时系统需要密码才能进入。每个员工的智能卡信息已通过采集,转化为数据信息,每次智能卡识别将激活系统的考勤资料输入模块。这个模块也可以用手工输入,以备例外情况。根据分析,在本系统中,我们需要实现以下一些基本功能:(1)员工管理:可以添加、删除、查询、修改员工的基本资料。(2)帐户管理:系统管理员可以添加、删除、查询系统操作员,并指定各操作人员的权限(权限管理)。(3)考勤管理:系统操作员可以设置上下班时间,并能对出差、加班、请假信息进行添加,修改和删除。(4)。考勤统计管理:操作员可以对员工的考勤资料进行统计,并可产生报表;员工也可以登陆系统查询个人考勤资料。(5)数据库备份:对现有的数据库进行管理,包括数据库压缩、备份和恢复,以方便用户对数据库的管理和维护工作(6)数据查询:可以对员工信息进行查询,也可以对统计信息进行按条件查询。包括迟到、早退、缺勤、信息,出差信息,加班信息和请假信息的查询。(7)打印输出:可以对统计信息,查询信息产生报表并进行打印输出。 三、概要设计与详细设计1. 系统设计原则在当前诸多条件制约下,首先要研究智能考勤系统的实用性,使用户真正得到效益,充分发挥它的作用。同时又要注重它的科学性,以促进管理的现代化。智能考勤系统开发的原则如下:(1)、可行性原则。系统要保证技术上的可靠性和经济上的可行性。计算机系统、通讯网络系统设计和数据设计,在技术上必须是成熟的,经实践检验是成功的,在经济上是可能实现的。(2)、适应性原则。系统要保证可扩展性、可维护性。系统软、硬件都要有扩充升级的充分余地,系统要便于维护,系统对用户的需求要有一定的适应能力。(3)、安全性及保密性原则。智能考勤系统是实现薪金结算的基础,如果哪一个环节出现问题,例如系统操作员数据泄密,可能会导致财务结算系统混乱,后果不堪设想。因此,必须设置用户权限,以保证系统有较好的安全性,同时,系统也应有较强的数据备份和数据恢复功能。(4)、人机结合原则。人工信息收集系统与计算机管理信息系统要紧密结合。完整、准确、及时的信息是信息系统运行的基础。计算机系统是提供信息处理及辅助决策的技术手段,人工系统与计算机系统要有机的结合,友好的人-机界面是系统设计的主要原则之一。(5)、系统工程原则。系统调查、系统分析、系统设计、软件开发以及实施都要遵照系统工程的方法和步骤一步一步地进行,以便确保系统的整体性。(6)、统一规划、分期实施、逐步完善原则。管理信息系统要按规划、分阶段实施,由点到面逐步扩充,逐步完善,循序渐进。2. 系统功能设计智能考勤管理系统考勤管理帐户管理考勤管理数据备份数据查询考勤统计打印输出员工管理修改密码添加用户删除用户图2-1系统的功能模块图出勤的原始时间记录主要来源于智能卡考勤机,并且以固定格式保存在数据库中。系统的各部分数据流程图如下所示.(1),出勤管理数据流程图如下所示:出勤信息管理员信息系统管理员11系统登陆D112系统管 理D3员工信息D2图2-2出勤管理数据流程图(2).添加加班记录数据流图如下所示:员工信息系统管理员21系统登陆D2D4加班信息加班信息22加班管理图2-3添加加班记录数据流图(3). 添加请假记录录数据流图如下所示:员工请假信息系统管理员出勤信息请假信息经理请假信息31请假批示D532系统管 理D631记录登记图2-4添加请假记录数据流图(4). 系统的主程序流程图:图2-5系统主程序流程图3.各个子模块的功能设计(1).用户登录模块功能:由用户输入用户名和密码。如果用户名和相应密码正确,则根据该用户的权限类别进行权限设置;若用户名和密码错误,则进行错误提示,且只允许用户输入3次,超过3次系统自动退出。系统管理员进入考勤操作主界面。一般管理员进入一般管理员界面,相应的操作会受到限制。例如:不能添加,删除管理员,不能修改用户权限。(2). 考勤信息管理模块功能:本模块主要实现对上、下班时间设置,同时对出勤信息,加班信息,请假信息,出差信息进行添加、删除、修改等操作。功能结构图如图2-6所示:考勤管理上下班时间设置出勤管理请假管理加班管理出差管理图2-6考勤信息管理模块功能结构图(3). 数据库管理模块功能:本模块实现对系统数据库的备份和还原,以防止出现数据丢失等致命错误。功能结构图 如图3-11所示:图2-7数据库管理模块功能结构图四、数据库设计1.数据库设计遵循的一般原则 数据库设计是构建一个系统的关键。这是因为数据库设计的优劣将直接影响系统数据的安全性、可靠性。在数据库的设计过程中,需要遵循的一般原则是:(1)、数据库各表的设计要反映现实中的食物。数据表中的字段类型和大小要符合使用习惯。(2)、减少数据库的冗余和数据的不一致性。数据库应用的一个特点是对数据库的频繁操作,每次操作可能只会涉及一个表,也可以同时涉及多个表,也有可能对一个数据表进行多个操作,在这种情况下,由于数据冗余和数据不一致时,可能会引起错误。(3)、要有助于提高数据处理速度。程序访问数据库的速度依赖于硬件的速度,数据量的大小和数据表设计的优劣,而前两个因素是很难更改的。(4)、要保证数据库的安全。安全性是数据库应用软件的重要要求。2.数据库需求分析根据数据流程图,可以列出以下管理系统所需的数据项和数据结构。(1)、出勤记录:记录号、员工、出入情况、出入时间。(2)、请假记录:记录号、员工、假期起始时间、假期结束时间、请假原由。(3)、加班记录:记录号、员工、加班时间长度、日期。(4)、出差记录:记录号、员工、出差起始时间、出差结束时间、具体描述。 (5)、月度考勤统计:记录号、员工、年月、累计正常工作时间、累计请假时间、累计加班时间、累计出差时间、迟到次数、早退次数、矿工次数。(6)、所需的外部数据支持:()、员工信息:员工号、密码、权限、姓名、部 门、当前状态等。()部门信息:部门编号、名称等。3.数据库概念结构设计出勤管理系统的E-R图:出入状态员工编号员工地址用户名员工姓名用户权限所属部门N具体时间出勤信息操作系统管理员记录员工1NM密码员工编号密码图4-1出勤管理系统的E-R图请假管理,出差管理,加班管理的概念结构设计基本相同,现举例请假管理的E-R图如下页:密码请假开始时间状态密码员工编号用户名员工编号请假结束时间请假缘由所属部门员工姓名员工地址用户权限请假信息记录员工1操作系统管理员MNN图4-2请假管理系统的E-R图数据库中表结构设计如下:表1 企业员工基本信息表(student)列名含义数据类型长度允许空说明StaffId员工编号int10主键StaffName学生名char30loginName登录名char20StaffPassword登录密码char50e_mail邮件地址char30telephone电话号码char10表4-1 ATTENDANCE出勤记录表列名含义数据类型长度允许空说明ID编号integer10notNull主键PERSON员工名char20notNullIN_OUT出入情况char10notNullIO_TIME出入时间date15notNull表4-2 Leave请假记录表列名含义数据类型长度允许空说明ID编号integer10notNull主键PERSON员工名char20notNullSTART_TIME开始时间date20notNullEND_TIME结束时间date20notNullREASON请假原因varchar50notNull表4-3 login管理员用户表列名含义数据类型长度允许空说明username用户名char10notNull主键passwd密码char10notNullauthority用户权限char10YES表4-4 person员工个人信息表列名含义数据类型长度允许空说明ID员工号char6notNull主键passwd密码char20notNullauthority用户权限char1YESname员工姓名varchar10YESsex员工性别char2notNulldepartement所在部门char10notNull表4-5 counter计数器表列名含义数据类型长度允许空说明ID计数器编号char2notNull主键Counter-value计数值integer10notNulldescription描述carchar30YES五、考勤管理系统功能的实现1、系统登录图5-1用户登录界面登录界面:通过用户输入的用户名和密码,从数据库中查询数据,和用户输入的登录信息进行对比,如果数据库中含有该用户的数据,并且用户名与密码一致,则跳转主界面。如果密码不正确则提示:密码错误。同时计数器会加1。当密码输入错误3次以上。程序将终止,并且自动退出。2、主功能界面图5-2系统主功能界面当用户正确的输入用户名和密码后,会跳转到系统的主功能界面。主功能界面里含有九个菜单选项。其中包括管理员管理、员工管理、考勤管理、统计管理、查询、打印报表、关于我们、帮助、以及退出。通过点击上面的菜单选项,可弹出对应的功能界面,进行一系列的操作。3、考勤管理界面图5-3出勤记录界面图5-4 请假记录界面 在出勤界面里,这里有:添加修改出勤记录、加班记录、请假记录、出差记录的四大功能。在添加修改出勤记录功能里,可以连接并更改数据库,对员工的出勤记录进行增、删、改、查的功能。同时可以进行全部员工、部门远门、单个员工的筛选显示,如果需要更加详细的筛选,可以点击按条件检索,通过输入编号、员工号、姓名、部门等进行筛选。更加方便的进行操作。加班记录与请假记录同添加修改记录类似,可以输入加班或者请假的时间范围,员工号,请假事宜来对员工的加班请假事件进行记录,同时也能够对记录进行增、删、改、查和条件检索的功能。六、测试与调试1、测试白盒测试是一种以程序的内部逻辑结构为依据而设计测试用例的方法,因而又称为结构测试法或玻璃盒测试法。合理的白盒测试就是要选取足够的测试用例,对源代码实行比较充分的覆盖,以便尽可能多的发现程序中的错误。主要有两种方法:一种是逻辑覆盖法,另一种称为路径覆盖法。在这里我们采用逻辑覆盖法。在开发智能考勤系统的时候,我们对系统使用白盒测试技术进行了全面测试,采取的具体测试思路是:1.菜单项测试:为了保证每一项下拉菜单能正确实现系统设计的功能,我把考勤系统所需的所有信息按出勤、迟到、早退、出差、请假等分类全部输入到系统中,并对每一个菜单反复进行增加、删除、修改、打印报表操作,从而保证了菜单项的正确实现。2.数据跟踪:完成菜单项测试后,我对系统内的每一个数据进行了跟踪测试。例如:对考勤管理的“请假”这一项,我首先给其加一条请假记录:工号:L0002,姓名:刘海柱,和请假起至时间,请假原因等信息后;然后在查询模块中,分别进行“按工号查询”、“按时间查询”和“按时间查询”该项记录;并且在统计模块中统计“刘海柱”的请假时间、请假次数等依次验证数据流处理的正确性。3.移植测试:我把系统拷贝到其他计算机上运行,看其移植性能和对环境的要求。综合测试:在以上测试的基础上对系统功能进行整体的测试,依此来检验系统功能是否符合设计的要求。2、考勤管理界面(1)通过以下具体示例对登录模块进行调试,如图7-1所示:图6-1登录模块流程图满足条件覆盖的测试用例如下:覆盖方法测试路径次数>=3次?预期结果条件覆盖s->a->b->d->e->ffalse进入系统s->a->b->c->a->.a->b->c->a->ftrue退出系统s->a-.b->d->e->.a->b->d->e->ftrue退出系统(2)对考勤管理模块进行调试:首先是添加考勤记录:添加数据为:员工编号:L0002,则对应的员工姓名显示为:刘海柱,选者出入状态:入。点击单个员工按纽,则出勤记录自动添加一条记录为:员工编号出入状态时间L0002I2005-12-2 8:05删除记录:选中要删除的记录,点击删除当前记录,则系统自动删除此条记录,表中不再有相应的记录。检索记录:可以按照时间或员工编号进行检索。例如:选中时间,输入时间范围,点击按条件检索,则表中会显示在时间范围内的记录。选中员工,输入员工编号,点击按条件检索,则表中会显示该员工的记录。其它添加出差记录,添加请假记录,添加加班记录的测试方法与添加考勤记录的测试方法相同。 按照这样的方法对逐一功能进行测试,修改错误的程序代码,最后完成整个系统的调试。参考文献:1 delphi 程序设计教程吴金华 于秋生等编著。机械工业出版设,2004年8月第一版 2 delphi 编程技巧典型案例解析电脑编程技巧与维护杂志设 编著 中国电力出版社 2005年7月第一版3 数据库安全张敏 徐震 冯登国 编著 科学出版社 2005年7月第一版4 Delphi.串口通信技术与工程实践赵兰涛 北京:人民邮电出版社2004年6月总 结通过这次论文撰写,我大致了解了在进行软件开发工作时的基本过程,并且从中获得了许多从课堂上学不到的知识和有意义的收获,其中我对以下几点有很深刻的体会:1、编程中定义窗体及变量的名称时,一定要规范,必要时加上注解,不要想当然的定义某个变量,常量等。标准的定义方式,有助于其他编程人员更容易的看懂程序代码,以便以后进行维护。2、在工作中要多与小组成员沟通与讨论,这样可以保证系统整体的一致性,而且也可以互相交流经验,从而充实和提高自己。3、编程的方法固然重要,程序的使用界面也需要注意美观,布局要合理,主题要突出,界面要友好,要让使用过计算机的用户在首次接触到该软件时,感到一目了然,只要简单翻阅一下软件使用说明书就能了解该软件的大致功能。软件界面的美观对软件的市场销售及以后的市场生存起着重大作用。 15