目录1 系统需求分析.............................................................................................................. 错误!未指定书签。
2 总体设计...................................................................................................................... 错误!未指定书签。
3 详细设计及实现.......................................................................................................... 错误!未指定书签。
4 系统调试...................................................................................................................... 错误!未指定书签。
5 结论 (73)6心得体会...................................................................................................................... 错误!未指定书签。
7参考书目. (75)1 系统需求分析1.1系统设计的目的与意义:现在的公司人员数量及职位种类较多,各样的人事管理活动也比较频繁,因此需要设计一个公司人员信息管理系统来对公司员工信息进行管理。
1.2系统功能需求:本系统有五个类:基类、派生类:、、、,储存经理、技术人员、销售人员、销售经理信息。
(1)添加功能程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。
(2)查询功能可根据编号、姓名等信息对已添加的记录进行查询。
如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能可显示当前系统中所有记录。
(4)修改功能可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能对已添加的人员记录进行删除。
如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。
(6)统计功能能根据多种参数进行人员的统计。
例如:统计四类人员数量以及总数,统计男、女员工的数量,统计平均工资、最高工资、最低工资等。
(7)保存功能将当前系统中各类人员记录存入文件中。
(8)读取功能将保存在文件中的人员信息读入到当前系统中,以供用户使用。
2 总体设计2.1 系统功能分析:系统通过调用函数来实现信息添加、信息查询、信息显示、信息修改、信息删除、以及数据读取保存文件等功能。
()函数用于录入信息;()函数用来查询信息;()函数用来显示信息;()函数用来修改信息;()函数用来删除信息;()函数用来统计信息()函数用于将文件中的数据读取到内存中;()函数用于将内存中的信息存入文件内;主函数()用于调用这些函数。
2.2系统功能模块划分与设计:系统定义了类、类、类、类这四个类,定义了()、()、()、()、()、()、()、()、()、()等函数来实现系统所需功能。
2.3 系统功能模块图:(1)类(抽象类)的设计图 3.1 类(2)经理类的设计图 3.2经理类(3)技术人员类的设计图3.3技术人员类(4)销售人员类的设计图3.4 销售人员类(5)成绩类的设计图3.5销售经理类(6)各个类的关系描述<>;{:();();()=0;()=0;()=0;()=0;()=0;()=0;()=0;()=0;()=0;()=0;:;;;;;;};3.2经理类的实现"":{:();();();();();();();();();();();();};""""<><><><>;100;M[];1=0;(){}(){}(){<<"输入编号:"<<;>>;<<"输入姓名:"<<;>>;<<"输入性别:"<<;>>;<<"输入部门:"<<;>>;<<"输入级别:"<<;>>;<<"输入固定月薪:"<<;>>;}(){ <<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<; }(){1=0;("");("经理");(){<<"打开失败!"<<;;}0;(>>M[i]>>M[i]>>M[i]>>M[i]>>M[i]>>M[i]){;1;}();}(){("经理");(){<<"打开失败!"<<;;}i;(0<1){<<M[i]<<"\t"<<M[i]<<"\t"<<M[i]<<"\t"<<M[i]<<"\t"<<M[i]<<"\t"<<M[i]<<;}<<"保存成功!"<<;();}(){("");();(1>){<<"人员已满"<<;;}<<"输入要添加的编号:"<<;n;>>n;( 0<1)([i]){<<"该编号的人员已存在"<<;;}m;<<"请再次输入新添加人员的信息"<<;();<<"是否确认添加?1、是2、否"<<;a;>>a;(1){M[1];11+1;();}{<<"放弃添加"<<;;}}(){("");();(10){<<"当前系统没有储存记录!"<<;;};<<"请选择查找方式:1、按编号查找2、按姓名查找0、退出"<<;>>;(){1:{<<"请输入要查找的编号:"<<;;>>;( 0<1){(M[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;M[i]();;}}<<"查无此人!"<<;};2:{<<"请输入要查找的姓名"<<;;>>;( 0<1){(M[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;M[i]();}}<<"查无此人!"<<;};0;<<"输入错误!请输入0~3的数字"<<("")();}}(){("");();(10){<<"无数据!"<<;;}<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;( 0<1)M[i]();}(){("");();(10){<<"当前系统没有储存记录"<<;;};<<"请输入要修改的经理编号:"<<;>>;( 0<1){(M[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;M[i]();<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别"<<;<<" 5、修改部门6、修改级别7、修改月薪"<<;<<" 0、退出修改"<<;;>>;(){1:{<<"输入修改后的编号:"<<;n;>>n;( 0<1)([j]){<<"该编号的人员已存在"<<;;}<<"输入修改后的姓名:"<<;;>>;<<"输入修改后的性别:"<<;s;>>s;<<"输入修改后的部门:"<<;d;>>d;<<"输入修改后的级别:"<<;r;>>r;<<"输入修改后的月薪:"<<;;>>;<<"是否确认修改?1、是2、否"<<;a;>>a;(1){M[i];M[i];M[i];M[i];M[i];M[i];}{<<"放弃修改"<<;;}();};2:{<<"请输入修改后的编号"<<;n;>>n;( 0<1)([i]){<<"该编号的人员已存在"<<;;}<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};3:{<<"请输入修改后的姓名"<<;;>>;M[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};4:{<<"请输入修改后的性别"<<;s;>>s;M[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};5:{<<"请输入修改后的部门"<<;d;>>d;M[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};6:{<<"请输入修改后级别"<<;r;>>r;M[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};7:{<<"请输入修改后的月薪"<<;;>>;M[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)M[i];{<<"放弃修改"<<;;}();};0<<"退出修改"<<;<<"无此选项!请输入0~7的数字"<<("");}<<"修改完成"<<;;}}<<"查无此人"<<;}(){("");();(10){<<"当前系统没有储存记录"<<;;};<<"请删除查找方式:1、按编号删除2、按姓名删除0、退出"<<;>>;(){1:{<<"请输入所要删除人员的编号:"<<;;>>;( 0<1){(M[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;M[i]();<<"是否确认删除?1、是2、否"<<;;>>;(){1:{( <1)M[j][1];<<"删除成功!"<<;11-1;}();2;<<"没有此选项!"<<;};}}<<"无此人!"<<;}("")();2:{<<"请输入所要删除人员的姓名:"<<;;>>;( 0<1){(M[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月薪"<<;M[i]();<<"是否确认删除?1、是2、否"<<;;>>;(){1:{( <1)M[j][1];<<"删除成功!"<<;11-1;}();2;<<"没有此选项!"<<;}}};<<"无此人!"<<;};0;<<"输入错误!请输入0~3的数字"<<("")();}();}(){("");();;<<"1、人数统计2、性别统计3、平均工资4、最高工资5、最低工资0、退出"<<;<<"请输入所要执行的编号:"<<;>>;(){1<<"经理的人数为:"<<1<<("")();2:{00;"男";"女";( 0<1){(M[i]);(M[i]);}<<"男性人数:"<<a<<;<<"女性人数:"<<b<<;}("")();3:{0;0;( 0<1){[i];}1;<<"平均工资:"<<;}("")();4:{0;( 0<1-1){(M[i]>M[1]){[i];M[1];}[1];}<<"最高工资:"<<;}("")();5:{0;( 0<1-1){(M[i]<M[1]){[i];M[1];}[1];}<<"最低工资:"<<;}("")();0;: <<"无此选项!请输入0~5的数字"<<("")();}}3.3技术人员类的实现"":{:();();();();();();();();();();();();:;;};""""<><><><>;100;T[];2=0;(){}(){}(){<<"请输入输入编号:"<<;>>;<<"请输入输入姓名:"<<;>>;<<"请输入输入性别:"<<;>>;<<"请输入输入部门:"<<;>>;<<"请输入输入级别:"<<;>>;<<"请输入输入工时:"<<;>>;<<"请输入输入时薪:"<<;>>;*;}(){ <<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<; }(){2=0;("");("技术人员");(){<<"打开失败!"<<;;}0;(>>T[i]>>T[i]>>T[i]>>T[i]>>T[i]>>T[i]>>T[i]>>T[i]){;2;}();}(){("技术人员");(){<<"打开失败!"<<;;}i;(0<2){<<T[i]<<"\t"<<T[i]<<"\t"<<T[i]<<"\t"<<T[i]<<"\t"<<T[i]<<"\t"<<T[i]<<"\t"<<T [i]<<"\t"<<T[i]<<;}<<"保存成功!"<<;();}(){("");();(2>){<<"人员已满"<<;;}<<"输入要添加的编号:"<<;n;>>n;( 0<2)([i]){<<"该编号的人员已存在"<<;;}t;<<"请再次输入新添加人员的信息"<<;();<<"是否确认添加?1、是2、否"<<;a;>>a;(1){T[2];22+1;();}{<<"放弃添加"<<;;}}(){("");();(20){<<"当前系统没有储存记录!"<<;;};<<"请选择查找方式:1、按编号查找2、按姓名查找0、退出"<<;>>;(){1:{<<"请输入要查找的编号:"<<;;>>;( 0<2){(T[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;T[i]();;}}<<"查无此人!"<<;};2:{<<"请输入要查找的姓名"<<;;>>;( 0<2){(T[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;T[i]();;}}<<"查无此人!"<<;};0;<<"输入错误!请输入0~3的数字"<<("")();}}(){("");();(20){<<"无数据!"<<;;}<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;( 0<2)T[i]();}(){("");();(20){<<"当前系统没有储存记录"<<;;};<<"请输入要修改的技术人员编号:"<<;>>;( 0<2){(T[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;T[i]();<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别"<<;<<" 5、修改部门6、修改级别7、修改工时8、修改时薪"<<;<<" 0、退出修改"<<;;>>;(){1:{<<"输入修改后的编号:"<<;n;>>n;( 0<2)([j]){<<"该编号的人员已存在"<<;;}<<"输入修改后的姓名:"<<;;>>;<<"输入修改后的性别:"<<;s;>>s;<<"输入修改后的部门:"<<;d;>>d;<<"输入修改后的级别:"<<;r;>>r;<<"输入修改后的工时:"<<;;>>;<<"输入修改后的工时:"<<;;>>;<<"是否确认修改?1、是2、否"<<;a;>>a;(1){T[i];T[i];T[i];T[i];T[i];T[i];T[i];T[i]*;}{<<"放弃修改"<<;;}();};2:{<<"请输入修改后的编号"<<;n;>>n;( 0<2)([i]){<<"该编号的人员已存在"<<;;}<<"是否确认修改?1、是2、否"<<;a;>>a;(1)T[i];{<<"放弃修改"<<;;}();};3:{<<"请输入修改后的姓名"<<;;>>;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)T[i];{<<"放弃修改"<<;;}();};4:{<<"请输入修改后的性别"<<;s;>>s;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)T[i];{<<"放弃修改"<<;}();};5:{<<"请输入修改后的部门"<<;d;>>d;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)T[i];{<<"放弃修改"<<;;}();};6:{<<"请输入修改后级别"<<;r;>>r;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)T[i];{<<"放弃修改"<<;;}();};7:{<<"请输入修改后的工时"<<;;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1){T[i];T[i][i]*;}{<<"放弃修改"<<;;}();};8:{<<"请输入修改后的时薪"<<;;>>;T[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1){T[i];T[i][i]*;}{<<"放弃修改"<<;;}();};0<<"退出修改"<<;<<"无此选项!请输入0~8的数字"<<("");}<<"修改完成"<<;;}}<<"查无此人"<<;}(){("");();(20){<<"当前系统没有储存记录"<<;;};<<"请删除查找方式:1、按编号删除2、按姓名删除0、退出"<<;>>;(){1:{<<"请输入所要删除人员的编号:"<<;;>>;( 0<2){(T[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;T[i]();<<"是否确认删除?1、是2、否"<<;;>>;(){1:{( <2)T[j][1];<<"删除成功!"<<;22-1;}();2;<<"没有此选项!"<<;};}}<<"无此人!"<<;}("")();2:{<<"请输入所要删除人员的姓名:"<<;;>>;( 0<2){(T[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<;T[i]();<<"是否确认删除?1、是2、否"<<;;>>;(){1:{( <2)T[j][1];<<"删除成功!"<<;22-1;}();2;<<"没有此选项!"<<;}}};<<"无此人!"<<;}("")();0;<<"输入错误!请输入0~3的数字"<<("")();}();}(){("");();;<<"1、人数统计2、性别统计3、平均工资4、最高工资5、最低工资0、退出"<<;<<"请输入所要执行的编号:"<<;>>;(){1<<"技术人员的人数为:"<<2<<("")();2:{00;"男";"女";( 0<2){(T[i]);(T[i]);}<<"男性人数:"<<a<<;<<"女性人数:"<<b<<;}("")();3:{0;0;( 0<2){[i];}2;<<"平均工资:"<<;}("")();4:{0;( 0<2-1){(T[i]>T[1]){[i];T[1];}[1];}<<"最高工资:"<<;}("")();5:{0;( 0<2-1){(T[i]<T[1]){[i];T[1];}[1];}<<"最低工资:"<<;}("")();0;: <<"无此选项!请输入0~5的数字"<<("")();}}3.4销售人员类的实现"":{:();();();();();();();();();();();();:;;};""""<><><><>;100;S[];3=0;(){}(){}(){<<"输入编号:"<<;>>;<<"输入姓名:"<<;>>;<<"输入性别:"<<;>>;<<"输入部门:"<<;>>;<<"输入级别:"<<;>>;<<"请输入输入其当月销售额:"<<; >>;<<"请以小数形式输入提成率:"<<; >>;*;}(){<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<"\t"<<<<" "<<<<" "<<<<;}(){3=0;("");("销售人员");(){<<"打开失败!"<<;;}0;(>>S[i]>>S[i]>>S[i]>>S[i]>>S[i]>>S[i]>>S[i]>>S[i]){;3;}();}(){("销售人员");(){<<"打开失败!"<<;;}i;(0<3){<<S[i]<<"\t"<<S[i]<<"\t"<<S[i]<<"\t"<<S[i]<<"\t"<<S[i]<<"\t"<<S[i]<<"\t"<<S[ i]<<"\t"<<S[i]<<;}<<"保存成功!"<<;}(){("");();(3>){<<"人员已满"<<;;}<<"输入要添加的编号:"<<;n;>>n;( 0<3)([i]){<<"该编号的人员已存在"<<;;}s;<<"请再次输入新添加人员的信息"<<;();<<"是否确认添加?1、是2、否"<<;a;>>a;(1){S[3];33+1;();}{<<"放弃添加"<<;;}}(){("");();{<<"当前系统没有储存记录!"<<;;};<<"请选择查找方式:1、按编号查找2、按姓名查找0、退出"<<;>>;(){1:{<<"请输入要查找的编号:"<<;;>>;( 0<3){(S[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月销售额"<<" "<<"提成率"<<" "<<"月薪"<<;S[i]();}}<<"查无此人!"<<;};2:{<<"请输入要查找的姓名"<<;;>>;( 0<3){(S[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月销售额"<<" "<<"提成率"<<" "<<"月薪"<<;S[i]();;}}<<"查无此人!"<<;};0;<<"输入错误!请输入0~3的数字"<<("")();}}(){("");();(30){<<"无数据!"<<;;}<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月销售额"<<" "<<"提成率"<<" "<<"月薪"<<;( 0<3)S[i]();}(){("");();(30){<<"当前系统没有储存记录"<<;;};<<"请输入要修改的经理编号:"<<;>>;( 0<3){(S[i]){<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"级别"<<"\t"<<"月销售额"<<" "<<"提成率"<<" "<<"月薪"<<;S[i]();<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别"<<;<<" 5、修改部门6、修改级别7、修改月销售额8、修改提成率"<<;<<" 0、退出修改"<<;;>>;(){1:{<<"输入修改后的编号:"<<;n;>>n;( 0<3)([j]){<<"该编号的人员已存在"<<;;}<<"输入修改后的姓名:"<<;;>>;<<"输入修改后的性别:"<<;s;>>s;<<"输入修改后的部门:"<<;d;>>d;<<"输入修改后的级别:"<<;r;>>r;<<"输入修改后的月销售额:"<<;;>>;<<"输入修改后的提成率:"<<;;>>;<<"是否确认修改?1、是2、否"<<;a;>>a;(1){S[i];S[i];S[i];S[i];S[i];S[i];S[i];S[i]*;}{<<"放弃修改"<<;;}();};2:{<<"请输入修改后的编号"<<;n;>>n;( 0<3)([i]){<<"该编号的人员已存在"<<;;}<<"是否确认修改?1、是2、否"<<;a;>>a;(1)S[i];{<<"放弃修改"<<;;}();};3:{<<"请输入修改后的姓名"<<;;>>;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)S[i];{<<"放弃修改"<<;;}();};4:{<<"请输入修改后的性别"<<;s;>>s;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)S[i];{<<"放弃修改"<<;;}();};5:{<<"请输入修改后的部门"<<;d;>>d;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)S[i];{<<"放弃修改"<<;;}();};6:{<<"请输入修改后级别"<<;r;>>r;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1)S[i];{<<"放弃修改"<<;;}();};7:{<<"请输入修改后的月销售额"<<;;>>;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1){S[i];S[i][i]*;}{<<"放弃修改"<<;;}();};8:{<<"请输入修改后的提成率"<<;;>>;S[i];<<"是否确认修改?1、是2、否"<<;a;>>a;(1){S[i];S[i][i]*;}{<<"放弃修改"<<;;}();};0<<"退出修改"<<;<<"无此选项!请输入0~8的数字"<<("");}<<"修改完成"<<;;}}<<"查无此人"<<;}(){("");();(30){<<"当前系统没有储存记录"<<;;};<<"请删除查找方式:1、按编号删除2、按姓名删除0、退出"<<;>>;(){1:{<<"请输入所要删除人员的编号:"<<;;。