简单的员工管理系统_第1页
简单的员工管理系统_第2页
简单的员工管理系统_第3页
简单的员工管理系统_第4页
简单的员工管理系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、淮海 工学院 计算机工程学院课程设计报告设计名称:数据结构课程设计选题名称:简单的员工管理系统姓 名:徐峰学号:201专业班级: 网络工程132系(院):计算机工程学院设计时间: 2013.12.232013.1.3设计地点:软件工程实验室、教室 105成绩:指导教师评语:签名:1.课程设计目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。2 .初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3 .提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4 .训练用系统的观点和软件开发一般规范进行软件开发,巩固、

2、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。2 .课程设计任务与要求:任务根据教材数据结构-C语言描述(耿国华主编)和参考书数据结构题集(C语言版)(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构 的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。设计题目从任务书所列选题表中选取,每班每题不得超过2人。学生自选课题学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在18周前报课程设计指导教师批准方可生效。要

3、求:1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。3、程序设计语言推荐使用 C/C+,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;5、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算);6、课程设计实践作为

4、培养学生动手能力的一种手段,单独考核。3 .课程设计说明书T M !(" THHB « 一,! 一,* 一* 一需求分析职工管理系统是一个工作单位不可缺少的管理工具,它管理的数据对于公司的决策者 和管理者来说都至关重要,所以职工管理系统应该能够为用户提供充足的信息和快捷的 查询手段。但一直以来各个公司基本上都是靠传统的人工方式来管理职工信息,这种管 理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和 数据,这对于信息的查找、更新和维护都带来了不少的困难。职工管理系统作为一种管理软件正在各公司中得到越来越广泛的应用,且已达到了 良好效果。简单的职工管

5、理系统:1、问题描述对单位的职工进行管理,包括插入、删除、查找、排序等功能。2、要求职工对象包括代码(字符串)、姓名(字符串)、性别(字符)、出生年月(字符串)、 学历(字符串)、职务(字符串)、工资(数字)等信息。(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。(2)删除一名职工:从职工管理文件中删除一名职工对象。(3)查询:从职工管理文件中查询符合某些条件的职工。(4)修改:检索某个职工对象,对其某些属性进行修改。(5)排序:按某种需要对职工对象文件进行排序。3、实现功能(1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。(2)对职工对象中的“工资”按字

6、典顺序进行排序。(3)对排序后的职工对象进行增、删、查询、修改、排序等操作。二概要设计1、输入功能的实现:要想实现职工管理系统的输入,必须要建立一个职工信息系统的 抽象数据类型,其中职工信息以链表的存储方式实现。由键盘输入职工对象,以文件方 式保存。程序执行时先将文件读入内存。2、系统处理功能的实现:系统管理员根据公司的人员流动情况,在提示信息的提示 下,选择相应的服务进行操作。如对职工对象中的 "工资"按字典顺序进行排序;对排序 后的职工对象进行增、删、查询、修改、排序等操作。3、输出的实现:根据选择的操作,输出与之对应的信息。综上可以绘制出职工管理功能的 系统流程图,如

7、图1所示总控模块输入模块系统处理模块输出模块测试模块4 .系统功能结构根据职工管理系统问题的分析和设计要求,可以得到该职工管理系统可以分为五个 模块:职工信息添加模块、职工信息修改模块、职工信息删除模块、职工信息查询模块、 职工信息排序模块。具系统功能结构如图 2所示。职工管理系统排序功能信 息 显 示保 存 文 件工 资 排 序退 出 系 统图2系统功能结构图5 .模块函数构造根据系统功能结构图的描述,可以构造出该系统的抽象数据类型和相对应的函数,方法名和功能如表1所示。1.函数功能表模块函数或数据结构功能链表数据模块typedef struct Employee Node;typedef

8、Node* Link;定义链表结点系统处理模块Link Create(Link Head )创建带头节点的空链表void Release(Link Head)释放链表Link Add(Link Head)前插法添加数据bool Search(Link Head)查询职工信息void Display_List(Link Head)显本职工信息Link Modify(Link Head)修改职工信Link Del(Link Head)删除职工信息Link Sort(Link Head)职工信息排序VoidSave_ByFile(LinkHead,fstream& ofile)保存职工信息输

9、出模块void Display_Node(Link pNode)输出职工信息三详细设计1、抽象数据类型定义1)定义表结点(typedef struct Node )struct Employee* Next;typedef struct Employee Node;typedef Node* Link;2)初始化链表Link Create(Link Head)/创建一个带头节点的空链表。Head=(Link)new Node;if(!Head)cout<<"分配内存失败!"<<endl;return NULL;2 .主函数设计根据详细设计要求,可以得

10、到主函数代码及其对应的程序流程图:在主函数中,实现了友好的界面设计。系统需要输入职工的基本信息:姓名、性别、出生年月、工作年月、 学历、职务、工资等。这个系统还利用键盘输入提供的主菜单服务,在主菜单中,有八 种操作的调用Link Create(Link Head )创建带头节点的空链表void Release(Link Head)释放链表Link Add(Link Head)前插法添加数据bool Search(Link Head)查询职工信息void Display_List(Link Head)显本职工信息Link Modify(Link Head)修改职工信息Link Del(Link

11、Head)删除职工信息主函数代码见附录1主函数程序流程图如图4所示:3 .添加职工信息Link Add(Link Head)/前插法添加数据。Link pNew;/声明一个新节点。char again;string code,name,sex,post,department;unsigned short int year;unsigned int wage;dopNew=(Link)new Node;数据域。cout<<"请输入职工代码:"cin>>code;cout<<endl<"请输入职工姓名:"cin>

12、;>name;cout<<endl<<"请输入职工出生年份:cin>>year;cout<<endl<”请输入职工性另1J:"cin>>sex;cout<<endl<<"请输入职工职称:"cin>>post;cout<<endl<<"请输入职工部门:"cin>>department;cout<<endl<<"请输入职工工资:"cin>>d

13、epartment;cout<<endl<<"请输入职工工资:"cin>>wage;while(cin.fail()(cout<<"请输入正确的工资数据。"<<endl;cin.clear();fflush(stdin);cin>>wage;cout<<endl;pNew->m_Code=code;pNew->m_Name=name;pNew->m_Year=year;pNew->m_Sex=sex;pNew->m_Post=post;pNe

14、w->m_Department=department;pNew->m_Wage=wage;指针域。pNew->Next=Head->Next;Head->Next=pNew;cout<<"数据添加成功!是否继续添加?(Y/N)"<<endl;cin>>again;while(again='Y'|again='y');return Head;4 .信息查询模块在查询算法中,职工管理系统提供了七种查询操作,实现了系统的人性化查询操作 这些查询操作分别为:对姓名进行查询,对性别进行查

15、询,对出生年月进行查询,对学历进行查询,对职 位进行查询,对工资进行查询等一些列操作。查找算法中,利用链表的指针的移动扫描 整个职工信息表,利用strcmp()函数判断字符串是否匹配。bool Search(Link Head)/查询同时满足"姓名"和"部门"的职工信息。Link ptr;string department;string name;ptr=Head->Next;cout<<"请输入部门:"cin>>department;cout<<endl<<"请输入姓名

16、:"cin>>name;cout<<endl<<"查询结果"<<endl;cout<<endl<<"职工代码姓名出生年份性别 职称 部门工资"<<endl;while(ptr)if(ptr->m_Name=name)&&(ptr->m_Department=department)Display_Node(ptr);/打印满足条件的节点。return true;ptr=ptr->Next;/ 查询下一节点。cout<<

17、"无此职工的信息。"<<endl;return false;5排序算法设计在排序算法中,对工资进行排序的核心代码:Link Sort(Link Head)我创建的是带头节点的链表。用直接插入法。if(Head->Next=NULL)|(Head->Next->Next=NULL)此步条件判断非常有价值。 cout<<"数据节点数少于 2个,不用排序!"<<endl;return Head;/第二步;Link ptr;Link ptr_F;Link ptr_N;ptr=Head->Next->

18、;Next;Head->Next->Next=NULL;/ 至U此,分成了两个链表。第三步。 while(ptr) ( ptr_N=ptr->Next; ptr_F=Head;/ptr_F 的归位。while(ptr_F->Next) (if(ptr->m_Wage>ptr_F->Next->m_Wage) (ptr->Next=ptr_F->Next; ptr_F->Next=ptr;break;/if else ( ptr_F=ptr_F->Next;/while(ptr_F->Next) if(ptr_F-&g

19、t;Next=NULL) (ptr->Next=ptr_F->Next;ptr_F->Next=ptr;/表示插到有序链表的最后面了。 ptr=ptr_N;/归位,准备下一次排序。/while(ptr)cout<<"从高到低,排序成功!"<<endl;return Head;6.删除核心算法在删除算法中,职工管理系统提供操作,实现了系统的人性化删除操作。提示对姓名进行输入,对性别进行输入,等一些列操作。查找算法中,利用链表的 指针的移动扫描整个职工信息表,如果存在,则删除该职工信息,如果不存在,则提示 输入信息错误。Link Del

20、(Link Head) (Link ptr;Link ptr_front;ptr_front=Search_Unique_Front(Head);ptr=ptr_front->Next;if(ptr)(ptr_front->Next=ptr->Next;delete ptr;删除此节点。cout<<"没找到此职工的记录,无法删除。"<<endl; return Head;四设计与调试分析测试是使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验是否满足规定的需求或弄清预期结果与实际结果之间的差别。在调试查询修改功能过程中,

21、查询的总是不正确,查询的结果显示,没有找到职工信息 最后发现查找的结点不正确,查询应该与输入的值和头结点next比较,而不是头结点。还有就是查询结点不知道如何循环,最后又看看了记得笔记和书,才知道如何继续查找 而不出错误。修改时总是不能正确的修改,最初时修改总是修改最后输入的数据。最后终于找到了, 又是结点写错了。排序时注意交换的先后顺序就可以了,删除时注意交换结点的顺序。经验与体会:本次课程设计是围绕数据结构进行。根据问题描述可知,需要解决问题并不复杂,整个 问题只需要实现一个职工管理系统功能,那就是在这个系统中实现对职工信息的插入、 删除、查询、排序、修改以及保存。但是,为了实现该功能,却

22、需要优秀的算法和数据 结构以保证实现的时间和空间效率。把职工信息存储在一个单链表中,利用指针实现对 职工信息的各项基本操作。虽然设计的程序完成了题目描述所需要实现的功能,但是仍然存在不如人意的地方。那 就是可以排序上面多设计几个算法。实现多角度排序。在这个系统中没有职工序号的信 息,所以允许职工姓名相同,在很大程度上面,可能是的职工信息重复。经过这次数据结构课程设计,我们不仅及时巩固的了数据结构、算法、以及软件工程的知识,并明白数据结构和算法对于程序时间和空间性能的影响,及软件工程提供的开发 流程和工具对于实现特定功能程序的重要意义。当我们面对一个实际问题,应该迅速根据问题性质和特点抽象成特定

23、的数据结构,当然 每个问题都有可能能够抽象成多种数据结构,每种数据结构适应于不同的算法。因此应 该综合考虑这样的数据结构、算法以及它们的空间和时间效率,然后从中选择一个作为 实现程序的基础。此外,对程序的测试应该要仔细,根据模块的特点和测试阶段,采用各种软件测试方法 对程序进行测试,确保各个模块的正确性和完整性,最后集成起来测试其是否正确和完 整地实现了问题描述中要求的功能。五用户手册进入职工管理系统,首先看到的就是欢迎界面:输入相应操作的数字,1.新增职工信息2.修改信息3.删除信息4.信息查询5.保存文件6.工资排行7.信息显示0.退出系统输入相应操作的数字,选才¥ 1、请输入注

24、册职工:按次序依次输入职工的姓名、性别、出生年月、学历、职务、 工资的信息(注意是依次输入,中间可以用空格,tab,回车做切换输入),输完信息后自动回到主界面。选才¥2,提示修改信息的代码、姓名,成功正确返回,错误有提示无此员工信息;选才¥3,提示删除信息方式:成功正确返回,错误有提示无此员工信息;选才¥ 4,信息查询,显示统计的数据;选才? 5,保存文件;选才¥ 6.按工资进行排序,进行输出排序后的数据;选才¥ 7.信息显示;选才¥ 0.退出系统.六测试成果(1)进入职工管理系统r HDEb咛面墟WTWS至MM:井 人 耳0土里其名

25、充*11c M拜其制苴 1cM =31tlM = 1cllt11cBi M: HL J< M:X KXMX KM-KM M X K M M 34 MM X M M M K K M M X K 34M 34 MM X MM M X M N KM KM.MMK亶资出 工退工息件示 职信文显 册陈啻心请选择相应操作菜单项:I = I叵I 片(2)注册职工信息 "C:LJ s«rsAd m ini stratorDekto pDebug. 工金又¥否7-信息豆ZF0.退田祭统再心炎*6/蚤奴*也也去a+4表*%*长0*请选择相应堞作菜单项;1 请输入加工代福加请输入

26、职工姓名徐峰请输入职工出生年价11”4请输入职工性别,男请输入明工职称:经理请输入职工部门:网络工程清输入职工工资:Ema触据添加成功!是否继绫漆加?匹小(3)修改信息, 'Cf.U senAd m ini stratorDeskto pDebugra 工曾理j融鼠emu' 请选择相应镖作菜单项:2请输入明H代碣:02查能S果职工代眄姓若出生至份性别 职称 部门 工赘你现在可以惨或此职工的后息J职工代码姓名出生年份性别 职称部门 工资请输入职工代码工也请输入职工姓名上吴磊请输入期工出生年d务i”s请输入期工性别,男请输入职工职称士执行董事请输入职工部广:策划部请输入取工工贺:的

27、蛇(4)删除信息lol si查询结3ft出生年份.职,性别职称部门工贽片K K tf Itf U M M X M: It M: HM M MM - UM If M: X MH孙K.XMWKiW 甑'j巫 # 八 月£:r壬旦 d老宁算MMMKMK吐MM强.M.工息件示职信文显册除啻心n册笈1E息询广京 A8 亶资出 卷工退 一 i -娄至请选择相曙作菜单项:.(5)信息查询查询结果阳工代码经士里L注册职工情选择相应操作菜单项出生年份1994 目(6)保存文件菜单项:.注册职工情选择相应操作菜单项k N MJCKJCJCXJCM* X【J j# A k) 菅王里A,充产.111

28、t .苴珠注 -HH0 *¥无*4«(7)工资排行 1 "C:LI s«nAd m ini stratorkDekto pDebug ra ZE®i?e > eH姓名 段晓波出生年优,的II男吴磊19941995职称 兄长 第理 科长1 门部工开 销网技工资50304590孙X.墓M IC * K iW 飞次 j史 # 八 耳U壬旦 d老宁算MMMKMKK MM 强=M帧一主菜单苗如L注册职工3硼除信息 5.WX# ?_4 =自.且 rr2.修天作息4.信息6-工资0-退出请选择相喝作菜单项:(8)信息显示L显示7.Uj2 .修力信息4

29、.信息查询人三丰瑟董一企L注城职工 m.删除信息 5避存支件月工代码£IS工资 S83B 5090 45903KH 独堇M :M XX 堇:M堇飞次j卬1牛 八 耳£管旺空 & X宁 ME M X M K 苴苜苴M: K算M .Mi M X苴M M M辂波,游譬础科1 门部工开 部隹销网技瑜出长理长 部经科中牛年栉性别七附录(源程序清单)参考文献:1李云涛,杨庆红,揭安全.数据结构(C语言版)M.北京:人民邮电大学出版社,2004.62潘彦.算法设计与分析基础M.北京:清华大学出版社,2007.13肖梦强,曲秀涛.软件工程一一原理、方法与应用M.北京:中国水利水电出

30、版社,2005.104吕凤翥.C+语言程序设计(第2版)M.北京:电子工业出版社,2007.2 5严蔚敏,吴 伟民.数据结构(C语言版)M.北京:清华大学出版社,2002.9#include <string>#include <iostream>#include <fstream>#include <iomanip>#include <memory.h>#include <stdio.h>#include <conio.h>#include <stdlib.h>using namespace std

31、;struct Employee/声明职工的结构作为链表节点。/-数据域一一string m_Code;string m_Name;unsigned int m_Year;string m_Sex;string m_Post;string m_Department;unsigned int m_Wage;链表节点的指针域 一struct Employee* Next;typedef struct Employee Node;typedef Node* Link;/函数声明Link Create(Link Head);void Release(Link Head);Link Add(Link H

32、ead);bool Search(Link Head);Link Search_Unique(Link Head);void Display_List(Link Head);void Display_Node(Link pNode);Link Modify(Link Head);LinkDel(Link Head);void Save_By Head,fstream& ofile);Link Sort(Link Head);/函数实现Link Create(Link Head)/创建一个带头节点的空链表。Head=(Link)new Node;if(!Head)cout<<

33、"分配内存失败!"<<endl;return NULL;Head->m_Code=""Head->m_Name=""Head->m_Year=0;Head->m_Sex=""Head->m_Post=""Head->m_Department=""Head->m_Wage=0;Head->Next=NULL;return Head;void Release(Link Head)/释放链表。Link ptr;/声明一个操

34、作用的指针。while(Head!=NULL)ptr=Head;Head=Head->Next;delete ptr;/释放节点资源。Link Add(Link Head)/前插法添加数据。Link pNew;/声明一个新节点。char again;string code,name,sex,post,department;unsigned short int year;unsigned int wage;dopNew=(Link)new Node;数据域。cout<<"请输入职工代码:"cin>>code;cout<<endl<

35、;<"请输入职工姓名:"cin>>name;cout<<endl<<"请输入职工出生年份:cin>>year;while(cin.fail()cout<<"请输入正确的年份格式。"<<endl;cin.clear();fflush(stdin);cin>>year;)cout<<endl<<"请输入职工性别:"cin>>sex;cout<<endl<<"请输入职工职称

36、:"cin>>post;cout<<endl<<"请输入职工部门:"cin>>department;cout<<endl<<"请输入职工工资:"cin>>wage;while(cin.fail()cout<<"请输入正确的工资数据。"<<endl;cin.clear();fflush(stdin);cin>>wage;)cout<<endl;pNew->m_Code=code;pNew-&

37、gt;m_Name=name;pNew->m_Year=year;pNew->m_Sex=sex;pNew->m_Post=post;pNew->m_Department=department;pNew->m_Wage=wage;指针域。pNew->Next=Head->Next;Head->Next=pNew;cout<<"数据添加成功!是否继续添加?(Y/N)"<<endl;cin>>again;while(again='Y'|again='y');ret

38、urn Head;bool Search(Link Head)/查询同时满足"姓名"和"部门"的职工信息。Link ptr;string department;string name;ptr=Head->Next;cout<<"请输入部门:"cin>>department;cout<<endl<<"请输入姓名:"cin>>name;cout<<endl<<"查询结果"<<endl;工资"

39、;<<endl;cout<<endl<<"职工代码姓名 出生年份 性别 职称 部门while(ptr)if(ptr->m_Name=name)&&(ptr->m_Department=department)Display_Node(ptr);/打印满足条件的节点。return true;ptr=ptr->Next;/ 查询下一节点。cout<<"无此职工的信息。"<<endl;return false;Link Search_Unique_Front(Link Head)

40、查询满足"职工代码”的职工信息(职工代码必需唯一)Link ptr;string code;ptr=Head;cout<<"请输入职工代码:"cin>>code;cout<<endl<<"查询结果"<<endl;工资"<<endl;cout<<endl<<"职工代码姓名 出生年份 性别 职称 部门while(ptr->Next) if(ptr->Next->m_Code=code)Display_Node(ptr

41、);打印满足条件的节点。return ptr;注意,是返回的查询到的节点的直接前趋节点ptr->Next=ptr->Next->Next;/ 查询下一节点。return ptr; void Display_List(Link Head) Link ptr;ptr=Head->Next;cout<<"=所有职工信息="<<endl;<<endl;cout<<endl<<"职工代码姓名 出生年份 性别 职称 部门 工资while(ptr)Display_Node(ptr);ptr=pt

42、r->Next;void Display_Node(Link pNode)/在标准输出设备上输出。cout<<setw(10)<<left<<pNode->m_Code<<setw(10)<<left<<pNode->m_Name<<setw(10)<<left<<pNode->m_Year<<setw(10)<<left<<pNode->m_Sex<<setw(10)<<left<<p

43、Node->m_Post<<setw(10)<<left<<pNode->m_Department<<setw(10)<<left<<pNode->m_Wage<<endl;/setw(10)表示占 10 个字符位置。Link Modify(Link Head)/修改单一个节点。Link ptr;ptr=Search_Unique_Front(Head);string code,name,sex,post,department;unsigned short int year;unsigned

44、int wage;if(ptr->Next)cout<<"你现在可以修改此职工的信息了 "<<endl;工资"<<endl;cout<<endl<<"职工代码姓名出生年份性别 职称 部门数据域。cout<<"请输入职工代码:"cin>>code;cout<<endl<<"请输入职工姓名:"cin>>name;cout<<endl<<"请输入职工出生年份:&q

45、uot;cin>>year;(cout<<"请输入正确的年份格式。"<<endl;cin.clear();fflush(stdin);cin>>year;)cout<<endl<<"请输入职工性别:"cin>>sex;cout<<endl<<"请输入职工职称:"cin>>post;cout<<endl<<"请输入职工部门:"cin>>department;cou

46、t<<endl<<"请输入职工工资:"cin>>wage;while(cin.fail()(cout<<"请输入正确的工资数据。"<<endl;cin.clear();fflush(stdin);cin>>wage;)ptr->Next;cout<<endl;ptr->Next->m_Code=code;/因ptr是前趋节点,所以要用ptr->Next->m_Name=name;ptr->Next->m_Year=year;ptr

47、->Next->m_Sex=sex;ptr->Next->m_Post=post;ptr->Next->m_Department=department;ptr->Next->m_Wage=wage;) cout<<"没找到此职工的记录,无法修改。"<<endl;return Head;)LinkDel(Link Head)(Link ptr;Link ptr_front;ptr_front=Search_Unique_Front(Head);ptr=ptr_front->Next;if(ptr)(

48、ptr_front->Next=ptr->Next;delete ptr;/删除此节点。)cout<<"没找到此职工的记录,无法删除。"<<endl;return Head;)void Save_By Head,fstream& ofile)(Link pNode;pNode=Head->Next;o();/清除文件结束状态。while(pNode)(ofile<<setw(10)<<left<<pNode->m_Code<<setw(10)<<left<

49、;<pNode->m_Name<<setw(10)<<left<<pNode->m_Year<<setw(10)<<left<<pNode->m_Sex<<setw(10)<<left<<pNode->m_Post<<setw(10)<<left<<pNode->m_Department<<setw(10)<<left<<pNode->m_Wage<<endl;/

50、setw(10)表示占 10 个字符位置。pNode=pNode->Next;cout<<"数据文件保存成功!"<<endl;Link Sort(Link Head)我创建的是带头节点的链表。用直接插入法。if(Head->Next=NULL)|(Head->Next->Next=NULL)此步条件判断非常有价值。cout<<"数据节点数少于 2个,不用排序! "<<endl;return Head;/第二步;Link ptr;Link ptr_F;Link ptr_N;ptr=He

51、ad->Next->Next;ptr_F=Head;Head->Next->Next=NULL;/ 至U此,分成了两个链表。第三步。while(ptr)ptr_N=ptr->Next;ptr_F=Head;/ptr_F 的归位。while(ptr_F->Next)if(ptr->m_Wage>ptr_F->Next->m_Wage)ptr->Next=ptr_F->Next;ptr_F->Next=ptr;break;/ifelse(Ptr_F=ptr_F->Next;/while(ptr_F->Next

52、)if(ptr_F->Next=NULL)(ptr->Next=ptr_F->Next;ptr_F->Next=ptr;/表示插到有序链表的最后面了。ptr=ptr_N;/归位,准备下一次排序。/while(ptr)cout<<"从高到低,排序成功! "<<endl;return Head;int main()(Link Head=0;Head=Create(Head);fstream iofile;io("d:io",ios_base:in|ios_base:out|ios_base:app); 文件以三

53、种方式打开。if(!iofile)(cout<<"打开文件失败!"<<endl;return -1;)int menu;while(1)(cout<<"*"<<endl; cout<<"*"<<endl;cout<<"I*欢迎进入职工管理系统*"<<endl;cout<<endl;cout<<""<<endl;cout<<"主菜单一 "<<endl;cout<<"

温馨提示

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

评论

0/150

提交评论