- 389.51 KB
- 2022-05-17 12:59:30 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
目录前言1第一章绪论21.1系统开发的背景21.2系统开发的意义和目的21.3系统的简介21.4设计(论文)的主要任务和目标3第二章系统开发环境介绍42.1系统的开发环境42.2C#编程语言简介42.3C/S结构简介52.4数据库管理系统52.5ADO.NET技术52.6本章小结6第三章企业考勤系统需求分析73.1系统的可行性分析73.1.1市场需求的可行性73.1.2系统开发操作的可行性73.1.3系统开发硬件的可行性73.2系统的需求分析83.3本章小结9第四章企业考勤系统设计104.1系统设计思想1035
4.2系统设计原则104.3系统结构功能设计104.4数据流图114.5用户界面设计原则124.6本章小结13第五章系统的数据库结构设计145.1数据库设计的重要性145.2数据库的设计原则145.3系统的主要表结构155.4表与表之间的关联165.5本章小结16第六章企业考勤系统的实现186.1系统登录界面的实现186.2添加职员功能的实现196.3考勤功能的实现226.4考勤管理功能的实现246.5修改密码的功能的实现256.6信息统计功能的实现266.7本章小结27第七章系统的测试287.1软件测试的简介287.2系统测试的内容287.3本章小结2935
第八章总结与展望308.1总结308.2未来的展望30参考文献32致谢3435
摘要由于现代生活节奏的加快和计算机科学技术的迅速普及,人们开始寻求计算机的帮助来解决越来越多的实际问题。传统的人工企业考勤管理系统具有低效、公平性差、浪费资源的缺点,已经完全不能够满足人们的需要。基于这样的现实状况,本文的主要目的就是设计和实现一个企业考勤系统。本系统旨在实现基于C/S(客户/服务器)结构的企业考勤系统,包括管理员和职员两大模块,实现了对企业中职员考勤信息的记录和管理的功能,减少了人力和物力的浪费,大大提高了办公的效率。系统的设计强调标准化,有明确的功能模块结构,易于对系统的维护。该系统在MicrosoftVisualStudio2010的平台上,使用C#编程语言来开发,使用SQLServer2008对后台的数据进行管理。本文最大的特点在于理论与实际相结合。关键词:企业考勤系统;C/S结构;C#;数据库35
AbstractDuetotherapidpaceofmodernlifeandthespeedypopularizationofcomputerscienceandtechnology,peoplebegantoseekthehelpofacomputertosolvemorepracticalproblems.Traditionalattendancemanagementsystemwithmanualrecording,inefficient,unfair,wasteofresources,hasbeencompletelyunabletomeetpeople"sneeds.Basedonthisreality,themainpurposeofthispaperistodesignandimplementanattendancemanagementsystem.ThesystemisdesignedtoimplementanattendancemanagementsystemwhichbasedonC/S(Client/Server)structure,includingtwomodulesasadministratorsandstaffmembers.Realizetheenterprisestaffattendancerecordsandinformationmanagementfunctions.Reducingthehumanandmaterialresourceswasteandgreatlyimprovingtheworkefficiency.Systemdesignemphasizesstandardizedfunctionmoduleswithclearstructureandeasysystemmaintenance.Thesystem’simplementbasedontheplatformofMicrosoftVisualStudio2010,andusingC#programminglanguagetodevelop.ThesystemuseSQLServer2008tomanageback-officedata.Inthisthesis,thebiggestfeatureisthecombinationoftheoryandpractice.Keywords:C/Sstructure;attendancemanagementsystem;C#language;database35
前言当今社会是一个飞速发展的社会,人们的生活节奏越来越快,这一切都离不开人们对计算机技术的熟练掌握和对计算机的广泛应用。除了传统意义上的计算机外,还有越来越多的内嵌CPU设备涌入人们的生活、学习和工作中。应用计算机技术的程度已经越来越成为评价一个企业,乃至一个行业的重要指标之一了。对于任何一个企业来说,企业考勤都是必不可少的。旧时以纯人工记录和统计考勤数据的方式已然是不能够适应当代社会的发展速度的,企业考勤系统也就渐渐取代了人力,成为新的考勤工具。本课题主要以企业考勤为研究对象,详细地分析企业考勤的需求,根据具体的需要开发出能够取代纸张的、基于C/S(客户/服务器)结构的企业考勤系统。该系统的开发使用MicrosoftVisualStudio2010与SQLServer2008这两个软件,采用C#语言进行开发。本论文分为八章,从开发系统的设计思路,到系统开发完成后的测试工作,逐步展开阐述。对于系统和论文的不足之处,希望读者能够提出宝贵的意见。35
第一章绪论在本章中,我主要介绍了开发该系统的背景、意义和目的,阐述了这个系统的鲜明的特点,最后描述了在系统中我需要完成的任务和功能。1.1系统开发的背景当今世界科学技术迅猛发展,计算机的应用日渐渗透进人们的工作、学习以及日常生活的方方面面。随着微型计算机和互联网的迅速普及,计算机技术的运用在各个行业发挥着不可或缺的作用。计算机之所以能够被如此多的使用,是因为它能够在某些方面极大的方便甚至是取代繁琐的人力劳动,大大地减少了时间上的浪费,提高了效率。企业是保障国民经济稳步增长的重要保证,而企业信息系统建设是我国企业跟上世界企业发展潮流的必然要求。近半个世纪以来,中国各类企业在信息化建设的道路上经受了不同程度的挫伤,国家对企业信息系统建设也越来越重视,开发出适用于不同功能的企业信息管理系统势在必行。1.2系统开发的意义和目的企业考勤制度是企业制度化管理的重要一环,企业管理者通过考勤来获知职员上下班、出勤率等情况,并且将考勤结果作为考评企业职员的重要标准之一。[1]传统的企业考勤是用笔在专门的记录卡或者记录册上签名,由专人定期进行统计和汇总,这种完全靠人工的考勤方式有很多的不足,出错率高、公平性有待商榷、数据存档麻烦,很难让管理员真正全面地掌握企业中职员的出勤情况[2],耗费大量的人力财力,在大型企业中效果尤其不好。很显然,传统的考勤方式已经不能适应当今社会快节奏的办公方式了。目前,企业管理越来越要求高效,考勤系统能够起到加强工作纪律,严肃工作作风的作用。现在企业考勤大多采用刷卡或者指纹签到,利用计算机技术帮助管理大量的职员考勤数据,工作效率大大提高,有助于提高企业考勤制度的规范化和科学化程度。通过对企业考勤系统进行研究和开发,能够系统地将我所学的知识实实在在地运用到实践中,进一步加强和巩固在校的学习,为以后的工作打好基础。1.3系统的简介本课题所要设计和实现的系统采用35
C/S(Client/Server,客户/服务器)体系结构。C/S体系结构的应用系统能够在计算机不联网的情况下照常使用,不用依赖于外网环境,客户端与数据库直接相连,减少了中间环节。[3]此系统包括了职员登录和管理员登录两个权限,每个权限能够满足相应身份的人的不同需求。基于C/S体系结构的企业考勤系统可以实现管理员动态地添加、管理、删除职员基本信息和考勤信息,方便职员上下班签到,以及了解自己的各项信息,具有较好的实用性。1.4设计(论文)的主要任务和目标目标:本课题主要使用C#语言,实现基于C/S架构的企业考勤管理系统,实现人员的考勤与统计,加强企业信息化管理。主要任务:(1)实现企业职员基本信息的录入和维护。(2)实现对企业职员考勤信息的记录和管理。(3)实现管理员的登录功能,便于其对企业职员信息的查看和统计。(4)完成系统的设计和源代码的编写,实现企业考勤系统。35
第二章系统开发环境介绍本章详细介绍了设计和实现企业考勤系统时所用的各种应用程序、硬件环境及系统开发的关键性技术,并且阐述了本系统的特点。2.1系统的开发环境系统开发平台:MicrosoftVisualStudio2010数据库:SQLServer2008操作系统:Windows8中文版64位操作系统2.2C#编程语言简介近几年微软公司推出了C#编程语言,虽然它是从C语言和C++语言派生出来的,但是它与C语言有一个本质上的差别,它是完全面向对象的程序设计语言。在这几年的发展中,C#越来越成为编程人员的首选语言,越来越多的应用软件采用C#来进行开发,尤其是在Web开发方面,C#的适用性更是无与伦比。[4]C#语言是一种简单的、现代的、类型安全的程序设计语言,是专门用于.NET的编程语言,用C#编写的所有代码总是在.NETFramework中运行。[5]说起C#就不能不提到.NETFramework。.NETFramework(框架)简称.NET,是微软为开发应用程序创建的一个富有革命性的新平台。简单地说,.NETFramework是一个创建、部署和运行应用程序的多语言多平台环境,包含了一个庞大的代码库,各种.NET语言都可以共用这些代码库。[6]C#语言是既可以进行快速开发,又可以访问所有潜在平台的编程语言,并且它的开发环境能够完全与新的Web标准同步,容易与现存的应用系统集成,编程人员还可以使用C#语言来编写底层代码。在构建从高级商务对象到系统级应用的各种不同组件时,由于C#具有优良的面向对象设计特点,已成为首要的选择。C#语言之所以能够实现在多语言和多平台之间调用因特网的功能,是因为C#在使用的同时,能够将所有的组件都转换为Web服务。[7]类似于Java,C#摒弃了C语言里的一些危险功能。虽然C#并没有完全禁止使用指针,但大多数程序工作都可以在不使用指针的情况下完成。[8]本课题所要设计和实现的企业考勤系统,是在MicrosoftVisualStudio2010开发环境下,使用C#语言进行开发,灵活地使用MicrosoftVisualStudio35
2010中的各种工具,方便快捷地实现系统需要的功能。2.3C/S结构简介C/S结构即客户/服务器结构,它充分地利用了计算机的各种硬件和软件资源,是一种在计算机领域里经常会用到的体系结构。它为了极大地降低系统的通信开销,充分利用两端硬件环境的优势,将任务合理分配到客户(Client)端和服务器(Server)端实现。[9]在C/S体系结构中,不同的计算机分别承载着应用程序和数据库及其管理软件,它们彼此之间通过网络进行连接。[10]C/S结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。扮演服务器角色的计算机存放着数据库及其管理软件,存储了应用程序中需要被处理的全部数据,并且负责对这些数据进行处理,将处理好的数据传送给若干台与其相连的客户机;应用程序所在的计算机称为客户机,它主要用于将请求发送给服务器,并接收服务器返回的请求结果和数据。[11]C/S结构特点:应用程序的全部操作将会显示在Client和Server上。在客户端计算机上安装必要的应用软件。数据的管理可以采用分散或集中两种方式。扮演客户端角色的计算机能够对数据或者工作做先行处理,之后再将进行过初步处理的数据传给服务器,在这个过程中,充分发挥了客户端计算机的处理能力,有效地提高其反应的速度。但是C/S系统由于自身软件的限制只适用于中小规模的局域网环境。[12]2.4数据库管理系统企业考勤系统的运行必然离不开数据库的应用,对于该系统来说,数据库管理系统(DatabaseManagementSystem,DBMS)是其实现和正常运行的重要保证。数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统的主要功能包括:数据定义功能,数据组织、存储和管理,数据操纵功能,数据库的事务管理和运行管理,数据库的建立和维护功能,其他功能。[13]企业考勤系统需要存储职员的基本信息、考勤信息等,以及对这些信息的更新、添加、删除等,加上系统选用了MicrosoftVisualStudio2010软件来编写代码,因此在该系统中,选择SQLServer2008来管理系统的后台数据。在SQLServer2008的管理下,我们可以在Microsoft.NET和VisualStudio开发出的应用程序里使用数据,编程工作人员可以通过日常使用的工具直接访问数据,是实现该系统的理想数据库管理系统。35
2.5ADO.NET技术ADO.NET的名称起源于ADO(ActiveXDataObjects),是一个COM组件库,Microsoft希望表明ADO.NET在.NET编程环境中使用数据访问接口的优先地位,而采用了这样的名称。在发布之初,人们普遍认为它是访问任何类型数据的通用解决方案:从数据库到电子邮件,从无格式文本文件到电子表格。ADO代表了对以前数据访问方法的一种重大变革[14]。ADO.NET提供了平台互用性和可伸缩的数据访问,对非连接编程模式的支持力度加强。它传输的数据是XML格式的,只要应用程序具备读取XML格式的能力,都能够借此来处理数据。ADO.NET是一组面向对象的类库,通过它,应用程序和数据源才能够进行正常的通信。ADO.NET提供了一系列公共方法,来保证与数据源的交互行为,并且可以在不同的数据源之间进行交互。在企业考勤系统的开发中需要使用到类库中的Connection类、Command对象、DataReader类、DataSet对象、DataAdapter类、DataTable类等,保证与数据库的正常连接和系统顺利运行。[15]2.6本章小结本章主要就设计和开发企业考勤系统所用到关键性技术以及开发使用的各种工具进行了简要的阐述。在系统界面和代码部分,我采用C#编程语言,并且在MicrosoftVisualStudio2010环境下运行;在后台数据部分,使用SQLServer2008对系统中的各项数据实现灵活、高效、有序的管理,即时地根据系统的添加、删除、考勤等功能对数据库中的数据更新。35
第三章企业考勤系统需求分析本章主要对企业考勤系统进行市场需求的可行性分析,详细分析了开发该系统的各方面的可行性,具体阐述开发企业考勤系统需要实现的主要功能,以及在设计系统时的设计思路。3.1系统的可行性分析3.1.1市场需求的可行性积极创兴、以技术为核心的初创型企业过去是市场中唯一的颠覆力量,其增长速度高于那些规模更大、更加成熟的竞争对手。然而,这种局面很可能即将结束,大型企业已开始利用自身的技能、规模和影响力优势,转型成为真正的数字化组织。[16]从埃森哲对大型企业正转型为数字化组织的六大趋势的分析来看,不难看出只有在企业中全面推行数字化,利用计算机和计算机技术来操作企业的各项事务,企业的发展速度才能够跟上时代发展的大潮,才会有可能在众多竞争对手中脱颖而出。企业考勤系统是企业制度化管理和企业数字化结合的产物,在当今的企业中有着巨大的需求量。3.1.2系统开发操作的可行性企业考勤系统的界面要求有较好的交互性,我选择在MicrosoftVisualStudio2010环境下采用C#进行开发,这样可以快捷地创建Windows窗体,可以灵活地根据具体的功能添加各种组件,并且可以很方便地对组件的触发事件进行编程,实现相应的功能。C#是由C和C++衍生出来的面向对象的编程语言,并且和Java有着惊人的相似之处,因此在掌握和使用的过程中障碍少,面临的问题解决起来比较简单。该系统使用SQLServer2008管理后台数据,该软件能够与MicrosoftVisualStudio2010很好地对接,很大程度上提高了系统数据的处理效率。总之,在这样的系统开发环境下,系统开发的可操作性很强。3.1.3系统开发硬件的可行性35
对于本课题所要设计和实现的企业考勤系统来说,我所做的系统仅是理论研究性质的,并不需要真正的投入市场使用,所要实现的功能也没有大型企业中使用的考勤系统复杂,因此,对于硬件的要求并不高。电脑硬件配置低,则系统运行效率低,可能会出现死机的情况,但是对于现在个人电脑的配置,要想顺利地开发和运行本课题要求的考勤系统完全没有问题。我从以上三个方面对企业考勤系统的可行性进行了分析,在当前电脑硬件条件和本人计算机技术的掌握情况下,开发该系统没有问题。3.2系统的需求分析需求分析是软件生命周期的起始阶段,是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求的过程,包括从用户角度,以及从开发者角度来阐述需求。[10]企业考勤系统,顾名思义是指管理企业职员的上下班时间、出勤情况等考勤记录的管理系统,一般人事管理部门以此来掌握企业职员的出勤动态。在实际应用中,企业考勤系统通常是考勤软件和考勤硬件结合使用的,但是由于条件限制,本课题设计和实现的考勤系统仅限于软件使用。考勤系统的核心功能是将企业中每个职员上下班时间和请假、缺勤等情况准确地记录下来,并且能够对这些数据进行管理和分析,以此为依据考评职员。在此功能的要求下,则必须要有管理员添加普通职员的功能,使得每个职员能够私密地登录自己的账号,查看自己的各项信息,并且彼此之间互不干扰。此系统中各个界面的主要功能如下:登录界面:设置两种登录权限,实现管理员和普通职员两种不同身份登录。管理员界面:1、添加新职员,删除现有职员;2、添加新管理员,删除现有管理员;3、添加职员的请假信息,查看职员上下班情况以及请假信息;4、修改当前管理员的密码;5、选择职员并且查看该职员迟到、早退以及请假的统计数据;6、导出或者打印职员的考勤信息;7、根据职员的考勤情况,对职员的工资进行相应的增减;8、注销当前账号的登录。普通职员界面:1、查看当前职员的基本信息;35
2、上下班签到,并可以知晓自己是否迟到或者早退;3、查看当前登录的职员的考勤信息;4、修改当前职员的密码;5、注销当前账号的登录。3.3本章小结本章主要对设计和实现企业考勤系统的可行性进行了详细的分析,从市场需求、操作性、硬件配置等方面充分地论证了开发该系统的可行性。在本章的最后,介绍了企业考勤系统的核心功能,以及我对该系统的功能的理解和设计思路。在接下来的几章中,会更加具体地阐述开发该系统的操作和实现过程。35
第四章企业考勤系统设计本章主要讲述设计企业考勤系统的设计思想、设计原则等。4.1系统设计思想企业中人事管理部门是对整个企业职员管理的核心部门,考勤是考评企业职员日常表现的重要标准之一,考勤系统则是提供这些参考数据的重要工具。企业考勤系统应该是企业人事管理系统的一个重要组成部分,其投入使用之后,对企业人事管理发挥着至关重要的作用。企业考勤系统的设计和实现将遵循此思想。根据企业中考勤的实际需求,企业考勤系统的设计以实用性、易用性为主,并且充分考虑未来的扩展性。4.2系统设计原则(1)实用性原则任何应用系统最终都是要应用于实际的,这就要求设计充分调查企业中的实际情况,考虑企业考勤的实际需求,解决实际问题,以提高人事管理的效率为目标。(2)易用性原则任何系统开发的目的都是为了投入使用,拥有简洁明了的用户界面和较好的交互性是必不可少的。系统应该具有易于使用、方便维护的优点,使使用者只需要通过简单的了解就可以熟练地操作。(3)先进性原则系统要符合当今市场和技术的发展趋势,在选择技术时注意选择先进、成熟、稳定的技术,保证该系统不会过早地被淘汰。(4)可扩展性原则系统能够方便地扩展和维护,包括功能上的扩展和企业职员的扩展,以适应企业的发展。[17]35
4.3系统结构功能设计该系统的功能模块如图4.1所示,主要画出了管理员和普通职员两个重要部分的功能模块。从图中可以看出,管理员实现的功能比普通职员的稍多一些,在管理员权限下可以添加职员,并且管理、查看每个职员的各种信息,而在普通职员的权限下只能够看到自己的信息。图4.1企业考勤系统功能结构图35
4.4数据流图图4.2企业考勤系统数据流图DFD(DataFlowDiagram,数据流图)是在软件或者系统的设计阶段常常会用到的一种很实用的工具。数据流图把系统的逻辑功能、数据流向和变换的过程,用图形的方式表现出来,是在结构化分析时常常采用的一种功能模型。企业考勤系统的数据流图如图4.2所示,从数据流图中可以看出企业职员考勤的数据流向。4.5用户界面设计原则用户界面(UserInterface,UI)是指人与计算机系统之间的通信媒介或手段,它是支持人-机双向信息交换的软件和硬件。界面是通信的媒介或手段,具体地说就是有关的支持软件和硬件。[18]35
用户界面是一个应用程序中最重要的组成部分,是使用者与系统交互的门窗。用户在使用应用程序时,最直接能够接触到的就是用户界面,而不是隐藏在用户界面后面的大量保证程序正常运行的代码。无论一个应用程序能实现多少功能,最终都需要依赖用户界面来保证可用性。用户界面设计应该遵循以下几点原则:(1)以用户为中心用户是所有操作的核心,用户在使用应用程序时,根据自己的意愿来控制程序如何工作。(2)界面统一性在人机交互设计中应该注意统一性,用户界面的设计也是如此。统一性既包括使用标准的控件,也指使用相同的表现方法,如在字体、标签风格、颜色、术语、显示错误信息等方面确保统一。[18]具有同一性的用户界面,显得清爽,不会让用户觉得烦躁。(3)合理设计布局,保证界面简洁软件的界面就好比是人的脸面,其设计也需要遵循美学原则,在界面上尽量保持整洁,使形成的布局简洁明了。(4)出错信息和警告应用程序在使用的过程中,经常会因为用户操作不当或者输入错误跳出出错信息。对于这类提示框,在设计系统时要注意:使用用户能够理解的语言或符号信息描述提示的内容;对用户的错误操作等要提醒可能造成的后果,并且提出相应的解决办法;伴随视觉或者听觉上的提示,确保能够吸引用户的注意力。4.6本章小结本章详细介绍了企业考勤系统的设计思路,明确地划分了系统中的功能模块,在参考了各种文献资料的基础上,提出了设计系统和用户界面需要遵循的各项原则,为具体的开发提供了明确的方向。35
第五章系统的数据库结构设计设计一个能够动态记录职员考勤信息的企业考勤系统,数据库的设计必不可少,本章就该系统的数据库设计展开阐述。5.1数据库设计的重要性数据库的应用已经渗透进我们工作的方方面面,现行的应用程序大多依赖于数据库才能够正常运行。经过优化的数据关系,保证了数据库的高效运行,提高了数据库的可维护性。好的数据库设计(关系型数据库)作用主要体现在以下几个方面:(1)充分体现需求,精准地表达出数据表之间的关系;(2)保证数据是准确的,各个表中的数据要求具有一定的一致性;(3)缩短查询所用时间,保证查询的正确率;(4)在系统更新换代时,保证其扩展性。[19]数据库设计得优化,查询数据时才能够简单高效,提高系统的性能。一个应用程序的性能高低及可维护性的好坏,很大程度上取决于数据库的设计是否优化。5.2数据库的设计原则(1)正确理解和处理原始单据与实体之间的关系原始数据单据与实体之间存在三种关系:一对一、一对多和多对多的关系。这里的实体可以理解为基本表。(2)关系的三类完整性约束必须应用到具体操作中。1、实体完整性:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值;2、参照完整性;3、用户定义的完整性。(3)遵从“三少原则”:1、一个数据库中表的个数越少越好;35
2、一个表中组合主键的字段个数越少越好;3、一个表中的字段个数越少越好。[17]5.3系统的主要表结构根据查阅的资料,并且经过分析,建立了系统数据库。在这个系统的数据库中一共有五张表,分别是管理员信息表(tb_admin)、职员信息表(tb_employee)、职员上班签到表(tb_onDuty)、职员下班签到表(tb_offDuty)、职员请假表(tb_vacate)。下面列出了几个主要表的详细设计内容。(1)管理员信息表记录了管理远的相关信息,如表5.1所示。表5.1管理员信息表(tb_admin)列名数据类型是否主键功能描述IDnvarchar(50)是管理员编号namenvarchar(50)否管理员用户名passwordnvarchar(50)否管理员登录密码(2)职员信息表记录了普通职员的各项基本信息,如表5.2所示。表5.2职员信息表(tb_employee)列名数据类型是否主键功能描述employeeIDnvarchar(50)是职员编号namenvarchar(50)否职员姓名(用户名)passwordnvarchar(50)否职员登录密码sexnvarchar(50)否性别birthdaydate否出生日期salaryint否工资phonenvarchar(50)否联系方式35
departmentnvarchar(50)否所在部门nationnvarchar(50)否民族educationnvarchar(50)否学历inTimedate否时间politicsnvarchar(50)否政治面貌(3)上班签到表记录了职员每天的上班时间以及是否迟到,如表5.3所示。(4)下班签到表记录了职员每天的下班时间以及是否早退,如表5.4所示。(5)职员请假表记录了职员请假的日期以及请假原因,如表5.5所示。表5.3职员上班签到表(tb_onDuty)列名数据类型是否主键功能描述IDint是记录的编号employeeIDnvarchar(50)否职员编号namenvarchar(50)否职员姓名onDutydatetime否职员上班时间beLatenvarchar(50)否是否迟到表5.4职员下班签到表(tb_offDuty)列名数据类型是否主键功能描述IDint是记录的编号employeeIDnvarchar(50)否职员编号namenvarchar(50)否职员姓名offDutydatetime否职员下班时间35
leaveEarlynvarchar(50)否是否早退表5.5职员请假表(tb_vacate)列名数据类型是否主键功能描述IDint是记录的编号employeeIDnvarchar(50)否职员编号namenvarchar(50)否职员姓名vacatenvarchar(50)否职员请假日期reasonnvarchar(50)否请假原因5.4表与表之间的关联由于职员与其上班时间、下班时间,以及请假记录是一对多的关系,所以将在tb_employee表中的employeeID分别与tb_onDuty表、tb_offDuty表和tb_vacate表中的employeeID建立连接。由于本人能力有限,设计的表结构不够完美,导致表与表之间的连接显得比较冗余。5.5本章小结本章主要讲述了有关于企业考勤系统数据库设计的指导思想、设计原则等,详细地列出了数据库的表结构。数据库的建立是系统设计的基础,没有良好的数据库,系统的功能即使再丰富,也不能实现满足高效性的。35
第六章企业考勤系统的实现前几章的内容可以说都是为实现系统而做的准备,在本章中就要开始阐述系统的具体实现。6.1系统登录界面的实现企业考勤界面在登录时,用户根据自己的身份选择相应的权限,输入自己的用户名和登录密码,只有用户名和密码都正确,并且与选择的权限相对应才能够成功进入系统。否则,系统会提示输入错误。系统默认是以管理员权限登录,用户名为admin,密码为admin。系统的登录界面如图6.1所示。图6.1企业考勤系统登录界面登录界面登录功能实现的主要代码如下所示。if(limit.SelectedIndex==0){//用自定义方法getCom在tb_admin数据表中查找是否有当前登录用户SqlDataReadercheckNP=myClass.getCom("select*fromtb_adminwherename=""+textName.Text.Trim()+""andpassword=""+textPassword.Text.Trim()+""");boolifCom=checkNP.Read();//必须用Read方法读取数据if(ifCom)35
{dataClass.mySQL.loginName=textName.Text.Trim();//将用户名记录到公共变量中dataClass.mySQL.loginPassword=textPassword.Text.Trim();dataClass.mySQL.loginID=checkNP.GetString(0);//获取当前操作员编号dataClass.mySQL.myCon.Close();//关闭数据库连接dataClass.mySQL.myCon.Dispose();//释放所有资源this.Hide();//隐藏当前窗体newmain().ShowDialog();}else{MessageBox.Show("用户名或密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);textName.Text="";textPassword.Text="";}myClass.closeCon();}以上代码是当登录权限为管理员时的登录代码。管理员和普通职员的区分,通过对下拉列表中值的判断来实现。用户名、密码和权限一一对应方可登录,否则会弹出登录失败的提示框。登录成功后,即可进入系统主界面。由于管理员权限与普通职员权限下要实现的功能不同,因此管理员和职员进入的主界面不完全相同。在该界面中我使用了一个MenuStrip组件来创建菜单栏。管理员权限下的主界面如图6.2所示。35
图6.2企业考勤系统主界面(管理员)6.2添加职员功能的实现管理员进入主界面后可以添加职员,管理员需要填写职员的姓名、编号、出生年月工资、所在部门等一系列的信息,并且为该职员设置登录初始密码。管理员填写完职员信息后按“确认添加”按键进行添加,或者按“重置”按键清空刚才输入的所有信息。添加成功的职员的基本信息记录在数据库tb_employee表中。在添加职员的时候,如果管理员填写的员工编号与tb_employee表中employeeID列中的某一记录值相同,在按下按键的时候会弹出提示职员编号重复的提示框,此时添加职员的操作失败。职员姓名一栏为空时也会出现类似的情况。只有被管理员添加成功过的职员,才有资格登录系统。管理员添加职员的界面如图6.3所示。添加职员功能实现的主要代码如下所示。privatevoidok_Click(objectsender,EventArgse){if(this.name.Text==""){MessageBox.Show("职员姓名不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}if(myClass.getDataSet("select*fromtb_employeewhereemployeeID=""+35
employeeID.Text.Trim()+""").Tables[0].Rows.Count>0){MessageBox.Show("职员编号重复!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}dataClass.mySQL.execSql("insertintotb_employee(name,employeeID,password,sex,brithday,salary,phone,department,nation,education,inTime,politics)values(""+name.Text.Trim()+"",""+employeeID.Text.Trim()+"",""+password.Text.Trim()+"",""+sex.Text.Trim()+"",""+birthday.Value+"",""+salary.Text.Trim()+"",""+phone.Text.Trim()+"",""+department.Text.Trim()+"",""+nation.Text.Trim()+"",""+education.Text.Trim()+"",""+inTime.Value+"",""+politics.Text.Trim()+"")");MessageBox.Show("添加成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}图6.3添加职员界面(管理员)35
管理员可以在职员管理界面查看已经添加进数据库的所有职员的信息,可以在该界面对某一数据进行修改,也可以删除某一职员的记录,删除的操作也会将数据库中该职员的记录一并删去,也就是意味着该职员从此不再属于该企业,不能够登录该系统。管理职员界面如图6.4所示。图6.4职员管理界面(管理员)在管理员查看职员各项信息的界面中,主要依靠DataGridView组件来实现,具体代码如下。publicvoidgetDate(){stringSQL="select*fromtb_employee";DataSetds=myClass.getDataSet(SQL);employeeView.DataSource=ds.Tables[0];}privatevoidemployeeList_Load(objectsender,EventArgse){this.tb_employeeTableAdapter1.Fill(this.db_attendance_managementEList.tb_employee);}职员也可以在进入系统后,查看自己的个人信息,但是不能够更改或者删除个人信息,也不能够看到他人的信息。添加管理员和管理员管理两个界面以及各自功能的实现,分别与职员添加和管理的相类似。添加管理员所要填写的内容远远少于添加职员要填写的内容,实现的代码也相对简单一些,在此就不再重复了。添加管理员的界面如图6.5所示。35
图6.5添加管理员界面6.3考勤功能的实现考勤功能是该系统的核心,管理员和普通职员权限下的考勤功能有所不同。管理员主要管理职员的请假,而日常上下班签到都是由职员自己完成的。管理员和职员的考勤界面分别如图6.6和图6.7所示。职员上下班签到功能实现的主要代码如下所示。publicpartialclassaddAttentionE:Form{dataClass.mySQLmyClass=new企业考勤系统.dataClass.mySQL();stringonDuty="8:30";stringoffDuty="17:00";privatevoidbonDuty_Click(objectsender,EventArgse){judge.Text="";judge.Text="是否迟到:";stringontime=System.DateTime.Now.ToString();stringtimeStyle=System.DateTime.Now.ToShortTimeString();35
tonDuty.Text=ontime;boolck;if(string.Compare(onDuty,timeStyle)<0){tjudge.Text="是";ck=dataClass.mySQL.execSql("insertintotb_onDuty(employeeID,name,onDuty,beLate)values(""+dataClass.mySQL.loginID+"",""+dataClass.mySQL.loginName+"",""+tonDuty.Text.Trim()+"",""+tjudge.Text.Trim()+"")");if(ck)MessageBox.Show("您迟到了!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);elseMessageBox.Show("签到失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{tjudge.Text="否";ck=dataClass.mySQL.execSql("insertintotb_onDuty(employeeID,name,onDuty,beLate)values(""+dataClass.mySQL.loginID+"",""+dataClass.mySQL.loginName+"",""+tonDuty.Text.Trim()+"",""+tjudge.Text.Trim()+"")");if(ck)MessageBox.Show("签到成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);elseMessageBox.Show("签到失败!","提示",MessageBoxButtons.OK,35
MessageBoxIcon.Information);}}}数据库中的考勤信息可以供管理员和普通职员查看,不同的是管理员可以看到所有职员的考勤信息,而职员只能够看到自己的考勤信息。图6.6添加职员请假信息的界面(管理员)图6.7职员上下班签到的界面(职员)35
职员在上班的时候,登录系统进行签到。职员按下“上班”按键的同时,系统会将当前计算机系统的时间显示在“上班时间”的提示框,同时弹出提示框,若上班时间晚于8:30则会提示上班迟到,并且将这些数据记录进数据库。下班签到的操作与上班签到的操作类似。6.4考勤管理功能的实现管理员在使用该系统时,主要是要获取所有职员的考勤信息,包括上、下班的时间和请假的情况。因此,在管理员登录的条件下,可以将所有职员的考勤信息导出为一个Excel文件,并且可以直接在该系统中将考勤信息打印出来,方便存档和后期管理。考勤管理界面如图6.8所示。图6.8考勤管理(管理员)界面可以看到在该界面中,管理员可以分别对职员上下班时间和请假情况进行操作。在按下“导出Excel文件”的按钮后会出现保存文件的对话框,提示管理员下一步的操作,操作成功后,会在相应的位置生成一个Excel文件。6.5修改密码的功能的实现35
管理员和普通职员在登录系统后,都能对本人账户的密码进行修改。修改密码需要输入原密码,并且两次输入新密码用确认密码输入无误。若原密码输入错误,或者两次输入的新密码不一致,则会弹出相应的提示框提示错误信息。只有满足所有条件,才能成功地重置密码。修改密码的界面如图6.9所示。修改密码的功能实现相对比较容易,在此省略具体的实现代码。图6.9修改密码的界面6.6信息统计功能的实现信息统计功能是在管理员的权限下实现的功能,管理员可以通过职员编号选定某一个职员,查看这位职员的上班迟到、下班早退和请假的次数,用以作为考核的参考。信息统计的界面如图6.10所示。图6.10信息统计界面(管理员)通过职员编号显示对应的职员姓名的主要代码如下所示。privatevoidstatistics_Load(objectsender,EventArgse){stringSQL="select*fromtb_employee";DataSetds=myClass.getDataSet(SQL);employeeID.DataSource=ds.Tables[0];employeeID.DisplayMember="employeeID";employeeID.ValueMember="name";35
if(mID!=""){DataTabledt=newDataTable();dt=myClass.getDataSet("select*fromtb_vacatewhereemployeeID=""+mID+""").Tables[0];if(dt.Rows.Count>0){employeeID.Text=dt.Rows[0]["employeeID"].ToString();employeeName.Text=dt.Rows[0]["name"].ToString();}}}privatevoidemployeeID_SelectedIndexChanged(objectsender,EventArgse){try{stringSQL="select*fromtb_employeewhereemployeeID=""+employeeID.Text.Trim()+""";DataSetds=myClass.getDataSet(SQL);employeeName.Text=ds.Tables[0].Rows[0]["name"].ToString();}catch{}}实现查询的主要代码是一句SQL语句:selectcount(beLate)as迟到次数fromtb_onDutywherebeLate="是"andemployeeID=""+employeeID.Text.Trim()+""。35
在这个界面中实现了另一个重要的功能。管理员可以在此根据查询到的职员的迟到、早退和请假的次数,以及企业对职员工资计算方式的相关条例,对该职员酌情地添加奖励和处罚的工资,并且在数据库中对职员信息表中的工资信息进行修改,以便职员自己查看。在管理员按下“确认录入工资”按钮的同时,在实际工资的文本中会显示修改后的最新工资情况。至此系统的主要功能的实现介绍完毕,有些功能实现很简单,并没有对其进行赘述。6.7本章小结本章主要讲述了企业考勤系统各项功能的具体实现,并且附上了各个用户界面的图片和每个功能的实现代码。对于重要的、核心的功能,如考勤功能,描述的比较详细,其余的功能则一笔带过。35
第七章系统的测试在前几章中,企业考勤系统的设计和实现以及基本可以告一段落了,在这一章中,主要是对已经做好的系统进行测试。7.1软件测试的简介软件测试是指使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验被测试系统是否满足规定的要求或弄清预期结果与实际结果之间的差别。[20]软件测试的真正目的不在于发现错误,而在于改正错误,其工作量体现在对软件或者系统中的漏洞的修补。在计算机应用软件的发展史上,因为没有重视软件测试而形成软件缺陷的例子比比皆是,由此造成的悲剧也让人扼腕叹息。[21]由此可见,软件测试是保证软件质量必不可少的一环。通常在软件测试时,我们会采用以下几种不同类型的测试方法。黑盒测试,相当于将程序内部结构和特性等,全部放在一个黑盒子里,测试人员在完全看不到它们的情况下,对其功能进行测试;白盒测试,主要是用来分析软件实现的代码,其测试用例以其内部的构造为依据来设计;灰盒测试,同时兼具黑盒测试和白盒测试的特点,不仅关注输出对于输入的正确性,同时也关注内部表现。[22]7.2系统测试的内容由于时间紧迫,我对系统的测试并没有严格按照标准的流程来进行,我仅对该系统进行了以下的测试。1、对系统功能的测试在系统开发的过程中,每编写一个功能的代码,我都会对该功能进行调试,测试是否能够实现预期的功能,并且及时地加以修改。系统开发完毕,我测试了系统整体的运行情况,系统运行良好,预计的功能基本都能够实现,对于失灵的功能,重新编写代码,基本解决了功能实现方面的问题。2、对系统安全性的测试由于系统分为两个权限登录,并且在系统中能够查看到的信息涉及到个人隐私,所以有必要对系统进行安全性测试。对系统的安全性测试主要测试内容如下:35
(1)对不同权限登录的测试:在系统登录界面测试是否能按照预计使用不同的权限登录系统,测试结果良好,没有出现越权的现象,而且数据库中不存在的用户,不能登录该系统。(2)对不同权限使用系统的测试:在登录系统后,测试管理员是否能够添加员工,并且查看所有人的信息;普通职员是否只能够查看自己的个人信息,而不能够查看他人的任何信息,测试结果良好。3、对系统的其他测试任何一个系统的使用都不可能只在开发该系统的计算机上运行,可移植性也是系统质量是够过关的重要标准之一。我在其他几台计算机上都对该系统进行了运行测试,运行正常,可移植性测试结果良好。数据库对于系统来说是一个很重要的组成部分,数据库不仅要有优化的表结构,也要有较好的安全性。在系统运行后,数据库能够正常的记录系统中需要记录的数据,安全性也相对较好,对数据库的测试结果良好。7.3本章小结系统的测试工作是系统开发和实现的最后一环,也是极为重要的一步。系统的功能能否正常实现、能否顺利地在各种环境中使用等都要依靠测试来发现和解决问题。在本课题中,我对系统做的测试主要就是以上所述内容。35
第八章总结与展望8.1总结本文详细阐述了企业考勤系统的设计与开发的过程。首先对系统从市场需求、系统开发所需的硬件条件和软件条件等角度进行了详细的可行性分析研究,并使用不同的方法描述了我对系统,以及数据库的设计思想,介绍了系统的实现过程和测试过程,展示了系统中的部分界面。经过实践操作,企业考勤系统的运行情况良好,基本实现了企业考勤的核心功能,能够满足中小型企业职员考勤的需要,与传统的人工记录的方式相比较,能够大大提高企业的办事效率。在系统开发和设计的过程中,我遇到了很多问题。主要是因为对C#编程语言和SQL语言不够熟悉,对开发使用的平台和数据库管理系统都不了解,实际操作和动手能力尚有待提高。通过查阅大量的资料,我从头开始学习基础知识,在开发的过程中不断地发现不足,一点点尝试,不断改进,因此进度有些慢,很多功能的实现情况也不够理想。数据库的表结构和表关系设计得不够科学,数据表相对过多,代码编写部分冗余较多。所幸的是,经过这四个多月的努力,虽然做出来的成果并不能完全达到预期的效果,但勉强算得上差强人意。8.2未来的展望通过对企业考勤系统的设计与开发,将我在大学期间的所学紧密地结合在一起,也让我看到了自己的不足。所学是要应用到实际才能发挥作用的,纸上谈兵永远不会发现自己真正的缺陷在哪里,也不会有大的进步。虽然这个系统的功能还不够完善,但是我的动手能力却是大有提升。在接下来的日子里,我会根据考勤系统中的不足对系统进行更进一步的完善,具体的计划如下:(1)系统的界面还不够美观,我再会对系统界面中的组件安排更加合理的布局,使界面看起来更符合审美。(2)系统中还存在很多的冗余代码,我会查阅相关的书籍,提升自己的编程能力,掌握更多的编程技巧,力求在不减少系统功能的基础上,介绍代码冗余,提高代码的可维护性。35
(3)对于真正应用于企业的考勤系统来说,我深知我所完成的系统功能是远远不够的,在接下来有限的时间里,我会尽可能地多找些企业考勤系统的例子,参考已经投入使用的企业考勤系统,从中发现自己的不足,根据自己的能力,给自己设计开发的系统中尽量多加入一些新的功能。(4)系统的数据库中的表结构设计的比较混乱,数据表不够简介,我会尽量优化数据表,提高查询效率。35
参考文献[1]许煜,曾家俊,池宏博,刘科峰.基于JSP的高校学生考勤管理系统设计与实现[J].福建电脑,2016,第1期:28-66.[2]郭博,王诗兵,牛磊.企业考勤管理系统的设计与实现[J].赤峰学院学报(自然科学版),2015(1):60-61.[3]王楠.基于C/S模式的体育事业统计年鉴信息系统设计与实现[J].电子测试,2014,(24):156.[4]马伟.易学C#[M].北京:人民邮电出版社,2009.[5]徐超,葛红美.C#项目开发教程[M].北京:北京大学出版社,2012.[6]SolisD.C#图解教程[M].北京:人民邮电出版社,2009.[7]刘浩,陈曙东.C#编程实例与技巧[M].北京:清华大学出版社,2002.[8]PetzoldC.C#程序设计[M].北京:机械工业出版社,2004.[9]刘彩利.C/S和B/S混合体系结构的开发与应用[J].电子设计工程,2015,23(14):26-28.[10]董小琴.基于C/S架构的酒店管理信息系统[D];大连理工大学,2008.[11]鲁慕周.基于C/S模式的校园机群系统的研究与开发[J].河北建筑工程学院学报,2014(2):85-88.[12]李友红.浅析C/S结构与B/S结构混合的图书馆管理系统[J].电子测试,2014(2):76-77.[13]王珊,萨师煊.数据库系统概论(第4版)[J].高等教育出版社,2006.5.[14]McClure.SQLServer2005,Oracle与MySQL基于ADO.NET2的高级编程[M].北京:清华大学出版社,2007.[15]姚建晨.企业考勤管理系统的设计与实现[D];电子科技大学,2015.[16]埃森哲.埃森哲揭示2014年六大数字技术趋势大型企业正转型为数字化组织[J].电脑与电信,2014(3):10-11.[17]启明工作室.ASP.NET+SQLServer网络应用系统开发与实例[M].北京:人民邮电出版社,2005.35
[18]徐刚.Windows用户界面设计与优化策略[M].北京:人民邮电出版社,2005.[19]熊辉.浅析数据库设计技巧[J].科学时代,2012(11).[20]周元哲.软件测试基础[M].西安:西安电子科技大学出版社,2011.[21]郑人杰.计算机软件测试技术[M].北京:清华大学出版社,1992.[22]郑炜.软件测试[M].西安:西北工业大学出版社,2011.35
您可能关注的文档
- 广州九肴涮加盟公司考勤管理制度
- 软件工程毕业设计_基于指纹识别的考勤管理系统.doc
- 考勤管理hr要在六个方面加以关注
- 餐饮服务六大技能-在线式考勤管理系统
- 智慧工地考勤管理解决方案
- 数据库系统课程设计-企业考勤管理系统设计
- 考勤管理系统论文
- 基于指纹识别技术的考勤管理系统大学论文.doc
- 公司考勤管理系统设计大学论文.doc
- 考勤管理制度62234
- 中学学校考勤管理制度
- 基于指纹识别的考勤管理系统大学论文.doc
- 公司考勤管理制度
- 九肴涮加盟公司考勤管理制度
- 中小企业专用考勤管理制度全套制度.doc
- 员工考勤管理制度-金石家居
- 考勤机使用和考勤管理制度
- 基于c#+oracle的考勤管理系统的设计与开发