人力资源管理系统课程设计报告_第1页
人力资源管理系统课程设计报告_第2页
人力资源管理系统课程设计报告_第3页
人力资源管理系统课程设计报告_第4页
人力资源管理系统课程设计报告_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

年6月23日人力资源管理系统课程设计报告资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。课程设计课程名称大型数据库题目名称人力资源管理系统专业班级XXXXX学生姓名XXXXXXXXFX学号XXXXXXXX指导教师XXXXXX二○一○年十二月二十八日目录TOC\o"1-3"\h\u12076摘要 28201第一章绪论 3187571.1问题的提出 3307941.2解决的方法 4206051.3人力资源管理系统概述 5101931.3.1人力资源管理系统的发展 548551.3.1人力资源管理系统的特点 728971.4开发工具的介绍 83410第二章人力资源管理系统分析与设计 10155732.1人力资源管理系统功能分析 10270472.2人力资源管理系统模块设计 1423881第三章人力资源管理系统功能实现 18203633.1登录界面 1879353.2主界面设计 22217383.3职工管理窗口设计 24167773.4考勤系统设计窗口 2879283.5工资管理设计界面 3329045第四章总结 3831638参考文献 39摘要企业在激烈的市场竞争环境下求得生存,就必须有效地利用人才、时间、信息结合的优势。因此,如何使企业及时掌握本企业人才的各种信息、第一时间处理好随时变化的人力资源管理问题,建立一套符合企业实际的人力资源管理系统就显得尤为重要,而我们所开发研究的企业人力资源管理系统,能帮助企业准确地进行各种数据的输入、更新、计算、汇总、结算、发放等分析统计工作,从而实现了企业人力资源管理的系统化、规范化、自动化。随着经济水平的发展,知识经济时代给企业人力信息管理提出了更高的要求,除了以往的工资利用计算机软件excel能够管理外,公司更希望能够对以往的各种的人事信息,考勤信息,工作评价信息,工资信息等统一管理起来。高效的、准确的人事管理,不但能促进员工不断提高自身素质、提高工作积极性。从而提高员工工作质量和效率。对企业而言,人力资源是企业最宝贵的资源,也是企业的”生命线”。实行电子化的系统管理,能够让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作,人力资源管理信息系统的实现能够减轻比较繁琐的手工信息管理。因此能够开发出一个实用,准确的人力资源管理系统对于企业来说是重中之重!关键词:企业管理、人力资源、信息技术第一章绪论1.1问题的提出随着公司逐年的发展,公司的人力资源管理等事务纷繁芜杂,但大致上这些事务可包括以下几个方面的内容:人事基本信息管理,员工的业务档案管理、员工的工作评价管理、员工的考勤管理、员工的工资管理等。以上各项中的每一个部分都有该方面的管理明细,以员工的基本信息管理为例,包含的明细有:员工编号、姓名、性别、部门、民族、出生年月、政治面貌、家庭住址、联系电话、毕业学校、学历等。若用人工的方法来管理这些数据,不但会造成人力、物力、财力上的浪费,而且因为要处理的信息量过大不容易进行统计和分析。依靠传统的手工管理越来越跟不上公司的发展需要,为了精简人员,提高办事效率和节约公司运营成本,特别需要改变以前单纯依赖人工管理的模式。1.2解决的方法开发一个更实用更可靠的人力资源管理系统。具体方法如下:管理一个公司的整个系统的运行,包括员工基本信息,员工工资管理,员工的考勤情况,部门信息,岗位信息等。然后设置不同的用户,给予不同的权限,以进行不同的操作。1、先创立一个菜单,让用户选择是对哪一类对象进行操作。2、确定好对哪一类对象进行操作后,程序又创立一个菜单让用户选择对此类对象进行如何操作。操作包括:输入记录、显示记录、修改记录和删除记录。3、输入记录时提示用户输入每一条记录的各个字段,输入的每一条记录都要保存到文件如(a:\\example.dat)下。注意一条记录相当于一个对象。输入的工号不能重复,输入的数据字段作有效性检测。4、显示记录时,先提示用户输入要显示哪一个记录号的记录,如记录号在不超出范围则显示要访问的记,否则告诉用户记录号超出范围。5、修改记录时,先要求用户输入要修改的记录关键字内容,如学生的关键字段学号、员工的关键字段是工号。输入好关键字后进行查找所要修改的记录,找到了重新输入该记录的数据成员内容,否则告诉用户找不到此记录。

6、删除记录时,先要求用户输入要修改的记录关键字内容,)输入好关键字后进行查找所要删除的记录,找到了把它删除掉,否则告诉用户找不到此记录。提示:删除的方法先创造一个临时的文件(a:\\example.tmp),一条一条记录查找过去,把非要删除的记录一条一条写到临时文件下,然后把临时文件复制到a:\\example.dat下。1.3人力资源管理系统概述人力资源管理系统是典型的管理信息系统,采用计算机管理企业的人力资源管理是当前不可缺少的一种管理手段。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强,数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。

本系统着眼于人力资源管理制度的业务实际,经过实际的需求分析,采用功能强大的C#做为开发工具、SQLServer做为数据库开发出来的系统。

本人力资源管理系统可管理职工基本信息的记录,进行修改,增加,查询,删除一些功能.并能够进行工资的修改,增加,查询,删除.还可对员工的考勤情况进行管理,主要用于电脑成员员工对公司人力资源的统一管理,同时方便统计部分数据。1.3.1人力资源管理系统的发展一个企业在市场中的竞争优势集中表现为以下两点:一、企业是否具有在人才市场中具有能优势的人才;二、企业所具有的人才是否具有合适的环境。因此现在的成功企业一般关注以下两个方面,一是积极寻找合适的人才,并向办法留住人才,还有一个就是营造企业的内部环境,一面促进人才的成长,一面又有利于人才脱颖而出。这两个方面,可能后者更重要,因此现在企业最流行的莫过于重组与再造,而且所有的管理活动都能够经过计算机和网络完成,比如生产管理系统、物流管理系统、财务管理系统、客户管理系统等等。所有的管理系统都是为了加快企业应变能力和业务处理能力,但所有这些的实现又以企业的员工为基础,因此人力资源管理者,如果还想成为CEO的战略伙伴,就必须要改变自己的工作模式,加快自身对企业内外环境、企业目标,以及其它直线部门的需要和变化的响应,并提高工作质量。要想实现对这种快速变化的环境和需求的快速相应,我们就必须能够尽早获得和传输需求信息或变化的信息,必须更快的处理这种信息,并更快地做出相应的处理,以满足或处理这种变化。因此人力资源管理系统,也就成为了越来越多企业的选择不得已,也是必然的选择。

人力资源管理系统有其自身的发展历程,而现在国内大量涌现的人力资源管理系统,有国外的,也有国产的,总的说来是良莠不齐。为了让企业在选择人力资源系统时自己先有个了解,我们吧人力资源管理系统发展的四个阶段:1、薪资计算系统时代,即人力资源管理系统的发展历史能够追溯到20世纪60年代末期。由于当时计算机技术已经进入实用阶段,同时企业的规模也越来越大,用手工来计算和发放薪资既费时费力又非常容易出差错,为了解决这个问题,第一代的人力资源管理系统,其实就是薪资管理系统应运而生。当时由于技术条件和需求的限制,用户非常少,而且那种系统充其量也只不过是一种自动计算薪资的工具。2、薪资/人事管理系统时代,即第二代的人力资源管理系统出现于20世纪70年代末。随着计算机技术的飞速发展,无论是计算机的普及性,还是计算机系统工具和数据库技术的发展第二代薪资管理系统基本上解决了第一代系统的主要问题,开始纪录员工的其它基本信息包括薪资的历史数据,另外,它的报表生成和薪资数据分析功能也都有了较大的改进。这个时代的的管理系统以薪资处理为主,并兼具了一部分人事信息管理的功能。

3、人力资源管理系统时代,即人力资源管理系统的第一次革命性变革出现在20世纪90年代初。由于企业管理理论,特别是人力资源理论的发展,使人们认识到人力资源在企业发展和企业竞争优势中的关键性作用,另外随着IT技术的发展,把一些人力资源管理理念和理论应用到企业管理中也变为可能。这一阶段企业最关注的时员工的绩效考评和管理系统,以及培训管理系统。第三代人力资源管理系统的特点是从人力资源管理的角度出发,用集中的数据库将几乎所有与人力资源相关的数据(如薪资福利、招聘、个人职业生涯的设计、培训、职位管理、绩效管理、岗位描述、个人信息和历史资料)统一管理起来,形成了集成的信息源。友好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得人力资源管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人力资源规划和政策。

4、E人力资源管理系统或EHRMS时代,即人力资源管理信息系统的第二次革命性变革出现在20世纪90年代末和21世纪初。由于internet和intranet技术的普及,以及人力资源管理理论的进一步发展,学习与发展成为企业与员工个人的永远的主题,而IT技术为这一主题给出的答案就是E-LEARNING。为了快速响应企业内部和外部的各种要求与变化,WEB使人力资源部门与企业的内部员工和外部世界之间的距离成为0,这就是人力资源管理系统的E话。E化HRMS除了具有人力资源管理系统的所有特征外,还能够实现员工或潜在员工和企业人力资源管理者互动和零距离。

1.3.1人力资源管理系统的特点人力资源管理系统有以下五个特点。1.和企业内部其它系统兼容性;2.集团化管理模式即纯互联网结构;3.完全按企业需求灵活定制性;4.无纸化办公即改进企业”白纸黑字”的办公流程;

5.根据企业所有管理权限分布式控制系统。而这些特点给企业也带来了不很大的利益。企业无需考虑购买这套人力资源管理系统后与自身的其它管理系统和将来购买的先进系统互不兼容、数据无法交换的问题。企业更加不必担心将来需要重新更换系统所带来的资金重投入、员工及管理人员多次培训的忧患。无论公司现在机构多么庞大,还是由现今的中小企业发展到大型集团,这套系统都能够为自己管理的游刃有余,而且公司再怎么扩大都无需投入额外成本。在系统管理和升级方面更是轻松自如,因为系统只需要在企业服务器上安装一次,其它客户端电脑无需安装任何额外程序(当然需要我们企业上网必备的IE浏览器),升级管理轻松在一台服务器上搞定,这样我们企业分支机构无任扩展到世界任何地方都不必担心升级管理的痛苦。.现今企业管理个性化很融,各家有各家高招,针对于现在企业发展趋势,必须要一套适合企业现今管理模式而且能定制未来发展模式的人力资源管理系统,也就是说我们需要的软件应该是能够随着公司的调整和改变做出相应的调整和改变的灵活系统。这样就能减少公司二次开发的成本,而且能充分的满足、贴切公司的需求,进而节约不必要的开支。无纸化办公、异地共同办公,无论你在哪里都能够登陆这套人力资源管理系统实现你在企业中的角色,就想你在坐在办公室一样完成这套工作流程,大大提高了工作效率。这也是对管理制度的一种体现,体现了”管理在前,执行在后”的先进理念。随着企业管理理念的提高,企业内的职位、岗位划分越来越细致,针对这种发展的趋势,我们选择人力资源管理软件的时候必须考虑到系统中权限控制是否适合公司各个岗位的问题。权限分配必须分别对应于企业中不同的部门和不同的人,根据不同的管理人员而下放相应的权限。这样才能给企业带来管理的安全和信息的保密。另外,在分布式权限控制系统中职位与权限相结合,不因人的流动而造成职责的空缺。而且,既能够统一管理,又明确分工。合理的下放职权,亦可减轻各岗位的工作负担。1.4开发工具的介绍这次课程设计我们用的是MicrosoftVisualStudio作为开发工具,而且用的编程语言是C#。在连接数据库时我们运用了MicrosoftVisualStudio中自带的linqtosql。下面的内容分别介绍了这三个方面。MicrosoftVisualStudio是面向WindowsVista、Office、Web2.0的下一代开发工具,代号”Orcas”,是对VisualStudio一次及时、全面的升级。VS引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用VisualStudio能够高效开发Windows应用。设计器中能够实时反映变更,XAML中智能感知功能能够提高开发效率。同时VisualStudio支持项目模板、调试器和部署程序。VisualStudio能够高效开发Web应用,集成了ASP.NETAJAX1.0,包含ASP.NETAJAX项目模板,它还能够高效开发Office应用和Mobile应用。VisualStudio是一套完整的开发工具集,用于生成ASP.NETWeb应用程序、XMLWebServices、桌面应用程序和移动应用程序。VisualBasic、VisualC++、VisualC#和VisualJ#全都使用相同的集成开发环境(IDE),利用此IDE能够共享工具且有助于创立混合语言解决方案。另外,这些语言利用了.NETFramework的功能,经过此框架可使用简化ASPWeb应用程序和XMLWebServices开发的关键技术。LINQ是LanguageIntegratedQuery的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时能够得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。而且它同时还使得查询能够方便地对内存中的信息进行查询而不但仅只是外部数据源。LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于<T>接口的源,而且它还允许适合于目标域或技术的第三方特定域操作符来扩大标准查询操作符集,更重要的是,第三方操作符能够用它们自己的提供附加服务的实现来自由地替换标准查询操作符,根据LINQ模式的习俗,这些查询喜欢采用与标准查询操作符相同的语言集成和工具支持。LINQtoSQL全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。其建立于公共语言类型系统中的基于SQL的模式定义的集成之上,当保持关系型模型表示能力和对底层存储的直接查询评测的性能时,这个集成在关系型数据之上提供强类型。Csharp(又被简称为”C#”)是微软公司在二OOO年六月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员AndersHejlsberg的最新成果.C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.可是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。C#语言定义主要是从C和C++继承而来的,而且语言中的许多元素也反映了这一点。C#在设计者从C++继承的可选选项方面比Java要广泛一些(比如说structs),它还增加了自己新的特点(比喻说源代码版本定义).类:C#中类的申明与Java很相似.这是合理的因为经验告诉我们Java模型工作得很好.Java的关键字import已经被替换成using,它起到了同样的作用.一个类开始执行的起点是静态方法Main().C#拥有比C,C++或者Java更广泛的数据类型.这些类型是bool,byte,ubyte,short,ushort,int,uint,long,ulong,float,double,和decimal.象Java一样,所有这些类型都有一个固定的大小.又象C和C++一样,每个数据类型都有有符号和无符号两种类型.与Java相同的是,一个字符变量包含的是一个16位的Unicode字符.C#新的数据类型是decimal数据类型,对于货币数据,它能存放28位10进制数字.第二章人力资源管理系统分析与设计2.1人力资源管理系统功能分析在系统中需用到的表结构有:表2-1职员基本信息表列名类型长度是否为空职员编号varchar30否姓名varchar20是性别varchar2是出生日期int8是年龄int4是籍贯varchar50是民族varchar20是文化程度char50是毕业学校char100是健康状况varchar50是婚姻状况varchar10是身份证号码varchar18家庭电话varchar50办公电话varchar50手机varchar50电子邮件varchar50部门编号varchar20备注varchar100所在岗位char10表2-2岗位表列名类型长度是否为空岗位编号char3岗位名称char10部门编号char3工资decimal13表2-3月工资统计表列名类型长度是否为空日期int4职员编号varchar30部门编号char3岗位编号char3基本工资decimal9职务工资decimal13应发金额合计decimal13房租decimal13水电费decimal13请假扣除decimal13考勤扣除decimal13住房公积金decimal13医疗保险decimal13养老保险decimal13应扣金额合计decimal13工资合计decimal13发放否char10月份int4序号int4表2-4用户清单列名类型长度是否为空职员编号char30类型Varchar8密码char10表2-5签到表列名类型长度是否为空员工编号char8部门编号char3签到时间datetime8类型char8考勤扣除int4表2-6签离表员工编号char8部门编号char3签离世间Datetime8类型Char8考勤扣除int4表2-7职工调动表职工编号char30姓名char10调动日期int4调动前部门char10调动后部门char10调动前职称char10调动后职称char10调动原因text16表2-8请假表序号int4职员编号varchar30开始时间datetime8结束时间datetime8天数int4请假扣除decimal13备注varchar50表2-9部门表部门编号char3部门名称char10管理人char8部门人数int4实体关系图:图2-1实体关系图数据流图(DFD):图2-2数据流图(DFD)2.2人力资源管理系统模块设计本系统由员工信息管理子系统,工资管理子系统,考勤考核管理子系统组成,今后还能够根据发展需要添加相关系统。1.员工信息管理子系统(1)员工信息查询员工成功登录人力资源管理系统,输入相关信息条件,进行员工信息查询。员工对于自己的相关基本信息进行查看,以及相关人员查看员工的信息。在这个业务流程中,有两个直接与系统交互的用户:系统管理员,员工。(2)员工信息修改人力资源管理部门等相关人员根据情况对员工信息进行修改更新与维护,员工自身对于自己的信息的更正等。整个流程如图所示:图2-3员工信息修改(3)新员工信息添加当公司招聘进新的员工时,需要将新员工的信息存进系统中。其流程如图所示:图2.4新员工信息添加这个业务流程中涉及的业务实体同上面信息修改。其系统直接交互用户也包括系统管理员,员工,人力资源部门人员,在上面的业务活动的基础上,人力资源部门人员涉及的业务活动添加了添加员工信息(4)离职员工信息删除公司员工因为某种原因离职的时候,就需要从系统中将该员工的信息删除。整个业务流程如图所示:图2-5离职员工信息删除2.工资管理系统(1)员工奖励/惩罚管理当某个员工获取奖励时,将员工相关信息以及其获得的奖励情况存入系统中。月底时对所有奖励表进行统计得出员工月奖励情况表。整个业务流程如图所示:图2-6员工奖励/惩罚管理(2)员工绩效考核从员工考勤考核部门将所有员工整月的情况报表,奖励情况表以及惩罚信息表从系统中查询获取,然后根据考核条例评定出个员工的考核表。整个业务流程如图所示:图2-7员工绩效考核(3)当月员工工资管理月底根据员工信息表中员工工资情况以及绩效考核表中各员工考核情况得出员工月实际工资,存入系统中。流程如图所示:图2-8当月员工工资管理3.考勤子系统(1)考勤信息记录公司采用相关电子设备对员工每天的上班情况进行记录,而考勤部门的人员需要将这些信息分类存入天考勤信息登记表中。流程如图所示:图2.9考勤信息记录4.月考勤信息统计月底时,将各员工整月考勤情况,请假情况以及加班信息汇总得到月考勤信息表,该业务流程如图所示:图2-10月考勤信息统计这些业务流程涉及到的业务实体以及她们之间的关系如图所示:图2-11业务流程图第三章人力资源管理系统功能实现3.1登录界面设计思路:登陆界面(如图3-2)的校验和很多人不一样,我是先进行用户名,密码以及用户类型的校验以后。登陆界面中的用户类型下拉菜单是事先设定好的,管理员和普通职工能够进行的职权不一样,这样设计对于管理员的安全性有了很大的提高。在没有管理员的用户类型时,是不能登陆管理员界面的。流程图:判断类型是否和职工号对应。登陆成功,而且把用户的类型和id好传递到主窗体。输入职工号密码而且选择用户类型判断密码是否正确判断职工号是否存在判断类型是否和职工号对应。登陆成功,而且把用户的类型和id好传递到主窗体。输入职工号密码而且选择用户类型判断密码是否正确判断职工号是否存在正确正确错误正确提示,而且清除文本框和下拉菜单中的文字,让用户从新输入信息。错误提示,而且清除文本框和下拉菜单中的文字,让用户从新输入信息。图3-1登陆流程图登陆验证(先验证用户名和密码,再验证用户类型)privatevoidbutton1_Click(objectsender,EventArgse){if(userid.Text.Trim().Length==0||usersort.Text.Trim().Length==0||password.Text.Trim().Length==0)//如果用户没有把信息填写完整,则会弹出提示对话框如图3-1{MessageBox.Show("请完善信息!");userid.Text=null;password.Text=null;usersort.Text=null;return;}else{用户清单user_id=new用户清单();try{user_id=my_datacontext.用户清单.Single(id=>id.职员编号==this.userid.Text.Trim());}catch(Exception)//得不到后台数据库的用户清单名单,则会返回错误,如图3-2{MessageBox.Show("职工号不存在!","警告");return;}if(user_id!=null){if(user_id.密码.ToString().Trim()==this.password.Text.Trim())//这里得不到后台数据库的数据,没办法进行比较{if(user_id.类型.Trim()==this.usersort.SelectedItem.ToString()){this.Visible=false;MainFormmain=newMainForm(userid.Text.ToString(),usersort.Text.ToString());//把登陆界面得到的职工编号和用户类型传递到主窗口main.Show();}else{MessageBox.Show("类型不正确!");userid.Text=null;password.Text=null;usersort.Text=null;return;}}else{MessageBox.Show("密码不正确!");userid.Text=null;password.Text=null;usersort.Text=null;return;}}else{MessageBox.Show("该用户不存在!");userid.Text=null;password.Text=null;usersort.Text=null;return;}}}登陆界面如图所示:图3-2登陆界面3-3登陆界面提醒3.2主界面设计主界面的设计有一共有五个操作:系统管理,人事管理,工资管理,考勤管理,请假管理。可是对于管理员和普通职工操作是不同的,作为管理员,能够对公司上下所有人的信息进行增删改查,可是作为公司的普通职工,她只能够看到自己的所有信息,而且不能够进行更改。虽然在主界面上没有什么区别,但在不同职权跳转后看到的窗体时不一样的。系统管理:操作时先判断用户的类型,若是管理员则能对系统中的用户进行添加和删除,对整个系统起到维护的作用。普通员工只能经过此项进行更改密码。人事管理:公司所有员工的信息都能够经过这个查清楚。管理员能够注销或者添加职工信息,如若公司的员工有变动,则要进行信息的录入或者删除。工资管理:工资和员工的岗位和考情情况联系的较紧密,在显示员工工资信息的时候有些是事先已经确定的了,如:请假扣除、考勤扣除等。考勤管理:每个员工到公司后就会进行签到,这是与公司的刷卡系统相联系,这里只用按钮来代替。员工离开公司时也同样进行签离。管理员能够对员工的记录进行查询。查询的方式能够按员工号或者按部门查询,这样能够方便管理员对员工进行统计等。请假管理:管理员能够对员工的请假信息进行录入修改和删除,当然也能够查询,分为按员工编号查询和按时间查询。图3-4主窗体主窗体的代码主要判断用户的类型进行判断,而且有一部分进行参数的传递(由于篇幅的问题,以下只用一个代表)。privatevoid修改密码ToolStripMenuItem_Click(objectsender,EventArgse){if(this.m_Sort=="普通职工")//如果用户的类型为普通员工,则会只看到自己的信息。{user1users1=newuser1(m_ID,m_Sort);//传递登陆界面传过来的id号和用户类型,对以后的查找有一定的用处。users1.MdiParent=this;users1.Show();}else{userusers=newuser(m_ID,m_Sort);users.MdiParent=this;users.Show();}}3.3职工管理窗口设计管理员能够进行增删改查的操作。查询职工信息能够按照职工号查询、按部门查询和按岗位查询的三种方式,能够方便管理员进行查询。添加、删除和更新职工信息如图所示。流程图如下:添加职工信息:如图向数据库中插入数据。输入的信息是否符合条件判断管理员是否把用户的信息填写完整。向数据库中插入数据。输入的信息是否符合条件判断管理员是否把用户的信息填写完整。判断该职工编号是否存在完整不存在存在判断该职工编号是否存在不完整存在不符合进行提示。进行提示。图3-5添加职工信息流图更新职工信息:管理员输入要更新职工的编号,确保此员工已经存在。若是数据更改的正确,能够向数据库提交更新信息。文本框中显示后台数据库的员工信息后进行更改。管理员输入要更新职工的编号,确保此员工已经存在。若是数据更改的正确,能够向数据库提交更新信息。文本框中显示后台数据库的员工信息后进行更改。存在正确不不正确不存在进行相应提示。进行相应提示。图3-6更新信息流图图3-7查询员工信息图3-8职工调动信息图3-9添加员工信息当用户为普通职工时,只能够看到自身的信息,而且不能够进行修改,如若有错,则可联系管理员进行更改。图3-10普通职工信息按部门编号查询代码如下(添加、删除和更新与添加用户类似,此处不再累赘写出):privatevoidbutton1_Click(objectsender,EventArgse){if(this.textBox1.Text.Trim().Length==0||boBox1.Text.Trim().Length==0||boBox2.Text.Trim().Length==0)//填完整职工的信息才能够进行相应查询{MessageBox.Show("请完善信息!","警告");return;}else{try{IQueryableconselect=from职员基本信息表inm_DataContex.职员基本信息表where职员基本信息表.部门编号.ToString().Trim()==boBox1.SelectedItem.ToString().Trim()&&职员基本信息表.职员编号.ToString().Trim()==this.textBox1.Text.ToString().Trim()&&职员基本信息表.所在岗位.ToString().Trim()==boBox2.SelectedItem.ToString().Trim()select职员基本信息表;//用参数值传递数据库中得到的信息this.dataGridView1.DataSource=conselect;//把查到的信息放到显示框中去}catch(Exception){MessageBox.Show("此员工不存在!","警告");//填入信息不正确return;}}3.4考勤系统设计窗口管理员登陆到此窗口进行自己的登陆和职工的考勤信息查询,流程图如下:得到系统时间与公司规定时间相比较,判断签到类型部门号和职工号是否相互对应输入的职工号是否存在输入职工号和部门号。得到系统时间与公司规定时间相比较,判断签到类型部门号和职工号是否相互对应输入的职工号是否存在输入职工号和部门号。填写完整存在对应不完整不存在不对应进行提示,引导用户将信息填写完整。向数据库中更新信息,而且进行相应提示进行提示,引导用户将信息填写完整。向数据库中更新信息,而且进行相应提示图3-11考勤信息流程图签到成功,提示如图3-12图3-12签到成功查询签到记录(签离相同),查询结果如图3-13图3-13考勤查询privatevoidcheckin1_Click(objectsender,EventArgse){if(this.textBox_number1.Text.Trim().Length==0||boBox2.Text.ToString().Trim().Length==0){MessageBox.Show("请完善信息!","警告");return;}else{try{职员基本信息表checkemp=new职员基本信息表();checkemp=my_datacontext.职员基本信息表.Single(a=>(a.职员编号==this.textBox_number1.Text.ToString().Trim()&&a.部门编号==boBox2.SelectedItem.ToString().Trim()));if(checkemp!=null){签到表checkin=new签到表();checkin.员工编号=this.textBox_number1.Text.ToString().Trim();checkin.部门编号=boBox2.SelectedItem.ToString().Trim();System.DateTimechecktime=DateTime.Now;checkin.签到时间=DateTime.Now;if(checktime.Hour<8)//得到的系统时间和规定时间相比较后判断签到类型{checkin.类型="按时";checkin.考勤扣除=0;}elseif(8<checktime.Hour&checktime.Hour<10){checkin.类型="迟到";checkin.考勤扣除=20;}elseif(10<checktime.Hour&checktime.Hour<17){checkin.类型="缺勤";checkin.考勤扣除=50;}my_datacontext.签到表.InsertOnSubmit(checkin);my_datacontext.SubmitChanges();MessageBox.Show("添加成功!");this.textBox_number1.Text=null;boBox2.SelectedItem=null;}}catch(Exception){MessageBox.Show("信息不正确!","警告");//签到不成功,进行提示return;}}}管理员在判断员工签离时候,应该把考勤扣除算出来,代码如下:privatevoidcheckout_Click(objectsender,EventArgse){if(this.textBox_number3.Text.Trim().Length==0||boBox3.Text.ToString().Trim().Length==0){MessageBox.Show("请完善信息!","警告");return;}else{try{职员基本信息表checkemp=new职员基本信息表();checkemp=my_datacontext.职员基本信息表.Single(a=>(a.职员编号==this.textBox_number3.Text.ToString().Trim()&&a.部门编号==boBox3.SelectedItem.ToString().Trim()));if(checkemp!=null){签到表checkin=new签到表();签离表checkout=new签离表();checkout.员工编号=this.textBox_number3.Text.Trim();checkout.部门编号=boBox3.SelectedItem.ToString().Trim();System.DateTimechecktime=DateTime.Now;//得到系统时间checkout.签离时间=DateTime.Now;if(checktime.Hour<17){checkout.类型="早退";checkout.考勤扣除=20;}elseif(17<checktime.Hour){checkout.类型="加班";checkout.考勤扣除=-5*(checkout.签离时间.Hour-17);//自动算出考勤扣除的费用以便结算工资时使用}my_datacontext.签离表.InsertOnSubmit(checkout);my_datacontext.SubmitChanges();MessageBox.Show("签离成功!");this.textBox_number3.Text=null;}}catch(Exception){MessageBox.Show("信息不正确!","警告");return;}}3.5工资管理设计界面管理员可对公司上下所有的员工的工资信息进行增删改查,而一部分工资已由系统自定,顾添加时不可显示。如图3-14所示图3-14添加员工信息代码如下:privatevoidbutton17_Click(objectsender,EventArgse){if(this.textBox17.Text.Trim().Length==0||boBox7.Text.Trim().Length==0||boBox8.Text.Trim().Length==0){MessageBox.Show("职员编号、部门编号、岗位编号是必填项!");//确保用户输入正确信息}else{月工资统计表Form2=new月工资统计表();请假表form1=new请假表();签到表form2=new签到表();签离表form3=new签离表();职员基本信息表emp2=new职员基本信息表();try{职员基本信息表select3=salary_datacontext.职员基本信息表.Single(a=>(a.部门编号==boBox7.SelectedItem.ToString().Trim())&&(a.职员编号==this.textBox17.Text.Trim()));if(select3!=null)//判断是否存在此员工的信息{Form2.部门编号=boBox7.SelectedItem.ToString().Trim();Form2.职员编号=this.textBox17.Text.ToString().Trim();Form2.岗位编号=boBox8.SelectedItem.ToString().Trim();if(this.textBox7.Text.Trim().Length==0){Form2.房租=decimal.Parse("0");//因为数据库中存放的是decimal类型的,添加空不会提示错误。}else{Form2.房租=decimal.Parse(this.textBox7.Text.Trim());}Form2.工资合计=(Form2.应发金额合计)-(Form2.应扣金额合计);if(this.textBox4.Text.Trim().Length==0){Form2.基本工资=decimal.Parse("0");}else{Form2.基本工资=decimal.Parse(this.textBox4.Text.Trim());}Form2.考勤扣除=form2.考勤扣除+form3.考勤扣除;Form2.请假扣除=form1.请假扣除;if(this.textBox9.Text.Trim().Length==0){Form2.水电费=decimal.Parse("0");}else{Form2.水电费=decimal.Parse(this.textBox9.Text.Trim());}if(this.textBox13.Text.Trim().Length==0){Form2.养老保险=decimal.Parse("0");}else{Form2.养老保险=decimal.Parse(this.textBox13.Text.Trim());}if(this.textBox11.Text.Trim().Length==0){Form2.医疗保险=decimal.Parse("0");}else{Form2.医疗保险=decimal.Parse(this.textBox11.Text.Trim());}Form2.应发金额合计=(Form2.基本工资)+(Form2.职务工资);//合计工资应该为基本工资加上职务工资Form2.应扣金额合计=(Form2.房租)+(Form2.水电费)+(Form2.养老保险)+(Form2.医疗保险)+(Form2.住房公积金)+(Form2.考勤扣除)+(Form2.请假扣除);岗位表select4=salary_datacontext.岗位表.Single(a=>a.岗位编号==boBox8.SelectedItem.ToString().Trim());Form2.职务工资=select4.工资;if(this.textBox12.Text.Trim().Length==0){Form2.住房公积金=decimal.Parse("0");}else{Form2.住房公积金=decimal.Parse(this.textBox12.Text.Trim());}if(boBox3.SelectedText.ToString().Trim().Length==0){Form2.发放否="否";//如若没有输入是否发放,则系统自动添加为”否

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论