人事档案管理系统课程设计说明书_第1页
人事档案管理系统课程设计说明书_第2页
人事档案管理系统课程设计说明书_第3页
人事档案管理系统课程设计说明书_第4页
人事档案管理系统课程设计说明书_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、 数据结构与算法课程设计说明书题 目: 人事档案管理系统 学 院: 计算机科学与工程学院 专 业: 姓 名: 学 号: 指导教师: 2014年 10 月 19 日成绩评定标准及成绩1、 能按照格式进行写作,无抄袭现象(10分)2、 报告内容行文通畅,有条理性,无错别字,结构严谨。(10分)3、 能够按照数据结构课设的格式要求、排版要求和字数要求等,有需求分析,系统分析,详细设计,关键技术的介绍和参考文献。(10分)4、 在验收过程中,能合理的回答问题(20分)5、 软件能正常运行,实现所提出的功能(40分)6、 软件代码规范性较好(5分)7、 具有自己的创新或特色(5分) 总成绩: 摘 要本系

2、统是针对一般小型企业的人员组成情况、工资情况和考勤情况用Visual Studio 2012设计开发的通用型人事档案管理系统。实现了人员履历信息、工资信息和月考勤信息的增、删、改、查、浏览信息等基本功能,同时还具有多种统计功能(不同性别员工平均工资比较、不同部门的平均工资比较、不同受教育水平人的平均工资比较、不同部门最高实发工资比较、统计各个月份工资情况、同一部门不同职位员工工资比较)和工资排序功能(各个部门平均工资排序、各部门最高实发工资排序),本系统还能够生成员工工资总额供用户查询和浏览,同时还可以按部门查询生成部门员工花名册,基本满足了公司人事部门对人事档案信息进行管理的需求,其中,统计

3、功能模块和工资排序功能模块为人事部门管理人员的工作带来了极大地便利,减轻了手动统计的工作负担。此外,需要说明的是,本系统还对用户赋予了不同的权限,分为普通用户和管理员,只有管理员才能够对用户进行管理,防止用户信息被恶意修改。接下来本文将详细介绍系统的设计开发过程。关键字:人事档案管理系统;Visual Studio 2012;通用型。引言11 系统概述12 需求分析12.1 系统需求12.1.1系统主要功能描述22.1.2 系统功能模块及说明22.2 开发环境33 详细设计33.1 系统总体模块图43.2 信息表逻辑结构设计53.3 数据结构的选择63.4 用户登录模块63.5 系统主菜单界面

4、73.6 添加信息模块73.7 删除信息模块83.8 修改信息模块83.9 查询信息模块93.10 浏览信息模块93.11 统计信息模块103.12 工资排序模块113.13用户管理模块12 3.14 关于系统模块124 所遇到的问题及分析解决125 系统特色及关键技术145.1 系统特色145.2 关键技术156 结论18参考文献19引言 在这个信息爆炸的时代,企业的人事管理工作需求不断的提高,而传统的手工作业效率较低,操作复杂,同时,由于员工信息非常的零散和杂乱无章,使得管理人员在处理这些繁杂的数据时极易出错,且不易查询和修改,显然落后的传统手工作业管理已不能满足企业发展的要求,因此,为了

5、满足企业发展的需求,提高企业管理水平,实现企业管理的自动化,我开发了一个中小型企业通用型的人事档案管理系统,为企业人事档案管理部门的工作带来便利。1 系统概述本系统是一个用于中小型企业的通用型人事档案管理系统,可以对企业人员履历信息、职工工资信息和月考勤信息进行简单的增、删、改、查操作,同时还具有多种统计功能(不同性别员工平均工资比较、不同部门的平均工资比较、不同受教育水平人的平均工资比较、不同部门最高实发工资比较、统计各个月份工资情况、同一部门不同职位员工工资比较)和工资排序功能(各个部门平均工资排序、各部门最高实发工资排序),此外,系统管理员还可以对用户进行管理(添加用户、删除用户和修改用

6、户信息),功能可以基本满足企业对人事档案管理的需求;系统界面简洁,按功能模块显示,容易操作。2 需求分析2.1 系统需求通过调查分析,一个完整的人事档案管理系统一般需要完成公司管理部门对公司人员的信息的管理,主要操作人员包括董事长和各个部门的经理等。管理模块主要包括系统用户管理,人事档案基本信息管理,员工工资管理,考勤管理等几个部分。符合这些需求的人事档案管理系统将打破了传统手工操作的模式,动态的实现了职工信息管理、人事变动、职工考勤信息管理等功能,操作简单,不易出错,极大地改善了传统管理模式的缺点,使得管理人员的工作量大大的减少,实现了人事档案管理的自动化。2.1.1系统主要功能描述本系统的

7、基本功能如下:(1) 具有登录功能;(2) 能够对用户进行管理,实现对用户的添加和删除功能,同时还支持密码修改功能。(3)具有简历数据文件(人员履历表文件、职工工资表文件、月考勤登记表)功能;(4)具有数据输入功能:能够对人员履历信息、职工工资信息、月考勤信息进行输入操作;(5)具有数据修改功能:能够对人员履历信息、职工工资信息、月考勤信息进行修改操作;(6)具有数据删除功能:能够对人员履历信息、职工工资信息、月考勤信息进行删除操作;(7)能按不同条件对一些基本信息进行查询;(8)具有多种统计功能(不同部门的员工平均工资比较、不同性别员工工资比较、不同职位员工工资比较等);(9)具有排序功能;

8、(10)能够对用户进行管理。2.1.2 系统功能模块及说明通过对用户需求的分析及用户操作习惯,将人事档案管理系统分为以下九大功能模块:(1) 用户登录模块 通过输入正确的用户名和密码进入系统,实现对系统各功能模块的操作;(2) 添加信息模块添加信息模块可以将人员履历信息、工资信息和月考勤信息添加到系统相应的文件中进行保存;(3) 删除信息模块删除信息模块可以实现对人员履历信息、工资信息和月考勤信息按编号或姓名和部门组合的方式删除;(4) 修改信息模块修改信息模块可以实现对人员履历信息、工资信息和月考勤信息中的各项内容进行修改;(5) 查询信息模块查询信息模块可以实现对人员履历信息、工资信息、月

9、考勤信息以及职工工资总额情况信息的查询;(6) 浏览信息模块浏览信息模块可以对人员履历信息、工资信息、月考勤信息以及职工工资总额情况信息的浏览;(7) 统计信息模块统计信息模块可以实现不同性别员工平均工资比较、不同部门的平均工资比较、不同受教育水平人的平均工资比较、不同部门最高实发工资比较、统计各个月份工资情况和同一个部门不同职位员工工资比较(8) 工资排序模块工资排序模块可以实现各部门职工工资平均值排序和各部门最高实发工资排序。(9) 用户管理模块用户管理模块必须是管理员才能够使用,该功能模块可以实现对用户进行添加、删除和修改操作;(10) 关于系统模块告诉用户本系统的一些基本信息。2.2

10、开发环境本系统是使用Microsoft Visual Studio 2012和C语言开发的。下面我将简单介绍一下Microsoft Visual Studio 2012及C语言。Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Fra

11、mework和Microsoft Silverlight 及Windows Phone,而Microsoft Visual Studio 2012是2012年9月12日微软在西雅图发布的。C语言是目前世界上流行、使用最广泛的高级程序设计语言。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。3 详细设计本节将详细介绍人事档案管理系统各个功能模块的设计和具体实现,为了操作方便,本系统在运行开始时首先进行的操作是将人员履历表文件、职工工资表

12、文件、月考勤信息表和用户表文件中的所有数据信息读取到相应的链表中去,接下来对人员履历信息、职工工资信息、月考勤信息和用户表都转化成对相关链表的操作,当涉及到对信息进行删除和修改操作时,会将相关文件内容清空,将有信息变更的链表内同写入相关文件中去,实现链表内容与文件内容的统一。3.1 系统总体模块图通过需求分析得到系统总体模块图: 开始 N登录录Y主菜单删除信息关于系统工资排序统计排序查询信息浏览信息修改信息用户管理添加信息保存到文件 返回主菜单 Y N 结束 图3-1 系统总体模块图3.2 信息表逻辑结构设计(1) 人员履历表: 员工编号员工姓名 性别 年龄 部门 职位 受教育年限 表3-1

13、人员履历(2) 职工工资表:员工编号月份基本工资 缺勤扣发工资扣税实发工资表 3-2 职工工资表(3) 月考勤表: 员工编号 月份 月考勤天数表3-3 月考勤表(4) 用户表: 用户名 密码 权限表3-4 用户表3.3 数据结构的选择本系统选用的是链表作为数据结构,选择使用链表作为数据结构的原因主要有以下几个:(1) 人事档案管理系统中存储的每个员工的信息都具有相同的结构,使用链表比较方便;(2) 链表是采用动态存储分配,不需要连续空间,使用时用malloc申请空间,链表长度可以改变,由于内存空间总是有限的,而且一个程序要尽量节省资源,而链表在删除信息时可以用free释放掉内存空间,不会造成空

14、间的浪费和溢出;(3) 人事档案管理系统需要经常对信息进行添加和删除操作,而链表的插入和删除元素不需要移动其余元素,效率高;因此,我选择了链表作为该系统的数据结构,将人员履历表、职工工资表和月考勤表设计成了三种不同的链表。3.4 用户登录模块在系统设计的最初将用户名和密码保存到用户登录文件中,运行系统时输入用户名和密码,如果所输入的用户名和密码跟登录文件中的用户名、密码完全匹配,则提示登录成功,进入系统主界面进行相关操作,否则提示用户名或密码错误。3.5 系统主菜单界面图3-2 系统主菜单界面该界面为登录成功后进入的系统主界面,通过menu()函数实现,界面上显示有各个功能模块的选项,每个选项

15、对应相应的数字,用户可以通过输入代表选项的数字进入相应的功能模块中进行相关操作(这里是通过调用各个功能函数实现的),还可以输入10退出系统。3.6 添加信息模块图3-3 添加信息模块图该功能模块通过addInfo()函数实现,用户进入该功能模块后选择要进行添加信息的表(人员履历表、职工工资表、月考勤表),然后进入相关表的信息添加界面,当输入完信息进行添加操作时,如果所添加的信息已经存在,则会提示用户改信息已存在,不能重复添加,如果信息不存在,则添加信息成功,接着用户可以选择继续添加信息或者返回主菜单。在这个功能模块的具体实现中,对每个表信息的添加都是通过调用相关链表的添加函数实现的,向链表添加

16、信息的同时还需要调用从链表向文件写入信息的函数将添加信息写入相应文件中进行保存,避免退出系统时数据丢失。3.7 删除信息模块 图3-4 删除信息模块图该功能模块通过deleteInfo()函数实现,用户进入该功能模块后选择要进行删除信息的表(人员履历表、职工工资表、月考勤表),然后进入相关表的信息删除界面,其中对人员履历表的删除操作是通过输入员工编号进行删除,对职工工资表和月考勤表的删除操作都是通过输入员工编号和月份来进行定位删除,在进行删除操作的时候,如果所要删除的信息不存在,系统则会提示用户所删除的信息不存在,否则提示删除成功,接着用户可以选择继续删除信息或者返回主菜单。在这个功能模块的具

17、体实现中,对每个表信息的删除操作都是通过调用相关链表的删除函数(delete_eplink(prllist,employeeID)、delete_eplink(epllist,employeeID,month)、delete_aslink(asllist,employeeID,month))实现的,删除链表信息的同时,还需要调用从链表向文件写入信息的函数将文件内同更新,避免下次登录系统时相关信息没有被删除。3.8 修改信息模块图3-5 修改信息模块图该功能模块通过modify()函数实现,用户进入该功能模块后选择要进行修改信息的表(人员履历表、职工工资表、月考勤表),然后进入相关表的信息修改界

18、面,对人员履历表的修改是通过输入员工编号选择修改相关内容,对职工工资表、月考勤表的修改是通过输入员工编号和月份并选择修改相关内容,在进行修改操作的时候,如果所要修改员工的信息不存在,则提示用户该员工不存在,否则提示修改成功,然后调用从链表向文件写入信息函数将文件内容更新,达到文件与链表内同的一致性。对每一个链表的具体修改操作都是通过调用相关链表的修改函数(modify_prInfo(prllist, employeeID, content)、modify_epInfo(epllist,employeeID, month, content)、modify_asInfo(asllist,emplo

19、yeeID, month, content))实现的。 3.9 查询信息模块 图3-6 查询信息模块图该功能模块通过serch()函数实现,用户进入该功能模块后选择要进行查询信息的表(人员履历表、职工工资表、月考勤表),然后进入相关表的信息查询界面,人员履历表支持按员工编号查询()、按员工姓名和部门组合查询和按部门查询(生成部门员工花名册);职工工资表支持按编号和月份组合查询员工的月工资信息,按编号查询员工所有月份工资信息;月考勤表支持按员工编号和月份查询员工月考勤信息,按员工编号查询员工所有月份的月考勤信息;职工工资总额情况表支持按员工编号查询员工的工资总额信息。对各个表的查询结果:如果查询

20、信息存在则将相关信息显示在界面上给用户看,否则提示用户所查询的信息不存在。3.10 浏览信息模块图3-7 浏览信息模块图该功能模块通过scan()函数实现,该功能模块提供给用户选择浏览的表有人员履历表、职工工资表、月考勤表和职工工资总额情况表,用户进入该功能模块后可以选择表进行信息浏览,系统会将用户选择的表的所有信息显示在界面上供用户浏览,该功能的具体实现主要是通过调用各个链表的打印输出函数(print_prllist(prllist)、print_epllist(epllist)、print_asllist(Asllist)实现的。该功能模块主要是为管理员总体了解员工信息提供便利。3.11

21、统计信息模块 图3-8 统计信息模块图该功能模块是本系统比较核心的一部分,通过statisticalInfo()函数实现,能够帮助人事部门统计各种信息,直观地将统计信息显示出来,为管理人员的工作带来了极大的便利。在该功能模块中,主要给用户提供了以下几种统计功能:不同性别员工平均工资比较、不同部门的平均工资比较、不同受教育水平人的平均工资比较、不同部门最高实发工资比较、统计各个月份工资情况、同一部门不同职位员工工资比较。下面我将简单介绍一下这几种统计功能的具体实现过程。不同性别员工平均工资比较:这个功能实现比较简单,通过调用statisticalBySex()函数实现,具体实现是将员工工资按性别

22、分别求和,然后求出不同性别员工的平均工资,将平均工资显示输出给用户;不同部门的平均工资比较:这个功能的实现首先是通过函数statisticalDepartment()将公司所有部门统计出来,然后通过函数statisticalByDepartment()按部门统计出各部门的平均工资;不同受教育水平人的平均工资比较:这个功能的实现首先是通过函数statisticalYearOfScooling(prllist)将各个受教育年限统计出来,然后再将不同的受教育年限的人的平均工资求出并显示在界面上(通过函数statisticalByYearOfScooling实现);不同部门最高实发工资比较:该功能的实

23、现首先是将公司所有部门统计出来,然后找出各部门的最高实发工资,显示输出到界面上,通过statisticalHighByDepartment()函数实现;统计各个月份工资情况:该功能实现是通过将同一月份的工资情况添加到相同链表,然后打印输出各个月份的工资情况,通过statisticalMonthPay(int month)函数实现;同一部门不同职位员工工资比较:该功能是整个统计功能模块中实现最复杂的一部分,不仅需要通过函数statisticalDepartment()将公司所有的部门统计出来,还需要通过函数statisticalPosition(PR_LinkList list)将各部门的职位统

24、计出来,最后求出所统计部门各个职位的平均工资并打印输出到界面上,整个功能是在statisticalPayByPosition(char department)函数中实现的。3.12 工资排序模块 图3-9 工资排序模块图这是本系统比较实用的一个功能模块,也是公司人事管理部门比较常用的一个功能模块,通过函数sortPay()实现。在这个模块中我设计了两种工资排序方式,第一种是各部门职工工资平均值排序,是用快速排序实现的,可以将公司全体部门的员工工资进行排序并直观地显示出来供用户查看,用户可以直观的看到各个部门平均工资的高低情况;第二种是各部门最高实发工资排序,是通过直接选择排序实现的,可以直接看

25、到各个部门的最高实发工资,比较各个部门的发展情况。3.13用户管理模块图3-10 用户管理模块图该功能模块比较特殊,只有管理员才能够使用,通过userManagement()函数实现。管理员可以添加新的用户并给用户赋予相应的权限;还可以删除用户和修改用户信息。3.14 关于系统模块图3-11 关于系统模块图该功能模块主要是向用户简单介绍了一下本系统的基本信息。以上内容就是对本系统详细设计的简单介绍了。4 所遇到的问题及分析解决每一个优秀的程序都是通过不断的调试、发现问题、分析解决问题,反反复复,逐步完善才得以实现的,在本次课程设计中,我也遇到了许多大大小小的问题,但是通过不断的调试和分析,基本

26、上都得到了解决,下面我将具体叙述一下我在本次课程设计中所遇到的问题及分析解决:问题一:是该定义三种包含不同属性的链表还是建立一个链表包含所有属性?分析解决:这是我分析人事档案管理系统这个选题时首先考虑的问题,因为该系统包含人员履历表、职工工资表和月考勤表,每一个表都有一个共同的属性(员工编号),如果建立三个包含不同属性的链表分别用来表示这三个表,则对链表的增删改查等基本函数需要分别写三次,比较麻烦,且在统计部分需要考虑到表之间的联系问题;如果建立一个链表,则在对不同的表添加信息时,都需要申请结点控件,会存在没有添加信息的表造成空间浪费的现象;但是,如果只建立一个链表包含所有属性,则会在删除信息

27、时出问题,会将三个表中该员工的信息都删除掉,不能实现选择性删除,这是不可行的,经过综合考虑,我选择了建立三个包含不同属性的链表分别表示人员履历表、职工工资表和月考勤表,虽然这样会有点麻烦,但是不会使系统出现问题。问题二:登录函数只能使用登录文件中的最后一行的用户名和密码进行登录,使用其它用户名和密码总是提示用户名或密码错误。分析解决:在对登录文件的读取时,最后一行前面的每一行用户名和密码都包含一个换行符,我是通过以空格为分割符将每行用户名和密码提取出来分别和输入的用户名和密码进行比较的,因此每一行的密码提取出来都会多一个换行符,导致和输入的密码不匹配,无法登陆系统,而最后一行就不存在这个问题,

28、因此用最后一个用户名和密码总是能够登陆成功。通过判断读取文件的每一行最后一个字符是否是换行符,如果是则去掉换行符,问题成功的解决了。问题三:关于链表结点中的某些属性数据类型使用string类型的问题分析解决:刚开始在对链表进行设计时,结点的很多属性数据类型我都使用了string数据类型,一开始都报错,于是就加上了#include<iostream>和using namespace std语句,错误消失了,因此也没有太在意使用string类型会不会有什么问题,到后面调试程序时才发现一到为结点中string类型属性赋值时就出问题,想了很久也不知道那里会有什么问题,因为其它定义的stri

29、ng类型变量赋值都没有出现问题。后来通过上网查资料发现这是C语言和C+混用所造成的后果,在C语言中是没有string类型的,而我在为结点申请内存空间是使用的是C语言的malloc。该问题找到了两种解决方法:第一种是使用C+的语法new为结点申请内存空间,第二种是将结构体中定义的所有string类型属性改成char类型的字符数组,两种方法我都尝试了一下都可以解决该问题,但最终由于平时比较习惯使用malloc,个人觉得malloc比较符合所学的C语言数据结构,因此我选择了第二种解决方法。问题四:switchcase语句问题分析解决:对于每一个case模块中的代码平时不习惯使用括起来,刚开始也没发现

30、有什么问题,后来遇到需要在里面定义变量的模块时,对于的case下面都会出现红色的波浪线报错。通过查资料发现,switch.case实质上是一个标签,就像goto的标签一样,case中的代码并没有构成一个局部作用域,虽然它的缩进给人一种错觉,好像它是一个作用域。因此在case中定义的变量作用域都是switch.,这就会导致程序跳过声明变量的语句执行下面的case中的代码,解决方法是将case中的代码用大括号封成一个局部作用域。问题五:文件的读取问题分析解决:在一次测试浏览信息功能模块时,发现打印输出的人员履历表信息从某一员工的信息之后出现了乱码,刚开始认真的检查了几遍与该表相关的函数也没有发现什

31、么问题,后来查看人员履历表文件时才发现在向该文件录入信息某一员工的一个属性值少录入了,因此在将文件内容读取到链表中时出现数据类型不匹配导致乱码的情况,(从这个问题中发现,程序出问题并不一定是因为代码出错,细心真的太重要了!)。以上就是我这次课程设计中遇到的比较大的问题了,整个设计过程还是比较顺利的,每个问题的发现和解决都是一次很大的收获,做完本次课程设计代码调式代码能力提升了不少。5 系统特色及关键技术5.1 系统特色特色一:具有多种统计功能(不同性别员工平均工资比较、不同部门的平均工资比较、不同受教育水平人的平均工资比较、不同部门最高实发工资比较、统计各个月份工资情况、同一部门不同职位员工工

32、资比较),可以直接统计各种想要的信息,避免人工统计繁琐,这在很大程度上帮助系统用户减轻工作负担;特色二:具有多种工资排序功能(部门职工工资平均值排序、各部门最高实发工资排序),直接统计出各种工资排序,管理人员可以以此来激发员工提高工作绩效,使公司整体业务水平得到提升;特色三:对用户设置有权限,只有管理员才能对用户进行管理,避免系统信息被恶意修改;特色四:将系统分为多个功能模块,每个功能模块中又有多个功能菜单,方便用户的使用。5.2 关键技术(1) 文件的读取操作:我认为这是本系统非常重要的一个地方,系统信息的保存和更新都是通过该部分来实现的。向文件中写入添加信息:(在程序中的位置:文件名:at

33、tendanceSheet.cpp,行号:211-221)Void writeTo_asFile(char employeeID,int month,int monthlyAttendanceDays)FILE *fp;if(fp = fopen("attendanceSheet.txt","a") =NULL)cout<<"Can not open the attendanceSheet.txt file!"<<endl;return;fprintf(fp,"%s %d %dn",empl

34、oyeeID,month,monthlyAttendanceDays);fclose(fp);将文件数据读取到链表中:(在程序中的位置:文件名:attendanceSheet.cpp,行号:224-243)AS_LinkList readTo_asllist()AS_LinkList asllist = creatNullAS_List_link();FILE *fp;attendanceSheet_Node p;if(fp = fopen("attendanceSheet.txt","r") = NULL)cout<<"Can n

35、ot open the attendanceSheet.txt file!"<<endl;return NULL;while(!feof(fp)fscanf(fp,”%s %d %dn”,&p.employeeID,&p.month,&p.monthlyAttendanceDays);/将文件中读取到的数据添加到链表中去insertData_aslink(asllist,p.employeeID,p.month, p.monthlyAttendanc eDays);fclose(fp);return asllist;(2) 用户登录验证,需要将读取

36、登录文件中的每一行用户信息按空格划分成用户名、密码和权限分别与输入的用户名、密码进行匹配,知道完全匹配才能登录成功,进入系统。(在程序中的位置:文件名:otherFunction.cpp,行号:25-73)int login().(此次省略若干行代码)while(!feof(fin)/读取文件的一行到buf中fgets(buf,50,fin);/取出的每行字符串长度int len = strlen(buf);/去掉行尾换行符if (buflen - 1 = 'n') buflen - 1 = '0'int i = 0;/将buf以空格为分割符分开p = strt

37、ok(buf," ");while(p != NULL)si = (char*)malloc(strlen(p)+1);strcpy(si, p);p = (strtok(NULL, " ");i+;if(strcmp(userName, s0) = 0) && (strcmp(password, s1) = 0).cout<<"用户名或密码错误"<<endl;return 0;(3) 统计部门,删除部门相同的结点,剩下的结点就包含了所有部门的结点(没有重复的部门)(在程序中的位置:文件名:otherFunction.cpp,行号:823-861)PR_LinkList statisticalDepartment().(此次省略若干行代码)personnelResume_PNode s;/被比较的结点personnelResume_PNode r;/待比较的结点personnelResume_PNode pr;/待比较的结点的前驱结点.s = prllist1 ->link;while ( s->link ) pr = s; r = s->link; while ( pr->link ) if ( strcmp(

温馨提示

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

最新文档

评论

0/150

提交评论