小组成员:杨飞谷丽刘志臻万祥龙设计思路推销员(调出类的处理过程)处理6.总控程序5.存入文本人事经理技术人员销售经理2.输入信息4.月薪总额3.输出信息1.分析•整个流程分为三部分:构造类——录入人员信息——各项处理;•构造类:把构造的五个类的的属性,行为列在图中;把它们的关系用带箭头的线连成示意图。包括:人事类,经理类,销售人员类,销售经理类,技术人员类。•将信息保持到文本:用两种方式录入信息;包括:录入人员信息,将信息从文本导出,基本信息的二进制文本(源信息);•各项处理:以“各类人员信息归并入person[]中存储”为中心,将“存入可读文本”,“查找信息”,“修改信息”,“删除信息”,“添加人员信息”,“计算并显示总信息”,“显示所有信息”围绕它扇射出来。归并人员类技术人员类销售管理类销售人员类经理类信息保存到文本存入可读文本查找信息修改信息删除信息添加人员信息显示所有信息计算并显示月薪技术流程•如何根据公司人员共有的信息及相对应的操作处理设置一个person基类。在这个基类的基础上根据公司种类人员的特征相应的派生出manager类sellmanager类salesman类以及skil类。•以上四个类与程序框架的之间的关系,即如何设置相应函数的接口,实现程序能够利用所设类进行各种处理•人员信息的存档与从文档导出人员信息是本系统的关键之一,如何调用相应的文件处理库函数进行文件操作至关重要。•本程序有两种方式将信息放入内存处理,一是直接从键盘输入,二是从文本中导入。而以下的各项处理应该要能兼容处理两种方式输入的信息,因此要为相应的处理函数设置统一接口。技术亮点技术实现上:1.流程图2.继承的充分运用,完全实现代码重用3.模块化思想的体现,函数公共接口的的使用功能方面:所有人员按月薪高低有序输出某一职位人员所有信息中间环节1person.cpp写头文件建立包含五个类的头文件,包括person类,manager类,skill类,salesman类,sell-manger类,本程序的各项处理都基于这五个类来处理;建立handle-class头文件,内含四个函数,分别实现对四类人员信息的设定,调用各个函数;建立all-salary的头文件,实现计算公司所有人员月薪;建立store-info的头文件,实现人员信息的输入;建立显示信息,结构体储存,存入文本,源文件,菜单,归并人员信息,导出源信息,查找,删除信息,修改信息,添加人员,选择处理项的头文件。最后,后用一个主函数,实现调用主菜单函数并显示主菜单以及选择要进行的操作。2、handle_class.h四个函数的功能相同,自是对不同类人员的处理,分别调用各自的成员函数对相应的私有成员的赋值,最后返回人员信息。3、菜单.h用一个main_list函数实现显示主菜单4、存入文本.hP_to_file函数用来实现传入所有人员的信息和人员总数,然后将所有信息到处到磁盘中,存放到文本文件中,以便查看。5、导出源信息.hOut_from_source函数用来实现从已有的存放的人员信息的文本文件中导出信息到内存中,进行处理,导出的信息存放在人事类person数组中,最后返回人员总数。6、归并人员信息.hCollect_info传入已经存在的四类人员(经理,销售经理,销售员,技术人员)的信息及相应的各类人员的人数,将信息归并到一个人事类数组中存放,并统计总人数;7、显示信息.h显示所有人员的信息。8、查找.h在存放所有人员的类数组中,实现按姓名查找人员的操作。9、修改信息.h对存储在类数组p中的人员信息进行修改,先按姓名查找到要修改的人员,再对相应的信息进行修改,最后显示修改后的信息。10、删除人员.h删除类数组中指定的人员信息,最后显示处理后的所有人员的信息11、添加人员.h在原有的人员信息P的基础上添加人员,最后显示处理后的所有人员,n为开始时人员数,返回添加后的人员总数。12、结构体存储.h构造一个结构体类型,用来保存人员的基本信息。将信息同步保存到相应的结构体数组中,以方便存入文本文件中。13、选择项项处理根据主菜单的显示,选择相应的数字编号即进行对应的操作。14、.源信息传入保存有人员信息的结构体数组,将信息以记录的方式以二进制存放到一个文本文件中,该文件不可打开查看,存放的信息只能调用的相应的导出函数,将信息调到内存中以进行处理;15、按月薪排序传入保存有所有人员信息的person类数组,将信息按人员的月薪从高到低排序。在显示信息,输出到文本时都按排好序的人员信息输出16、输出某一职位人员的信息公司中共有四类人员,信息混在一起有时不便查看地,为了方便能够查看某一职位人员的信息设置此功能。从键盘输入某一职位时(manager,sellmanger,salesman,skill),则可显示出该职位下所有人员的信息。功能的实现存储人的姓名、编号、级别、当月薪水;计算月薪总额并显示全部信息;人员编号技术为2000,每输入一个人员信息编号顺序加1;对所有人员提升级别的功;附加:所有人员的初始级别均为1级,然后进行升级,经理升为4级,兼职技术人员和销售经理升为3级,推销员仍为1级。月薪的计算法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销员的月薪按该推销员当月销售额的4%提成;销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的1.5%。测试结果心得体会本次作业是完成设计一个公司的人员信息及月薪管理系统。这是一个近似一个系统的程序,首先要构造哪些类,每个类设置哪些属性,如何设置这些类的接口,设计好要对相应的项进行的处理,这些在编程之前考虑好,并画好方案设计图,将整体思想图纸化。在编程过程中最重要的有两点:第一点是类的继承,先构造一个人事的基类,在此基础上派生出四个职位的类。第二点是使用类数组存储人员信息。在整个编程中考虑最多的是文件的存文本问题,这也是整个程序的关键之一。如何将内存中放在类数组中的人员信息通过各种文件处理函数导出到磁盘文件中保存,以及如何从磁盘文件中将信息调用相应处理函数导入到内存中进行各种处理成为本程序考虑的重点。在做这个作业的过程中也发现了不少不足之处,有对知识理解不深的地方,如表态变量在开始使用时出现了较大问题。还有一点就是如何始终保持编程时整个思路的清析,不致出现混乱而影响工程进度。在整个大作业的实施过程中,小组成员间互相协作,才保证了此项工程的顺利完成。