职工信息管理系统C++课程设计报告 .pdf
课 程 设 计 报 告课程名称C#程序设计课题名称职工信息管理系统专业信息管理与信息系统班级信管 1301 学号201303110125 姓名指导教师2015 年 6 月 10 日名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 41 页 -湖南工程学院课 程 设 计 任 务 书课程名称C#程序设计课题职工信息管理系统专业班级信管 1301 学生姓名学号201303110125 指导老师李峰、赵锦元、谢雅审批任务书下达日期2015 年 6 月 10 日任 务 完 成 日 期2015 年 6 月 27 日名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 41 页 -一、设 计 内 容 与 设 计 要 求1.课程设计目的:全面熟悉、掌握计算机系统与系统软件基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,增强面向对象程序设计概念,熟悉C+语言编程,养成提供文档资料的习惯和规范编程的思想,为后继课程的实验以及课程设计打下较扎实的基础。进一步提高上机动手能力,培养使用计算机解决实际问题的能力,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计,特别是自学、毕业论文的完成打下扎实的基础。2.课题题目职工信息管理系统3.设计要求:具有功能:1、添加信息 2、显示统计数据 3、查找学生成绩 4、修改信息 5、删除信息 6、插入信息7、显示全部信息 8、退出本系统课程设计报告规范1、完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。2、完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。3、完成系统详细设计:包括采用C+语言定义相关的数据类型;写出各模块的类 C+码算法;画出函数的调用关系图。4、调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 41 页 -解决问题的方法;课程设计过程经验教训、心得体会。5、关键源程序(带注释)6、其他1)设计正确,方案合理。2)界面友好,使用方便。3)程序精炼,结构清晰。4)设计报告 5000字以上,含程序设计说明、系统的功能框图、流程图、源程序清单等。5)实际操作过程中遇到的问题及解决方法:设计总结及心得体会.6)上机演示。二、进 度 安 排第16 周星期一14 时:00 分星期二14 时:00 分星期四14 时:00 分星期五14 时:00 分第 17 周星期一14时:00 分星期二14 时:00 分名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 41 页 -目录1 系统需求分析.11.1 系统设计目的与意义 .11.2 系统功能需求 .11.3 输入输出要求 .12 总体设计.22.1 总体设计图 .22.2 各函数之间的调用关系.33 详细设计.33.1 采用 C+语言定义的相关数据类型:.33.2 各功能模块的实现.54 调试分析及设计体会.13 4.1 调试运行的结果 .13 4.2 程序调试中的问题.15 5 心得体会.15 6 附录.16 6.1 源代码 .16 6.2 参考文献:.35 7 评分表.36 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 41 页 -1 系统需求分析1.1 系统设计目的与意义全面熟悉、掌握计算机系统与系统软件基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,增强面向对象程序设计概念,熟悉 C+语言编程,养成提供文档资料的习惯和规范编程的思想,为后继课程的实验以及课程设计打下较扎实的基础。进一步提高上机动手能力,培养使用计算机解决实际问题的能力,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计,特别是自学、毕业论文的完成打下扎实的基础。1.2 系统功能需求职工信息管理系统,具有录入职工信息,职工信息的输入、输出功能可以在数据库中查询、修改、插入和删除所保存的记录,而且具有对职工信息进行排序并显示的功能;并具有退出该系统模块的功能。1.3 输入输出要求本系统是一个职工信息管理系统,采用VC+6.0 编译器作为开发环境,这个环境是我们在学习的C+平台。输入数据类型主要是char、int、float 等数据类型,输入内容包括:工号、姓名、性别、学历、年龄、工资、地址、电话等数据。用户在输入职工信息保证输入数据格式的正确性,系统不会自动检测输入的数据是否正确可用。输出形式与输入形式类似,根据需要可以选择显示输入的各项内容,还可以修改、删除、查找、显示所有、保存等功能。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 41 页 -2 2 总体设计2.1 总体设计图图 2.1.总体设计流程图职工信息管理系统职 工 信息 输 入输 出 功能职 工 信息 保 存功能按 工 资从 大 道小排序按学历、工 号 或姓 名 查询职 工 信息 删 除或 修 改功能名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 41 页 -3 2.2 各函数之间的调用关系图 2.2 各函数的调用关系3 详细设计3.1 采用 C+语言定义的相关数据类型:在程序中主要用的是c+面向对象的编程方法,主题是用类来写的,通过各成员属性和成员方法来实现各种功能。数据类型有整形(int)、字符型(char)、字符串型(string),还有各种静态变量:class worker 职工信息管理系统系统主菜单主菜单的各个按钮与程序相连接添加函数保存函数修改函数删除函数排序函数查找函数显示函数对添加的职工信息保存修改职工信 息删除职工信 息对薪水排序按提示查找显示职工信 息保存数据到库中名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 41 页 -4 public:worker()void show();/职工信息显示worker()friend class WorkerList;private:string num,name,sex,edu,address,tel;int age,salary;class WorkerList private:worker wN;int NUM;/用来计算职工数目int count;/用来暂时记录当前操作第几个职工public:void add();/职工信息录入void sort();/职工信息排序void search();/职工信息查找void dele();/职工信息删除void modify();/职工信息修改void save();/职工信息以文件形式保存void showworker();/显示职工信息在屏幕上WorkerList()NUM=0;count=0;名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 41 页 -5 3.2 各功能模块的实现(1)职工信息添加函数:职工的信息首先是按照工号来输入的,在输入的同时先与已经存在的信息进行比较,如果输入的工号已经存在,则需要重新输入,如果还没有存在,则依次出入职工的工号,姓名,性别,学历,年龄,工资,地址和电话,其实现代码如下:for(int i=0;iNUM;i+)while(num=wi.num)cout此职工编号已存在,请重新输入:endl;coutnum;wNUM.num=num;coutwNUM.name;coutwNUM.sex;coutwNUM.edu;coutwNUM.age;coutwNUM.salary;coutwNUM.address;coutwNUM.tel;+NUM;count=NUM;(2)职工信息显示函数:进入主菜单之后,通过输入选择项,程序的 show()成员函数会直接调用已经存储的职工的信息,直接把所有的职工信息都显示出来,其主要的代码如下:void worker:show()/职工信息显示函数实现 cout工号:numendl;cout姓名:nameendl;名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 41 页 -6 cout性别:sexendl;cout学历:eduendl;cout年龄:ageendl;cout工资:salaryendl;cout地址:addressendl;cout电话:telendl;coutendl;(3)职工信息修改函数:进入这一模块功能之后,程序是已经定义按照工号来修改,先输入你需要修改的工号,查找你输入的工号的职工信息是否已经存储,否,则需要重新输入,是的话,进入一个子菜单,选择你需要修改的选项,选择某一项之后,在进行你需要修改的内容,只后在直接保存职工的信息,最后在确认你是否返回主菜单,其主要代码如下:cout*endl;cout*1.修改工号*endl;cout*2.修改姓名*endl;cout*3.修改性别*endl;cout*4.修改学历*endl;cout*5.修改年龄*endl;cout*6.修改工资*endl;cout*7.修改地址*endl;cout*8.修改电话*endl;cout*0.返回主菜单*endl;cout*endl;while(i38)cout输入有误,请重新输入:i3;switch(i3)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 41 页 -7 case 1:coutwk.num;cout修改信息已保存,现返回主菜单:endl;menu();break;case 2:coutwk.name;cout修改信息已保存,现返回主菜单:endl;menu();break;case 3:coutwk.sex;cout修改信息已保存,现返回主菜单:endl;menu();break;case 4:coutwk.edu;cout修改信息已保存,现返回主菜单:endl;menu();break;case 5:coutwk.age;cout修改信息已保存,现返回主菜单:endl;menu();break;case 6:coutwk.salary;cout修改信息已保存,现返回主菜单:endl;menu();break;case 7:coutwk.address;cout修改信息已保存,现返回主菜单:endl;menu();break;case 8:coutwk.tel;cout修改信息已保存,现返回主菜单:endl;(4)职工信息查询函数:进入查找功能模块之后,会有一个子菜单,你会选择一个查找方式,按工号,姓名查找,通过你输入的工号或者姓名用一个for()循环来比较已经存储的职工信息,正确,则会输出你这一工号或者姓名的职工的所有信息;如果是按学历查询,则有一点不同,在已经存储的职工信息中有很多的学历是相同的,这样,在出入的时候,就会输出所有相同学历的职工的信息,其主要的代码如下:if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;else cout*endl;cout*请选择查找方式:*endl;cout*1.按工号查找*endl;cout*2.按姓名查找*endl;cout*3.按学历查找*endl;cout*0.返回主菜单*endl;cout*endl;cout请输入要查询的职工的工号:endl;for(;jcount;j+)if(num2=wj.num)flag=0;k=j;cout查询的职工信息如下:endl;cout 工号:wk.numendl;名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 41 页 -9 cout 姓名:wk.nameendl;cout 性别:wk.sexendl;cout 学历:wk.eduendl;cout 年龄:wk.ageendl;cout 工资:wk.salaryendl;cout 地址:wk.addressendl;cout 电话:wk.telendl;cout请输入要查询的职工的姓名:name2;int j2=0,k2;int flag2=1;while(flag2)for(;j2count;j2+)if(name2=wj2.name)flag2=0;k2=j2;cout查询的职工信息如下:endl;cout 工号:wk2.numendl;cout 姓名:wk2.nameendl;cout 性别:wk2.sexendl;cout 学历:wk2.eduendl;cout 年龄:wk2.ageendl;cout 工资:wk2.salaryendl;cout 地址:wk2.addressendl;cout 电话:wk2.telendl;break;cout请输入要查询的职工的学历:edu2;int j4=0,k4;int flag4=1;while(flag4)for(;j4count;j4+)名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 41 页 -10 if(edu2=wj4.edu)flag4=0;k4=j4;cout查询的职工信息如下:endl;cout 工号:wk4.numendl;cout 姓名:wk4.nameendl;cout 性别:wk4.sexendl;cout 学历:wk4.eduendl;cout 年龄:wk4.ageendl;cout 工资:wk4.salaryendl;cout 地址:wk4.addressendl;cout 电话:wk4.telendl;break;(5)职工信息排序函数:在程序中的排序这一个功能模块之中,有一个子菜单的选择项,排序的方式是通过工资的多少来升序或者降序排列。排序的的方法是用的冒泡排序,将所有已经存储的职工的工资的多少用冒泡的方法来排序,冒泡法:有 N 个职工的工资,则需要两个for()循环,外循环有N-1 次,最后一个职工的工资不用排序就已经出来,内循环,在第J 个则它需要循环的次数为N-J-1 次。其主要的程序如下:cout*endl;cout*请选择排序方式:*endl;cout*1.按工资排序(升序)*endl;cout*2.按工资排序(降序)*endl;cout*0.返回主菜单*endl;cout*endl;coutendl;cout请选择数字编号02i5;while(i52)cout输入有误,请重新输入:i5;if(i5=1)for(int i=0;icount-1;i+)for(int j=0;jwj+1.salary)worker temp;temp=wj;wj=wj+1;wj+1=temp;else if(i5=2)for(int i=0;icount-1;i+)for(int j=0;jcount-i-1;j+)if(wj.salarywj+1.salary)worker temp;temp=wj;wj=wj+1;wj+1=temp;(6)职工信息删除函数:在程序中删除模块的功能,程序已经定义是按照工号来删除职工的信息,先比较你输入的工号的职工信息是否已经存储,否,则需要重新输入;是,通过一个判断你是否真的需要删除这一职工的信息,删除职工信息的方法是将后一个职工的信息区覆盖前一个职工的信息来达到删除的功能,其主要代码如下:cout请输入需要删除信息职工的工号:num3;int j=0,k;int flag=1;名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 41 页 -12 while(flag)for(;jcount;j+)if(num3=wj.num)flag=0;k=j;break;if(flag)cout不存在此员工,请重新输入:num3;cout确认删除请输入Y,返回主菜单请输入N p;while(1)if(p=y|p=Y)cout员工信息已删除!endl;for(int i=0;icount;i+)if(wi.num=num3)int j=i;for(;j=count-1;j+)wj=wj+1;count-;break;else if(p=n|p=N)menu();else 名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 41 页 -13 coutp;4 调试分析及设计体会4.1 调试运行的结果(1)添加函数:运行程序之后,进入主菜单,通过选择项进入添加职工信息的功能模块,按照提示输入职工的工号,姓名,性别,学历,年龄,工资,地址和电话,一次输入之后再保存职工的信息,输入三次,得到如图4.1 所示。图 4.1 添加职工图(2)修改函数:再主菜单通过选择项进入修改职工功能模块,输入你要修改职工信息的工号,你输入的工号在存储的信息之中,进入一个子菜单,选择你要修改的的内容如图,选择修改工号为 3 的职工的姓名,通过修改后的职工信息如图 4.2 所示。图 4.2 按工号修改图(3)删除函数:进入主菜单通过选择项,在删除功能模块中系统提示你要删除的职工信息,你输入职工工号,如果在已经存储的文件中,则会让你再次确认是否删除该职工的信息,如图4.3 是删除职工工号为2 的的职工信息,它的结名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 41 页 -14 果如图 4.3 所示。图 4.3 按工号删除职工图(4)排序函数:在排序功能中,有一个子菜单,选择你是升序还是降序排列,图 4.4,是按照升序选择项进行升序排列得到的结果,工资选择升序排列之后的结果如图 4.4 所示。图 4.4 按工资升序图(5)查找函数:在查找功能模块之中有按工号,姓名,学历三种查询方式查询,图 4.5 通过工号查询,输入工号3 之后,继续运行程序,得到的结果如图4.5 所示。图 4.5 按工号查找职工图名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 41 页 -15 4.2 程序调试中的问题(1)语句的最后忘记了加上“;”,使程序发生错误;(2)有时会多打一个“”或者少打一个“”;(3)考虑问题不全面,有漏洞,进行了多次完善。5 心得体会在为期两周的课程设计中,我学会了很多东西。将课堂上学会的理论知识运用到实际生活中去,使我把知识掌握的更加的牢固,与此同时也提高了动手实践能力。C+的课程设计让我知道了面向对象编程的优点,以及给我们带来的便利性。整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识;设计增强了我们用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。最重要的还是激发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序,让我对编程更加热爱了。名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 41 页 -16 6 附录6.1 源代码#include#includestring#include#include#include#define N 100/N 作为最大职工总数int f=0;/f 作为开关using namespace std;string p;/p 作为接收菜单选项的字符串void menu();/显示菜单class worker public:worker()void show();/职工信息显示worker()friend class WorkerList;private:string num,name,sex,edu,address,tel;int age,salary;class WorkerList private:名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 41 页 -17 worker wN;int NUM;/用来计算职工数目int count;/用来暂时记录当前操作第几个职工public:void add();/职工信息录入void sort();/职工信息排序void search();/职工信息查找void dele();/职工信息删除void modify();/职工信息修改void save();/职工信息以文件形式保存void showworker();/显示职工信息在屏幕上WorkerList()NUM=0;count=0;void menu()/显示菜单 coutendl;cout*endl;cout*endl;cout*职工信息管理系统主菜单*endl;cout*endl;cout*1.职工信息添加*endl;cout*2.职工信息修改*endl;cout*3.职工信息删除*endl;cout*4.职工信息排序*endl;cout*5.职工信息查找*endl;cout*6.职工信息显示*endl;cout*7.职工信息保存*endl;cout*0.退出*endl;名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 41 页 -18 cout*endl;cout*endl;coutendl;void domain()/主菜单函数实现 WorkerList wl;while(1)system(cls);menu();cout请选择数字编号07i1;while(!(i1=0&i1=7)cout输入有误,请重新输入:i1;switch(i1)case 1:wl.add();break;case 2:wl.modify();break;case 3:wl.dele();break;case 4:wl.sort();break;case 5:wl.search();break;case 6:wl.showworker();break;case 7:wl.save();break;case 0:cout系统退出!endl;exit(0);default:名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 41 页 -19 break;cout是否返回主菜单?Y/Np;if(p=n|p=N)cout系统退出!endl;exit(0);void WorkerList:add()/职工信息添加函数实现 cout请输入职工信息:endl;coutnum;for(int i=0;iNUM;i+)while(num=wi.num)cout此职工编号已存在,请重新输入:endl;coutnum;wNUM.num=num;coutwNUM.name;coutwNUM.sex;coutwNUM.edu;coutwNUM.age;coutwNUM.salary;名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 41 页 -20 coutwNUM.address;coutwNUM.tel;+NUM;count=NUM;void worker:show()/职工信息显示函数实现 cout工号:numendl;cout姓名:nameendl;cout性别:sexendl;cout学历:eduendl;cout年龄:ageendl;cout工资:salaryendl;cout地址:addressendl;cout电话:telendl;coutendl;void WorkerList:modify()/职工信息修改函数实现 if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();cout请输入需要修改信息职工的工号:num1;int j=0,k;int flag=1;while(flag)名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 41 页 -21 for(;jcount;j+)if(num1=wj.num)flag=0;k=j;break;if(flag)cout不存在此员工,请重新输入:num1;cout你选择的职工的信息为:endl;cout 工号:wk.numendl;cout 姓名:wk.nameendl;cout 性别:wk.sexendl;cout 学历:wk.eduendl;cout 年龄:wk.ageendl;cout 工资:wk.salaryendl;cout 地址:wk.addressendl;cout 电话:wk.telendl;coutendl;cout*endl;cout*1.修改工号*endl;cout*2.修改姓名*endl;cout*3.修改性别*endl;名师资料总结-精品资料欢迎下载-名师精心整理-第 26 页,共 41 页 -22 cout*4.修改学历*endl;cout*5.修改年龄*endl;cout*6.修改工资*endl;cout*7.修改地址*endl;cout*8.修改电话*endl;cout*0.返回主菜单*endl;cout*endl;coutendl;cout请选择数字编号08i3;while(i38)cout输入有误,请重新输入:i3;switch(i3)case 1:coutwk.num;cout修改信息已保存,现返回主菜单:endl;menu();break;case 2:coutwk.name;cout修改信息已保存,现返回主菜单:endl;menu();break;case 3:coutwk.sex;cout修改信息已保存,现返回主菜单:endl;menu();名师资料总结-精品资料欢迎下载-名师精心整理-第 27 页,共 41 页 -23 break;case 4:coutwk.edu;cout修改信息已保存,现返回主菜单:endl;menu();break;case 5:coutwk.age;cout修改信息已保存,现返回主菜单:endl;menu();break;case 6:coutwk.salary;cout修改信息已保存,现返回主菜单:endl;menu();break;case 7:coutwk.address;cout修改信息已保存,现返回主菜单:endl;menu();break;case 8:coutwk.tel;cout修改信息已保存,现返回主菜单:endl;menu();break;case 0:menu();default:break;名师资料总结-精品资料欢迎下载-名师精心整理-第 28 页,共 41 页 -24 void WorkerList:showworker()/职工信息显示函数实现 if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();else cout已保存的职工信息如下:endl;for(int i=0;icount;i+)cout*endl;cout 工号:wi.numendl;cout 姓名:wi.nameendl;cout 性别:wi.sexendl;cout学历:wi.eduendl;cout 年龄:wi.ageendl;cout 工资:wi.salaryendl;cout 地址:wi.addressendl;cout 电话:wi.telendl;cout*endl;void WorkerList:search()/职工信息查询函数实现 if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();名师资料总结-精品资料欢迎下载-名师精心整理-第 29 页,共 41 页 -25 else cout*endl;cout*请选择查找方式:*endl;cout*1.按工号查找*endl;cout*2.按姓名查找*endl;cout*3.按学历查找*endl;cout*0.返回主菜单*endl;cout*endl;coutendl;cout请选择数字编号03i4;while(i43)cout输入有误,请重新输入:i4;if(i4=1)string num2;cout请输入要查询的职工的工号:num2;int j=0,k;int flag=1;while(flag)for(;jcount;j+)if(num2=wj.num)名师资料总结-精品资料欢迎下载-名师精心整理-第 30 页,共 41 页 -26 flag=0;k=j;cout查询的职工信息如下:endl;cout 工号:wk.numendl;cout 姓名:wk.nameendl;cout 性别:wk.sexendl;cout 学历:wk.eduendl;cout 年龄:wk.ageendl;cout 工资:wk.salaryendl;cout 地址:wk.addressendl;cout 电话:wk.telendl;break;if(flag)flag=0;cout不存在此职工!n 返回主菜单 endl;break;else if(i4=2)string name2;cout请输入要查询的职工的姓名:name2;int j2=0,k2;int flag2=1;while(flag2)名师资料总结-精品资料欢迎下载-名师精心整理-第 31 页,共 41 页 -27 for(;j2count;j2+)if(name2=wj2.name)flag2=0;k2=j2;cout查询的职工信息如下:endl;cout 工号:wk2.numendl;cout 姓名:wk2.nameendl;cout 性别:wk2.sexendl;cout 学历:wk2.eduendl;cout 年龄:wk2.ageendl;cout 工资:wk2.salaryendl;cout 地址:wk2.addressendl;cout 电话:wk2.telendl;break;if(flag2)flag2=0;cout不存在此职工!n 返回主菜单 endl;break;else if(i4=3)string edu2;cout请输入要查询的职工的学历:edu2;int j4=0,k4;int flag4=1;while(flag4)for(;j4count;j4+)if(edu2=wj4.edu)flag4=0;k4=j4;cout查询的职工信息如下:endl;cout 工号:wk4.numendl;cout 姓名:wk4.nameendl;cout 性别:wk4.sexendl;cout 学历:wk4.eduendl;cout 年龄:wk4.ageendl;cout 工资:wk4.salaryendl;cout 地址:wk4.addressendl;cout 电话:wk4.telendl;break;if(flag4)flag4=0;cout不存在此职工!n 返回主菜单 endl;break;名师资料总结-精品资料欢迎下载-名师精心整理-第 33 页,共 41 页 -29 else if(i4=0)menu();void WorkerList:sort()/职工信息排序功能实现 if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();else cout*endl;cout*请选择排序方式:*endl;cout*1.按工资排序(升序)*endl;cout*2.按工资排序(降序)*endl;cout*0.返回主菜单*endl;cout*endl;coutendl;cout请选择数字编号02i5;while(i52)cout输入有误,请重新输入:i5;if(i5=1)for(int i=0;icount-1;i+)for(int j=0;jwj+1.salary)名师资料总结-精品资料欢迎下载-名师精心整理-第 34 页,共 41 页 -30 worker temp;temp=wj;wj=wj+1;wj+1=temp;cout按工资升序后的信息如下:endl;for(i=0;icount;i+)cout*endl;cout 工号:wi.numendl;cout 姓名:wi.nameendl;cout 性别:wi.sexendl;cout 学历:wi.eduendl;cout 年龄:wi.ageendl;cout 工资:wi.salaryendl;cout 地址:wi.addressendl;cout 电话:wi.telendl;cout*endl;else if(i5=2)for(int i=0;icount-1;i+)for(int j=0;jcount-i-1;j+)if(wj.salarywj+1.salary)worker temp;temp=wj;wj=wj+1;wj+1=temp;名师资料总结-精品资料欢迎下载-名师精心整理-第 35 页,共 41 页 -31 cout按工资降序后的信息如下:endl;for(i=0;icount;i+)cout*endl;cout 工号:wi.numendl;cout 姓名:wi.nameendl;cout 性别:wi.sexendl;cout 学历:wi.eduendl;cout 年龄:wi.ageendl;cout 工资:wi.salaryendl;cout 地址:wi.addressendl;cout 电话:wi.telendl;cout*endl;else if(i5=0)menu();void WorkerList:dele()/职工信息删除函数实现 if(NUM=0)cout 没有职工信息存入,系统将返回主菜单endl;menu();cout请输入需要删除信息职工的工号:num3;int j=0,k;int flag=1;while(flag)名师资料总结-精品资料欢迎下载-名师精心整理-第 36 页,共 41 页 -32 for(;jcount;j+)if(num3=wj.num)flag=0;k=j;break;if(flag)cout不存在此员工,请重新输入:num3;cout你选择的职工的信息为:endl;cout 工号:wk.numendl;cout 姓名:wk.nameendl;cout 性别:wk.sexendl;cout 学历:wk.eduendl;cout 年龄:wk.ageendl;cout 工资:wk.salaryendl;cout 地址:wk.addressendl;cout 电话:wk.telendl;coutendl;cout确认删除请输入Y,返回主菜单请输入N p;while(1)名师资料总结-精品资料欢迎下载-名师精心整理-第 37 页,共 41 页 -33 if(p=y|p=Y)cout员工信息已删除!endl;for(int i=0;icount;i+)if(wi.num=num3)int j=i;for(;j=count-1;j+)wj=wj+1;count-;break;else if(p=n|p=N)menu();else coutp;void WorkerList:save()/职工信息保存函数实现 if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();else 名师资料总结-精品资料欢迎下载-名师精心整理-第 38 页,共 41 页 -34 ofstream fout;fout.open(D:worker.txt,ios:out);cout文件正在保存.请稍候!endl;cout数据保存成功!endl;fout已保存员工信息如下:endl;for(int i=0;icount;i+)cout*endl;cout 工号:wi.numendl;cout 姓名:wi.nameendl;cout 性别:wi.sexendl;cout 学历:wi.eduendl;cout 年龄:wi.ageendl;cout 工资:wi.salaryendl;cout 地址:wi.addressendl;cout 电话:wi.telendl;cout*endl;cout系统返回主菜单:endl;menu();fout.close();int main()domain();return 0;名师资料总结-精品资料欢迎下载-名师精心整理-第 39 页,共