




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录目 录I摘 要II第一章引言11.1课题背景11.2现状及问题11.3课题目标11.4课题意义21.5设计目标21.6论文各部分的内容2第二章系统设计42.1需求分析42.2系统架构52.3系统功能设计82.4系统数据库设计112.5小结13第三章系统实现143.1系统管理模块实现143.2人事信息模块实现183.3系统实现结果223.4小结26第四章总结27参考文献29摘 要随着知识经济的到来和信息技术的飞速发展,人力资源的配置更为市场化。企业间的竞争核心已从强调对物的管理转向对人的管理。目前众多国有企业虽有大批优秀人才,但因机制方面存在的问题,造成现有人才的能量不能充分释放,人才浪费现象十分严重。因此建立“以人为本”、科学管理、高效易行的人力资源管理信息系统是非常必要和重要的。通过对现有人力资源管理的分析,总体利用ASP.NET + IBATIS + Sql Server技术,使用面向对象的分析、设计方法,并使用Visio作为建模工具,在基于.NET Framework 2.0的平台上,讨论和实现了人力资源管理系统。本系统主要实现了人事信息管理中的员工合同管理、员工信息的增、删、改、查、员工信息的统计分析如在岗人员中的男女比例统计,学历比例统计;培训管理中的培训项目策划,培训项目具体情况编辑;对员工的考勤,薪资管理功能部分实现;对系统进行扩展完成用户权限的管理,用户角色的管理。应用表明,系统具有易操作性和易维护性,界面用户友好,操作灵活方便。为企业人力资源部门提供信息服务功能,为企业其它部门提供信息的查询路径,为企业管理者正确决策与统筹安排提供依据,提高了企业现代化管理水平。关键字:人力资源管理;反射;IBATIS;ASP.NET第一章 引言1.1 课题背景随着知识经济的到来和信息技术的飞速发展,人力资源的配置更为市场化。企业间的竞争核心已从强调对物的管理转向对人的管理。目前众多国有企业虽有大批优秀人才,但因机制方面存在的问题,造成现有人才的能量不能充分释放,人才浪费现象十分严重。因此建立“以人为本”、科学管理、高效易行的人力资源管理信息系统是非常必要和重要的,而且要从管理平台的信息一体化、流程规范化、战略高度化上推行和应用现代化的人力资源管理系统,全面推动企业从单纯的人力资源传统方式管理提升到知识管理和文化沉淀管理的高度,最大限度地发挥人才的价值 。1.2 现状及问题在计划经济向市场经济转变的特殊背景下,企业人力资源管理工作模式不断发生变化,人力资源部门每个专业都使用着不同单机版的软件,或上级下发,或找人开发,或购买单机商品化软件,数据库由各个专业人员自己维护。存在以下几个问题:一是随着管理模式的变化,软件不能满足使用要求,很多单机版软件的功能项和基础数据已固定,难以更改和修订。二是维护量大。有些部门由于管理人员少,部分业务还设置兼职岗位,所有内容都要自己去维护,时间一长或工作忙,结果可想而知。三是各种软件维护情况不同,每个软件都只能单独录入和计算数据,造成各专业数据不唯一,影响领导利用数据进行有效决策,无法达到现代人力资源管理的要求。1.3 课题目标每个企业中的人力资源信息复杂,需要进行科学有效的管理。本课题的研究目标是设计和实现一个简单的人力资源管理系统,以科学有效的管理企业人力资源管理中的每个流程,使管理信息化、科学化。1.4 课题意义作为计算机科学于技术系专业的学生,即时了解和掌握当前管理信息系统主流的设计和实现方法并且应用到实践过程中,将极大的提高自己的设计和开发软件的积极性;提升自己的理论和技术水平,跟踪国内外最新的技术和开发模式,为以后类似的开发积累经验;同时,开发出来的作品也可以真正运用到实际当中,方便大家的沟通和交流。1.5 设计目标能够满足人力资源管理的需要,正确及时地处理各项业务,快速准确传递信息,要具有良好的用户界面,提供各种方便的屏幕输入格式。根据数据库文件快速生成报表,实现系统内数据共享。系统应具有较强的可维护性、扩充性和较高的可靠性、实用性。本系统力争对人力资源管理的主要领域提供最佳支持。这些领域包括人力资源计划、人才招聘到人事信息管理、薪酬管理以及员工培训和发展管理等各个方面,并提供查询统计功能,能动态直观地反映组织人力资源的状况,为人力资源管理提供高效的服务,为组织高层领导提供决策支持。因此系统应该实现:人事信息管理中的员工合同、员工信息管理、员工信息的统计分析;培训管理中的培训项目策划,培训项目具体情况编辑;对员工的考勤,薪资管理功能部分实现。1.6 论文各部分的内容本文首先在第一章描述了人力资源管理系统的发展和现状,然后阐述了应该达到的设计目标。接着在第二章具体说明了系统的设计:需求分析、系统架构、系统功能设计、系统数据库设计。在第三章具体说明系统中几个关键的实现技术,详细地说明了实现思路。在系统管理模块实现过程中具体说明了最关键的权限管理。在人事信息管理模块中实现过程中具体说明了如何使用.NET的反射技术来减轻开发的工作量,提高开发效率。在最后章节对系统进行总结,说明了还需要改进的地方。其次对本人论文过程的心得体会进行总结。第二章 系统设计上一章分析了人力资源管理系统的发展和现状和设计目标,接下来阐述系统设计部分。2.1 需求分析该系统主要有人事信息管理、培训管理、考勤管理、薪资管理、系统管理和统计分析这6大块组成。需要完成以下功能:a) 人事信息管理 员工合同管理:员工合同信息增加、删除、修改;合同的查询。 员工信息管理:员工信息增加、删除、修改;人员按部门、学历、职称分类;人员信息查询。 统计分析:各部门的人才分布状况等。b) 培训管理 培训项目策划:填写培训项目名称、描述、培训机构、时间、地点。 从员工中选定培训人员。 进行培训结果考核,录入培训综合评定。 对培训情况查询,包括公司员工培训记录、公司历次培训基本情况。c) 考勤管理 对员工的工作情况进行统计,以月份为单位。 需要统计的项目有:出勤、迟到、早退、旷职。 出勤、迟到、早退、旷职的确定根据公司的正常上班时间来确定。 统计每月的出勤、迟到、早退、旷职时间。 员工到班后,需要在网上登陆填写出勤记录(签到和签退)。d) 薪资管理 设置薪资标准:根据人员不同级别,确立基本工资(如:总经理、部门经理、总工程师、工程师、秘书、普通员工等等)。 确定计算公式:根据上一步骤的标准,确定公司的计算公式。 与绩效考核系统连接,根据员工当月的考勤记录计算当月的薪资。 每月的最终薪资入库。 员工可上网查询个人当月薪资及薪资历史情况。e) 系统管理 实现人员按角色分配权限。 员工系统帐号、密码修改。2.2 系统架构本系统主要采用ASP.NET技术,开发语言,开发环境Visual Studio .NET 2005,运用三层架构:数据访问层(持久层),中间的业务层操作和呈现给用户的界面层。ASP.NET 是一种建立动态Web应用程序的技术。它是.NET 框架的一部分,您可以使用任何.NET兼容的语言来编写ASP.NET应用程序。 使用Visual Basic .NET, C#, J#, ASP.NET 页面(Web Forms) 进行编译可以提供比脚本语言更出色的性能表现。Web Forms 允许您在网页基础上建立强大的窗体。当建立页面时, 您可以使用ASP.NET 服务端控件来建立常用的UI元素,并对它们编程来完成一般的任务。这些控件允许您使用内建可重用的组件和自定义组件来快速建立Web Form,使代码简单化。 ASP.NET 提供了一种编程模型和结构,对比原来的Web技术来说,它能更快速、容易地建立灵活、安全和稳定的应用程序。图2-1 Asp.Net2.0中的内含代码模型在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层,如图2-2所示:图2-2三层结构图数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。此处使用IBATIS,作为数据访问层。业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关。以此HRM管理系统为例,业务逻辑层的相关设计,均和此系统的特有的逻辑相关,例如查询员工信息,员工考勤,计算员工工资等等。如果涉及到数据库的访问,则调用数据访问层。表示层:是系统的UI部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。在此HRM系统中,是利用ASP.Net来设计的,因此包含了许多Web控件和相关逻辑。分层式结构的优势:1、开发人员可以只关注整个结构中的其中某一层;2、可以很容易的用新的实现来替换原有层次的实现;3、可以降低层与层之间的依赖;4、有利于标准化;5、利于各层逻辑的复用。概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。例如UI人员只需考虑用户界面的体验与操作,领域的设计人员可以仅关注业务逻辑的设计,而数据库设计人员也不必为繁琐的用户交互而头疼了。每个开发人员的任务得到了确认,开发进度就可以迅速的提高。松散耦合的好处是显而易见的。如果一个系统没有分层,那么各自的逻辑都紧紧纠缠在一起,彼此间相互依赖,谁都是不可替换的。一旦发生改变,则牵一发而动全身,对项目的影响极为严重。降低层与层间的依赖性,既可以良好地保证未来的可扩展,在复用性上也是优势明显。每个功能模块一旦定义好统一的接口,就可以被各个模块所调用,而不用为相同的功能进行重复地开发。2.3 系统功能设计1. 总体功能结构企业人力资源管理涉及到的职能部门主要有:人力资源部门、生产部门、销售部门、研发部门、财务部门。其中人力资源部门是主要的管理职能部门。根据企业组织结构及组织功能分布,得到本系统的总体功能结构图。图2-3功能结构图2. 人事信息管理业务人事信息管理模块为系统的基本模块,他具备了企业人力资源管理部门的日常事务处理功能,其中包括:员工信息管理、合同管理、统计分析、综合查询等等。 为管理者全方位地了解企业拥有的人力资源,并对这一资源进行开发提供了决策支持。其业务流程如下图所示。图2-4人事信息管理业务流程图在人事信息管理业务中,通过员工信息管理可以对员工档案进行更新和维护,并对离职员工信息执行删除操作,最终结果汇总到企业员工数据库。合同管理主要包括新合同的管理和旧合同的撤消,及合同的维护工作。统计分析提供几种统计图。查询为员工提供企业人事信息的查询并返回查询结果。3. 培训管理业务企业通过本业务模块可以规划自己的培训体系和调配培训资源,合理安排和管理日程、课程、进度和结果等信息,进而评估效果, 指导、控制培训开发的下一个循环, 促进员工个人发展保持与公司战略目标相统一。业务流程图如下。图2-5培训管理业务流程图人事部根据培训项目策划,确定具体培训项目,从公司员工中选定符合培训项目的人员,在培训过程中结合培训评定最后生成员工培训情况记录。4. 考勤管理业务考勤管理业务模块不仅根据实际情况对员工的正常的工作情况进行统计,而且对员工的非正常工作情况进行记录,例如员工出缺勤等管理,为薪资计算、劳动成本分配以及绩效考评提供准确依据,灵活定义上下班时间。业务流程图图2-6考勤管理业务流程图5. 薪资管理业务薪酬管理模块涉及薪酬标准设置、初始化、计算考勤相关等等因素。本模块以全方位数字化管理人力资本,以最低的成本最有效地激励员工。其业务流程图如下。图2-7薪资管理业务流程图2.4 系统数据库设计数据库ER图如下图2-8数据库ER图Users为用户表,记录用户登录系统的用户名和密码。Roles为角色表,作为用户角色的词典。Positions为职位表,作为职位词典,和员工表为多对一关系。Department为部门表,作为部门词典,和员工表为多对一关系。Employees为员工表,记录员工的一些基本信息。Bargain为合同表,记录合同的一些基本信息,并记录登记合同的员工id。MonAtten为月考勤记录表,记录每个月的员工考勤情况。Attend为员工考勤表,记录员工每个月的考勤汇总情况。有行政部门每月统计汇总。Training为培训记录表,记录培训的一些基本信息EmpTrain为员工培训表,记录参加过培训的员工评定信息。Settings为系统设置表,记录如考勤时间定义等信息。2.5 小结本章主要说明了此系统设计部分,包含了需求分析、系统架构、系统功能设计、系统数据库设计。详细说明了此人力资源管理系统要做什么,怎么做。完成了此系统的分析设计,为HRMS的编码实现做具体指导。第三章 系统实现上一章讲述了人力资源管理系统的具体设计,接下来阐述系统实现。主要说明了系统管理模块中权限管理实现思路和人事信息模块中遇到的技术问题。3.1 系统管理模块实现1. 设计系统管理模块中最重要的是权限管理,权限管理在整个系统中是非常重要的。在此系统中采用RBAC(角色访问控制)方法来实现权限管理。RBAC(角色访问控制)的基本思想可简单地用图3-1来表示,即把整个访问控制过程分成两步:访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。图3-1RABC模型图由于RBAC实现了用户与访问权限的逻辑分离,因此它极大的方便了权限管理。例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入代表新职务或新任务的角色即可,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且委派用户到角色不需要很多技术,可以由行政管理人员来执行,而配置权限到角色的工作比较重要,可以由专门的人员来承担,但是不给他们委派用户的权限,这与现实中情况正好一致。每个管理模块所具有的操作称为功能,如人事管理模块包含员工信息操作(添加,修改,删除)、员工信息查询、合同信息操作、合同信息查询及统计信息查看等功能,功能的实现用XML文件来实现,使用XML另一个原因是还能更好的和其它系统交互。XML文件的格式为: 角色,HRM系统中的角色一般以职务名来定义。如人事部主管、普通员工,角色的定义保存在Roles表中。角色的设计关键在于角色值的定义,它是有功能定义文件(XML文件)Code值(功能编号)组合起来的字符串(值间用“,”分割),表示该功能在角色表的Permissions (角色值)字段中的权限,如果字段中有此Code值,则表示该角色拥有此权限。如角色普通员工的角色值为“0102”,如上所示,员工信息查询的功能编号为0101,所以该普通员工角色拥有商品信息查询的功能;相反,该角色值不含0102,所以该普通员工角色没有员工信息操作的权限。它们的关系可由图3-2来表示。图3-2角色值和功能关系2. 角色的添加从XML文件读取权限配置,给角色分配权限。如图3-3。图3-3角色管理3. 继承System.Web.UI.Page实现访问权限ASP.NET的页面生命周期主要执行过程(图3-4):图3-4ASP.NET页面生命周期因此只需在页面显示前(OnLoad事件)对权限进行判断。在需要有权限控制的页面继承自定义的页面基类(PageBase.cs),然后在Page_Load事件里指定页面的功能代码即可。PageBase类关键代码实现:/重写OnLoad事件 protected override void OnLoad(EventArgs e) base.OnLoad(e); /执行父类OnLoad事件/如果用户Session为空 if (SessionKEY_USERSESSION = null) Server.Transfer(/login.aspx); /检查用户的权限 else if (!HasRight(RightCode) Response.Redirect(/NoPermission.aspx, true); /HasRight,根据参数值判断是否有权限,如果有返回True。如果没则False。 public bool HasAdminRight(string rightCode) if (UserData = null | AdminID = 0) return true; else return false; /HasRight,根据参数值判断是否有权限,如果有返回True。如果没则False。 private bool HasRight(string rightCode) if (this.IsSysAdmin | rightCode = null | rightCode.Trim().Length = 0) return true; bool flag = false; string arrRightCode0 = rightCode.Trim().Split(,); /与 for (int i = 0; i arrRightCode0.Length; i+) flag = true; string arrRightCode1 = arrRightCode0i.Trim().Split(+); /并 for (int j = 0; j arrRightCode1.Length; j+) if (!this.HasAdminRight(arrRightCode1j) flag = false; if (flag) return true; return false; 具体页面代码: protected void Page_Load(object sender, EventArgs e)/*页面功能编号。如果登录用户里的权限值里没有此编号,则不能查看此页面,会自动转到警告页面,告知无权限*/ this.RightCode = 0101;/页面功能代码 . 3.2 人事信息模块实现在人事信息模块中有大量的信息需要输入,如员工的基本信息。大多都是重复性劳动,能否减少这种重复性劳动呢?下面介绍怎么使用反射技术,来减少代码工作量,提高开发效率。在 Web 开发人员的最常见任务之中,有一项任务是要反复执行的:建立更新数据库表的简单窗体。我们将创建一个列表页面和一个窗体页面,列表页面中以表格形式显示记录,窗体页面中带有用于各个数据库字段的适当的窗体控件。使用表示数据库表的业务对象将代码组织到分为多层的设计中。如果以实体对象 (Document) 来表示数据库表 (Documents),许多窗体的代码看上去将如下所示:protected void Page_Load(Object Src, EventArgs E) if (!IsPostBack) Document document = Documents.GetDocument(Request.QueryStringDocumentID); Title.Text = document.Title; Active.Checked = document.Active; CreatedDate.Text = document.CreatedDate.ToString(); AuthorID.FindByValue(document.AuthorID.ToString().Selected = true; / . 等等 HtmlBody.Text = document.HtmlBody;protected void SaveButton_Click(Object Src, EventArgs E) Document document = Documents.GetDocument(Request.QueryStringDocumentID); document.Title = Title.Text; document.Active = Active.Checked; document.CreatedDate = Convert.ToDateTime(CreatedDate.Text); document.AuthorID = Convert.ToInt32(AuthorID.SelectedItem.Value); / . 等等 document.HtmlBody = HtmlBody.Text; Documents.Update(document);在以上代码中,对每个控件进行显式转换,并将其设置为窗体控件的正确属性。根据属性和窗体控件的数量,这部分代码可能会变长并难以管理。使用反射,可以仅使用单行代码便将实体对象的所有属性绑定到相应的窗体控件,从而减少代码的行数并增强可读性。完成反射系统的建立后,以上代码将简化为:protected void Page_Load(Object Src, EventArgs E) if (!IsPostBack) Document document = Documents.GetDocument(Request.QueryStringDocumentID); FormBinding.BindObjectToControls(document); protected void Save_Click(Object Src, EventArgs E) Document document = Documents.GetDocument(Request.QueryStringDocumentID); FormBinding.BindControlsToObject(document); Documents.Update(document);此代码可用于所有标准的 ASP.NET 控件(TextBox、DropDownList、CheckBox 等)和许多第三方控件(例如 Free TextBox)。无论有多少实体对象属性和窗体控件,这一行代码都能提供所需的全部功能,只要窗体控件的 ID 与实体对象属性名相匹配。开始:从反射中检索属性列表。首先,我们需要检查实体对象的属性,并查找与实体对象属性名具有相同 ID 的 ASP.NET 控件。以下代码构成了绑定查找的基础:public class FormBinding public static void BindObjectToControls(object obj, Control container) if (obj = null) return; Type objType = obj.GetType(); PropertyInfo objPropertiesArray = objType.GetProperties(); foreach (PropertyInfo objProperty in objPropertiesArray) Control control = container.FindControl(objProperty.Name); if (control != null) / 处理控件 . 在以上代码中,方法 BindObjectsToControls 接受了实体对象 obj 和一个容器控件。容器控件通常是当前 Web 窗体的 Page 对象。如果所用版本是会在运行时更改控件嵌套顺序的 ASP.NET2中的MasterPages,您将需要指定窗体控件所在的 Content 控件。这是在 ASP.NET 2中,FindControl 方法对嵌套控件和命名容器的处理方式导致的。在以上代码中,我们获取了实体对象的 Type,然后使用该 Type 来获取 PropertyInfo 对象的数组。每个 PropertyInfo 对象都包含关于实体对象属性以及从实体对象获取和设置值的能力的信息。我们使用 foreach 循环检查具有与实体对象属性名 (PropertyInfo.Name) 对应的 ID 属性的 ASP.NET 控件的容器。如果找到控件,则尝试将属性值绑定到该控件。将对象属性值绑定到控件过程中的大部分操作是在此阶段执行的。我们需要用对象的属性值来填充找到的控件。一种实现方法是为每种控件类型创建一个 if . else 语句。这样派生自 ListControl(DropDownList、RadioButtonList、CheckBoxList 和 ListBox)的所有控件都具有可以统一访问的公用接口,可以将它们作为一组放在一起。但是其他控件类型并不从父类中派生。以下几个公用控件都具有 .Text 字符串属性:TextBox、Literal 和 Label。但该属性不是从公用父类中派生出来的,所以需要分别转换每种控件类型。我们还需要转换其他控件类型,例如 Calendar 控件,以便使用适当的属性(在 Calendar 的例子中,是 SelectedDate 属性)。要包含所有标准的 ASP.NET 窗体控件,并访问窗体控件的正确属性并不需要太多的代码行。此方法的应用范围会受到限制,因为它仅考虑内置的 ASP.NET 2.0 控件。如果要支持新的或者要使用任何第三方控件,我们必须在 FormBinding 项目中引用控件的程序集,并将控件类型添加到 if . else 列表。另一种解决方法是第二次使用反射,以查看各个控件的属性,并找出控件是否具有与实体对象的属性类型对应的属性类型。在以下代码中,我们将第二次使用反射(这一次是对窗体控件使用,而不是对实体对象使用),以确定它是否具有任何常用属性。如果有,则尝试将实体对象的属性值设置为控件的属性。作为示例,我们将对整个 PropertyInfo 数组进行迭代,并查找称为 .Text 的字符串属性。如果控件具有该属性,则将数据从实体对象发送到该控件的属性。if (control is ListControl) else / 获取控件的类型和属性 Type controlType = control.GetType(); PropertyInfo controlPropertiesArray = controlType.GetProperties(); / 查找 .Text 属性 foreach (PropertyInfo controlProperty in controlPropertiesArray) if (controlPropertiesArray.Name = Text & controlPropertiesArray.PropertyType = typeof(String) / 设置控件的 .Text 属性 controlProperty.SetValue(control,(String) objProperty.GetValue(obj, null), null); 如果找到 .Text,则使用 PropertyInfo 类的 GetValue 方法从实体对象的属性中检索值。然后,使用控件的 .Text 属性的 SetValue 方法。在此,我们还使用 Type 命令将控件的属性设置为 typeof(String),并使用 (String) 符号显式转换来自属性的值。反转过程:BindControlsToObject。在 BindControlsToObject 方法中,我们将以同样的方式开始,即从实体对象中检索属性的列表,然后使用 FindControl 方法找到具有与对象属性相匹配的 ID 的控件。如果找到控件,则检索值并将该值返回给实体对象。完成这两种方法后,我们的UI层语法将得到简化,如以上简化和缩短窗体代码中所述。每个属性和控件的类型转换与错误更正都是自动进行的。3.3 系统实现结果1HRM管理系统界面登录:企业的每个员工在此页面登录系统,输入事先分配给员工的用户名和密码,如果用户名和密码验证通过,则系统判断登录人的角色,确定在此系统中的操作权限。图3-5HRM管理系统登录界面2企业员工登录后界面: 员工登录后所能看到的整体操作界面(图36),左边为操作菜单(图37),右边(图36空白部分)则根据菜单操作显示相关内容。图3-6企业员工登录后界面图3-7操作菜单界面4企业员工按年龄结构统计图界面: 如果有“人员统计”的权限,点击此菜单后,系统右边则会用饼图表示:年龄结构、学历结构和性别结构3种统计图。客观的展示给人事部门或企业决策层,为企业的决策支持提供了更好的支持。图3-8企业员工按年龄结构统计图界面5企业所有培训活动列表界面:在“培训管理”菜单里,点击“培训项目列表”,右边会出现企业所有培训项目的一个列表,下面的图就展示了企业部分培训项目列表,使相关部门对培训项目情况一目了然,为以后的培训项目制订提供了依据。此外点击相对应培训项目的“编辑”按钮还可以修改此培训项目的一些情况。图3-8培训活动列表界面3.4 小结本章主要说明了此系统的实现过程中的重点,并给出了实现后的一些系统界面说明,直观的表示了此系统所实现功能。完整说明了权限控制系统的实现过程。对人
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年北京市事业单位招聘考试教师招聘考试小学数学案例分析试卷
- 2025年互联网婚恋项目规划申请报告
- 一件心爱物品的诞生记物作文(14篇)
- 2025年高处作业特种作业操作证考试试卷(高空作业安全操作培训课程实施要点篇)
- 生物制药工艺与质量控制试题集及解析
- 2025年生态循环农业技术模式在农业科技创新与产业融合报告
- 现代农业科技开发与利用协议
- 基因检测技术在遗传性血液疾病诊断中的准确性研究报告001
- 医疗健康行业从业资格证明(5篇)
- 电商平台入驻商户协议条款修订版
- CNC机加工作业指导书
- HALCON编程基础与工程应用全书ppt课件汇总(完整版)
- 冀教版小学美术六年级下册教案
- 《一级学科下属专业证明模板》
- 信阳市平桥区农村土地承包经营权转包
- Stein-膀胱癌淋巴清扫资料课件
- 小柳树和小枣树(1)
- 市场营销学期末复习题知识分享
- 化学常用单词汇总
- 大客户销售实战技巧PPT
- 变压器运输运行和维护要点
评论
0/150
提交评论