C公司人员信息标准管理系统专业课程设计方案报告_第1页
C公司人员信息标准管理系统专业课程设计方案报告_第2页
C公司人员信息标准管理系统专业课程设计方案报告_第3页
C公司人员信息标准管理系统专业课程设计方案报告_第4页
C公司人员信息标准管理系统专业课程设计方案报告_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

目录TOC\o"1-1"\u1系统需求分析 32总体设计 43具体设计及实现 74系统调试 695结论 736心得体会 747参考书目 751系统需求分析1.1系统设计目标和意义:现在企业人员数量及职位种类较多,各样人事管理活动也比较频繁,所以需要设计一个企业人员信息管理系统来对企业职员信息进行管理。1.2系统功效需求:本系统有五个类:基类:employee、派生类:manager、technician、salesman、salesmanager,储存经理、技术人员、销售人员、销售经理信息。添加功效程序能够任意添加上述四类人员统计,可提供选择界面供用户选择所要添加人员类别,要求人员编号要唯一,假如添加了反复编号统计时,则提醒用户数据添加反复并取消添加。查询功效可依据编号、姓名等信息对已添加统计进行查询。假如未找到,给出对应提醒信息,假如找到,则显示对应统计信息。显示功效可显示目前系统中全部统计。修改功效可依据查询结果对对应统计进行修改,修改时注意编号唯一性。删除功效对已添加人员统计进行删除。假如目前系统中没有对应人员统计,则提醒“统计为空!”并返回操作;不然输入要删除人员编号或姓名,依据所输入信息删除该人员统计,假如没有找到该人员信息,则提醒对应统计不存在。统计功效能依据多个参数进行人员统计。比如:统计四类人员数量和总数,统计男、女职员数量,统计平均工资、最高工资、最低工资等。保留功效将目前系统中各类人员统计存入文件中。读取功效将保留在文件中人员信息读入到目前系统中,以供用户使用。2总体设计2.1系统功效分析:系统经过调用函数来实现信息添加、信息查询、信息显示、信息修改、信息删除、和数据读取保留文件等功效。add()函数用于录入信息;search()函数用来查询信息;show()函数用来显示信息;alter()函数用来修改信息;del()函数用来删除信息;stat()函数用来统计信息read()函数用于将文件中数据读取到内存中;save()函数用于将内存中信息存入文件内;主函数main()用于调用这些函数。2.2系统功效模块划分和设计:系统定义了manger类、technician类、salesman类、salesmanger类这四个类,定义了add()、search()、show()、alter()、del()、stat()、read()、save()、input()、output()等函数来实现系统所需功效。2.3系统功效模块图:企业人员信息管理系统经理信息管理企业人员信息管理系统经理信息管理技术人员信息管理销售人员信息管理销售经理信息管理经理信息添加经理信息查询经理信息显示经理信息修改经理信息删除经理信息统计技术人员信息添加技术人员信息查询技术人员信息显示技术人员信息修改技术人员信息删除技术人员信息统计销售人员信息添加销售人员信息查询销售人员信息显示销售人员信息修改销售人员信息删除销售人员信息统计销售经理信息添加销售经理信息查询销售经理信息显示销售经理信息修改销售经理信息删除销售经理信息统计2.4类设计employee类(抽象类)设计employeeemployeevirtualvoidadd()=0;virtualvoidsearch()=0;virtualvoidshow()=0;virtualvoidalter()=0;virtualvoiddel()=0;virtualvoidstat()=0;virtualvoidsave()=0;virtualvoidread()=0;virtualvoidinput()=0;virtualvoidoutput()=0;stringnumber; stringname; stringsex; stringdepartment; stringrank; floatsalary;图3.1employee类经理类设计managermanagervoidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput();图3.2经理类(3)技术人员类设计techniciantechnicianvoidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput(); floatwork_time; floattime_salary;图3.3技术人员类(4)销售人员类设计salesmansalesmanvoidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput(); floatsale; floatrate;图3.4销售人员类成绩类设计salesmanagervoidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput(); floatsala;图3.5销售经理类各个类关系描述employeemanagersalesmantechniciansalesmanager3具体设计及实现3.1employee类(抽象类)实现#include<string>usingnamespacestd;classemployee{public: employee(void); ~employee(void); virtualvoidadd()=0; virtualvoidsearch()=0; virtualvoidshow()=0; virtualvoidalter()=0;virtualvoiddel()=0; virtualvoidstat()=0; virtualvoidsave()=0; virtualvoidread()=0; virtualvoidinput()=0; virtualvoidoutput()=0;protected: stringnumber; stringname; stringsex; stringdepartment; stringrank; floatsalary;};3.2经理类实现manager.h#include"employee.h"classmanager: virtualpublicemployee{public: manager(void); ~manager(void); voidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput(); };manager.cpp#include"StdAfx.h"#include"manager.h"#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;constintMAX=100;managerM[MAX];intstatictop1=0;manager::manager(void){}manager::~manager(void){}voidmanager::input(){cout<<"输入编号:"<<endl;cin>>number;cout<<"输入姓名:"<<endl;cin>>name;cout<<"输入性别:"<<endl;cin>>sex;cout<<"输入部门:"<<endl;cin>>department;cout<<"输入等级:"<<endl;cin>>rank;cout<<"输入固定月薪:"<<endl;cin>>salary;}voidmanager::output(){cout<<number<<"\t"<<name<<"\t"<<sex<<"\t"<<department<<"\t"<<rank<<"\t"<<salary<<endl;}voidmanager::read(){ top1=0; system("cls"); ifstreaminflie("经理.txt",ios::in); if(!inflie) { cout<<"打开失败!"<<endl; return; } inti=0; while(inflie>>M[i].number>>M[i].name>>M[i].sex>>M[i].department>>M[i].rank>>M[i].salary) { i++; top1=i; } inflie.close();}voidmanager::save(){ ofstreamoutflie("经理.txt",ios::out); if(!outflie) { cout<<"打开失败!"<<endl; return; } inti; for(i=0;i<top1;i++) { outflie<<M[i].number<<"\t"<<M[i].name<<"\t"<<M[i].sex<<"\t"<<M[i].department<<"\t"<<M[i].rank<<"\t"<<M[i].salary<<endl; } cout<<"保留成功!"<<endl; outflie.close();}voidmanager::add(){ system("cls"); read(); if(top1>=MAX) { cout<<"人员已满"<<endl; return; } cout<<"输入要添加编号:"<<endl; stringn; cin>>n; for(inti=0;i<top1;i++) if(n==M[i].number) { cout<<"该编号人员已存在"<<endl; return; } managerm; cout<<"请再次输入新添加人员信息"<<endl; m.input(); cout<<"是否确定添加?1、是2、否"<<endl; inta; cin>>a; if(a==1) { M[top1]=m; top1=top1+1; save(); } else { cout<<"放弃添加"<<endl; return; } }voidmanager::search(){ system("cls"); read(); if(top1==0) { cout<<"目前系统没有储存统计!"<<endl; return; } intchoice; cout<<"请选择查找方法:1、按编号查找2、按姓名查找0、退出"<<endl; cin>>choice; switch(choice) { case1: { cout<<"请输入要查找编号:"<<endl; stringnum; cin>>num; for(inti=0;i<top1;i++) { if(M[i].number==num) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"月薪"<<endl; M[i].output(); return; } } cout<<"查无此人!"<<endl; };break; case2: { cout<<"请输入要查找姓名"<<endl; stringname; cin>>name; for(inti=0;i<top1;i++) { if(M[i].name==name) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"月薪"<<endl; M[i].output(); } } cout<<"查无此人!"<<endl; };break; case0:break;default:cout<<"输入错误!请输入0~3数字"<<endl;system("pause");search();break; } } voidmanager::show(){ system("cls"); read(); if(top1==0) { cout<<"无数据!"<<endl; return; } cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"月薪"<<endl; for(inti=0;i<top1;i++) M[i].output(); }voidmanager::alter(){ system("cls"); read(); if(top1==0) { cout<<"目前系统没有储存统计"<<endl; return; } stringnum; cout<<"请输入要修改经理编号:"<<endl; cin>>num; for(inti=0;i<top1;i++) { if(M[i].number==num) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"月薪"<<endl; M[i].output(); cout<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别"<<endl; cout<<"5、修改部门6、修改等级7、修改月薪"<<endl; cout<<"0、退出修改"<<endl; intchoice; cin>>choice; switch(choice) { case1: { cout<<"输入修改后编号:"<<endl; stringn; cin>>n; for(intj=0;j<top1;j++) if(n==M[j].number) { cout<<"该编号人员已存在"<<endl; return; } cout<<"输入修改后姓名:"<<endl; stringna; cin>>na; cout<<"输入修改后性别:"<<endl; strings; cin>>s; cout<<"输入修改后部门:"<<endl; stringd; cin>>d; cout<<"输入修改后等级:"<<endl; stringr; cin>>r; cout<<"输入修改后月薪:"<<endl; floatsa; cin>>sa; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) { M[i].number=n; M[i].name=na; M[i].sex=s; M[i].department=d; M[i].rank=r; M[i].salary=sa; } else { cout<<"放弃修改"<<endl; return; }save(); };break;case2: { cout<<"请输入修改后编号"<<endl; stringn; cin>>n; for(inti=0;i<top1;i++) if(n==M[i].number) { cout<<"该编号人员已存在"<<endl; return; } cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].number=n; else { cout<<"放弃修改"<<endl; return; }save(); };break;case3: { cout<<"请输入修改后姓名"<<endl; stringna; cin>>na; M[i].name=na; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].name=na; else { cout<<"放弃修改"<<endl; return; } save(); };break;case4: { cout<<"请输入修改后性别"<<endl; strings; cin>>s; M[i].sex=s; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].sex=s; else { cout<<"放弃修改"<<endl; return; } save(); };break; case5: { cout<<"请输入修改后部门"<<endl; stringd; cin>>d; M[i].department=d; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].department=d; else { cout<<"放弃修改"<<endl; return; } save(); };break;case6: { cout<<"请输入修改后等级"<<endl; stringr; cin>>r; M[i].rank=r; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].rank=r; else { cout<<"放弃修改"<<endl; return; } save(); };break;case7: { cout<<"请输入修改后月薪"<<endl; floatsa; cin>>sa; M[i].salary=sa; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) M[i].salary=sa; else { cout<<"放弃修改"<<endl; return; } save(); };break;case0:cout<<"退出修改"<<endl;return;break;default:cout<<"无此选项!请输入0~7数字"<<endl;system("pause");break; } cout<<"修改完成"<<endl; return; } } cout<<"查无此人"<<endl;}voidmanager::del(){ system("cls"); read(); if(top1==0) { cout<<"目前系统没有储存统计"<<endl; return; } intchoice; cout<<"请删除查找方法:1、按编号删除2、按姓名删除0、退出"<<endl; cin>>choice; switch(choice) { case1: { cout<<"请输入所要删除人员编号:"<<endl; stringnum; cin>>num; for(inti=0;i<top1;i++) { if(M[i].number==num) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"月薪"<<endl; M[i].output(); cout<<"是否确定删除?1、是2、否"<<endl; intchoice; cin>>choice; switch(choice) { case1: { for(intj=i;j<top1;j++) M[j]=M[j+1]; cout<<"删除成功!"<<endl; top1=top1-1; };save();break; case2:return; default:cout<<"没有此选项!"<<endl; }return; } } cout<<"无此人!"<<endl; };system("pause");del();break; case2: { cout<<"请输入所要删除人员姓名:"<<endl; stringname; cin>>name; for(inti=0;i<top1;i++) { if(M[i].name==name) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"月薪"<<endl; M[i].output(); cout<<"是否确定删除?1、是2、否"<<endl; intchoice; cin>>choice; switch(choice) { case1: { for(intj=i;j<top1;j++) M[j]=M[j+1]; cout<<"删除成功!"<<endl; top1=top1-1; };save();break; case2:return; default:cout<<"没有此选项!"<<endl; } } }return; cout<<"无此人!"<<endl; };break;case0:break;default:cout<<"输入错误!请输入0~3数字"<<endl;system("pause");del();break; } save();}voidmanager::stat(){ system("cls"); read(); intchoice; cout<<"1、人数统计2、性别统计3、平均工资4、最高工资5、最低工资0、退出"<<endl;cout<<"请输入所要实施编号:"<<endl; cin>>choice; switch(choice) { case1:cout<<"经理人数为:"<<top1<<endl;system("pause");stat();break; case2: { inta=0,b=0; stringY="男"; stringX="女"; for(inti=0;i<top1;i++) { if(M[i].sex==Y) a++; if(M[i].sex==X) b++; } cout<<"男性人数:"<<a<<endl;cout<<"女性人数:"<<b<<endl; };system("pause");stat();break; case3: { floatave_salary=0; floatall_salary=0; for(inti=0;i<top1;i++) { all_salary=M[i].salary+all_salary; } ave_salary=all_salary/top1; cout<<"平均工资:"<<ave_salary; };system("pause");stat();break; case4: { floatmax_salary=0; for(inti=0;i<top1-1;i++) { if(M[i].salary>M[i+1].salary) { max_salary=M[i].salary; M[i+1].salary=max_salary; } else max_salary=M[i+1].salary; } cout<<"最高工资:"<<max_salary; };system("pause");stat();break; case5: { floatmin_salary=0; for(inti=0;i<top1-1;i++) { if(M[i].salary<M[i+1].salary) { min_salary=M[i].salary; M[i+1].salary=min_salary; } else min_salary=M[i+1].salary; } cout<<"最低工资:"<<min_salary; };system("pause");stat();break; case0:break; default:cout<<"无此选项!请输入0~5数字"<<endl;system("pause");stat();break; } }3.3技术人员类实现technician.h#include"employee.h"classtechnician: publicemployee{public: technician(void); ~technician(void); voidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput();protected: floatwork_time; floattime_salary;};technician.cpp#include"StdAfx.h"#include"technician.h"#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;constintMAX=100;technicianT[MAX];intstatictop2=0;technician::technician(void){}technician::~technician(void){}voidtechnician::input(){cout<<"请输入输入编号:"<<endl;cin>>number;cout<<"请输入输入姓名:"<<endl;cin>>name;cout<<"请输入输入性别:"<<endl;cin>>sex;cout<<"请输入输入部门:"<<endl;cin>>department;cout<<"请输入输入等级:"<<endl;cin>>rank;cout<<"请输入输入工时:"<<endl;cin>>work_time;cout<<"请输入输入时薪:"<<endl;cin>>time_salary;salary=time_salary*work_time;}voidtechnician::output(){cout<<number<<"\t"<<name<<"\t"<<sex<<"\t"<<department<<"\t"<<rank<<"\t"<<work_time<<"\t"<<time_salary<<"\t"<<salary<<endl;}voidtechnician::read(){ top2=0; system("cls"); ifstreaminflie("技术人员.txt",ios::in); if(!inflie) { cout<<"打开失败!"<<endl; return; } inti=0; while(inflie>>T[i].number>>T[i].name>>T[i].sex>>T[i].department>>T[i].rank>>T[i].work_time>>T[i].time_salary>>T[i].salary) { i++; top2=i; } inflie.close();}voidtechnician::save(){ ofstreamoutflie("技术人员.txt",ios::out); if(!outflie) { cout<<"打开失败!"<<endl; return; } inti; for(i=0;i<top2;i++) { outflie<<T[i].number<<"\t"<<T[i].name<<"\t"<<T[i].sex<<"\t"<<T[i].department<<"\t"<<T[i].rank<<"\t"<<T[i].work_time<<"\t"<<T[i].time_salary<<"\t"<<T[i].salary<<endl; } cout<<"保留成功!"<<endl; outflie.close();}voidtechnician::add(){ system("cls"); read(); if(top2>=MAX) { cout<<"人员已满"<<endl; return; } cout<<"输入要添加编号:"<<endl; stringn; cin>>n; for(inti=0;i<top2;i++) if(n==T[i].number) { cout<<"该编号人员已存在"<<endl; return; } techniciant; cout<<"请再次输入新添加人员信息"<<endl; t.input(); cout<<"是否确定添加?1、是2、否"<<endl; inta; cin>>a; if(a==1) { T[top2]=t; top2=top2+1; save(); } else { cout<<"放弃添加"<<endl; return; }}voidtechnician::search(){ system("cls"); read(); if(top2==0) { cout<<"目前系统没有储存统计!"<<endl; return; } intchoice; cout<<"请选择查找方法:1、按编号查找2、按姓名查找0、退出"<<endl; cin>>choice; switch(choice) { case1: { cout<<"请输入要查找编号:"<<endl; stringnum; cin>>num; for(inti=0;i<top2;i++) { if(T[i].number==num) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<endl; T[i].output(); return; } } cout<<"查无此人!"<<endl; };break; case2: { cout<<"请输入要查找姓名"<<endl; stringname; cin>>name; for(inti=0;i<top2;i++) { if(T[i].name==name) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<endl; T[i].output(); return; } } cout<<"查无此人!"<<endl; };break; case0:break;default:cout<<"输入错误!请输入0~3数字"<<endl;system("pause");search();break; } } voidtechnician::show(){ system("cls"); read(); if(top2==0) { cout<<"无数据!"<<endl; return; } cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<endl; for(inti=0;i<top2;i++) T[i].output();}voidtechnician::alter(){ system("cls"); read(); if(top2==0) { cout<<"目前系统没有储存统计"<<endl; return; } stringnum; cout<<"请输入要修改技术人员编号:"<<endl; cin>>num; for(inti=0;i<top2;i++) { if(T[i].number==num) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<endl; T[i].output(); cout<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别"<<endl; cout<<"5、修改部门6、修改等级7、修改工时8、修改时薪"<<endl; cout<<"0、退出修改"<<endl; intchoice; cin>>choice; switch(choice) { case1: { cout<<"输入修改后编号:"<<endl; stringn; cin>>n; for(intj=0;j<top2;j++) if(n==T[j].number) { cout<<"该编号人员已存在"<<endl; return; } cout<<"输入修改后姓名:"<<endl; stringna; cin>>na; cout<<"输入修改后性别:"<<endl; strings; cin>>s; cout<<"输入修改后部门:"<<endl; stringd; cin>>d; cout<<"输入修改后等级:"<<endl; stringr; cin>>r; cout<<"输入修改后工时:"<<endl; floatwt; cin>>wt; cout<<"输入修改后工时:"<<endl; floatts; cin>>ts; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) { T[i].number=n; T[i].name=na; T[i].sex=s; T[i].department=d; T[i].rank=r; T[i].work_time=wt; T[i].time_salary=ts; T[i].salary=wt*ts; } else { cout<<"放弃修改"<<endl; return; }save(); };break;case2: { cout<<"请输入修改后编号"<<endl; stringn; cin>>n; for(inti=0;i<top2;i++) if(n==T[i].number) { cout<<"该编号人员已存在"<<endl; return; } cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) T[i].number=n; else { cout<<"放弃修改"<<endl; return; }save(); };break;case3: { cout<<"请输入修改后姓名"<<endl; stringna; cin>>na; T[i].name=na; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) T[i].name=na; else { cout<<"放弃修改"<<endl; return; } save(); };break;case4: { cout<<"请输入修改后性别"<<endl; strings; cin>>s; T[i].sex=s; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) T[i].sex=s; else { cout<<"放弃修改"<<endl; return; } save(); };break; case5: { cout<<"请输入修改后部门"<<endl; stringd; cin>>d; T[i].department=d; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) T[i].department=d; else { cout<<"放弃修改"<<endl; return; } save(); };break;case6: { cout<<"请输入修改后等级"<<endl; stringr; cin>>r; T[i].rank=r; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) T[i].rank=r; else { cout<<"放弃修改"<<endl; return; } save(); };break;case7: { cout<<"请输入修改后工时"<<endl; floatwt; cin>>wt; T[i].work_time=wt; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) { T[i].work_time=wt; T[i].salary=T[i].time_salary*wt; } else { cout<<"放弃修改"<<endl; return; } save(); };break; case8: { cout<<"请输入修改后时薪"<<endl; floatts; cin>>ts; T[i].time_salary=ts; cout<<"是否确定修改?1、是2、否"<<endl; inta; cin>>a; if(a==1) { T[i].time_salary=ts; T[i].salary=T[i].work_time*ts; } else { cout<<"放弃修改"<<endl; return; } save(); };break;case0:cout<<"退出修改"<<endl;return;break;default:cout<<"无此选项!请输入0~8数字"<<endl;system("pause");break; } cout<<"修改完成"<<endl; return; } } cout<<"查无此人"<<endl;}voidtechnician::del(){ system("cls"); read(); if(top2==0) { cout<<"目前系统没有储存统计"<<endl; return; } intchoice; cout<<"请删除查找方法:1、按编号删除2、按姓名删除0、退出"<<endl; cin>>choice; switch(choice) { case1: { cout<<"请输入所要删除人员编号:"<<endl; stringnum; cin>>num; for(inti=0;i<top2;i++) { if(T[i].number==num) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<endl; T[i].output(); cout<<"是否确定删除?1、是2、否"<<endl; intchoice; cin>>choice; switch(choice) { case1: { for(intj=i;j<top2;j++) T[j]=T[j+1]; cout<<"删除成功!"<<endl; top2=top2-1; };save();break; case2:return; default:cout<<"没有此选项!"<<endl; }return; } } cout<<"无此人!"<<endl; };system("pause");del();break; case2: { cout<<"请输入所要删除人员姓名:"<<endl; stringname; cin>>name; for(inti=0;i<top2;i++) { if(T[i].name==name) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"工时"<<"\t"<<"时薪"<<"\t"<<"月薪"<<endl; T[i].output(); cout<<"是否确定删除?1、是2、否"<<endl; intchoice; cin>>choice; switch(choice) { case1: { for(intj=i;j<top2;j++) T[j]=T[j+1]; cout<<"删除成功!"<<endl; top2=top2-1; };save();break; case2:break; default:cout<<"没有此选项!"<<endl; } } }return; cout<<"无此人!"<<endl; };system("pause");del();break;case0:break;default:cout<<"输入错误!请输入0~3数字"<<endl;system("pause");del();break; } save();}voidtechnician::stat(){ system("cls"); read(); intchoice; cout<<"1、人数统计2、性别统计3、平均工资4、最高工资5、最低工资0、退出"<<endl;cout<<"请输入所要实施编号:"<<endl; cin>>choice; switch(choice) { case1:cout<<"技术人员人数为:"<<top2<<endl;system("pause");stat();break; case2: { inta=0,b=0; stringY="男"; stringX="女"; for(inti=0;i<top2;i++) { if(T[i].sex==Y) a++; if(T[i].sex==X) b++; } cout<<"男性人数:"<<a<<endl;cout<<"女性人数:"<<b<<endl; };system("pause");stat();break; case3: { floatave_salary=0; floatall_salary=0; for(inti=0;i<top2;i++) { all_salary=T[i].salary+all_salary; } ave_salary=all_salary/top2; cout<<"平均工资:"<<ave_salary; };system("pause");stat();break; case4: { floatmax_salary=0; for(inti=0;i<top2-1;i++) { if(T[i].salary>T[i+1].salary) { max_salary=T[i].salary; T[i+1].salary=max_salary; } else max_salary=T[i+1].salary; } cout<<"最高工资:"<<max_salary; };system("pause");stat();break; case5: { floatmin_salary=0; for(inti=0;i<top2-1;i++) { if(T[i].salary<T[i+1].salary) { min_salary=T[i].salary; T[i+1].salary=min_salary; } else min_salary=T[i+1].salary; } cout<<"最低工资:"<<min_salary; };system("pause");stat();break; case0:break; default:cout<<"无此选项!请输入0~5数字"<<endl;system("pause");stat();break; } }3.4销售人员类实现salesman.h#include"employee.h"classsalesman: virtualpublicemployee{public: salesman(void); ~salesman(void); voidadd(); voidsearch(); voidshow(); voidalter();voiddel(); voidstat(); voidsave(); voidread(); voidinput(); voidoutput();protected: floatsale; floatrate;};salesman.cpp#include"StdAfx.h"#include"salesman.h"#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;constintMAX=100;salesmanS[MAX];intstatictop3=0;salesman::salesman(void){}salesman::~salesman(void){}voidsalesman::input(){cout<<"输入编号:"<<endl;cin>>number;cout<<"输入姓名:"<<endl;cin>>name;cout<<"输入性别:"<<endl;cin>>sex;cout<<"输入部门:"<<endl;cin>>department;cout<<"输入等级:"<<endl;cin>>rank;cout<<"请输入输入其当月销售额:"<<endl;cin>>sale;cout<<"请以小数形式输入分成率:"<<endl;cin>>rate;salary=sale*rate;}voidsalesman::output(){ cout<<number<<"\t"<<name<<"\t"<<sex<<"\t"<<department<<"\t"<<rank<<"\t"<<sale<<""<<rate<<""<<salary<<endl;}voidsalesman::read(){ top3=0; system("cls"); ifstreaminflie("销售人员.txt",ios::in); if(!inflie) { cout<<"打开失败!"<<endl; return; } inti=0; while(inflie>>S[i].number>>S[i].name>>S[i].sex>>S[i].department>>S[i].rank>>S[i].sale>>S[i].rate>>S[i].salary) { i++; top3=i; } inflie.close();}voidsalesman::save(){ ofstreamoutflie("销售人员.txt",ios::out); if(!outflie) { cout<<"打开失败!"<<endl; return; } inti; for(i=0;i<top3;i++) { outflie<<S[i].number<<"\t"<<S[i].name<<"\t"<<S[i].sex<<"\t"<<S[i].department<<"\t"<<S[i].rank<<"\t"<<S[i].sale<<"\t"<<S[i].rate<<"\t"<<S[i].salary<<endl; } cout<<"保留成功!"<<endl; outflie.close();}voidsalesman::add(){ system("cls"); read(); if(top3>=MAX) { cout<<"人员已满"<<endl; return; } cout<<"输入要添加编号:"<<endl; stringn; cin>>n; for(inti=0;i<top3;i++) if(n==S[i].number) { cout<<"该编号人员已存在"<<endl; return; } salesmans; cout<<"请再次输入新添加人员信息"<<endl; s.input(); cout<<"是否确定添加?1、是2、否"<<endl; inta; cin>>a; if(a==1) { S[top3]=s; top3=top3+1; save(); } else { cout<<"放弃添加"<<endl; return; }}voidsalesman::search(){ system("cls"); read(); if(top3==0) { cout<<"目前系统没有储存统计!"<<endl; return; } intchoice; cout<<"请选择查找方法:1、按编号查找2、按姓名查找0、退出"<<endl; cin>>choice; switch(choice) { case1: { cout<<"请输入要查找编号:"<<endl; stringnum; cin>>num; for(inti=0;i<top3;i++) { if(S[i].number==num) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"月销售额"<<""<<"分成率"<<""<<"月薪"<<endl; S[i].output(); } } cout<<"查无此人!"<<endl; };break; case2: { cout<<"请输入要查找姓名"<<endl; stringname; cin>>name; for(inti=0;i<top3;i++) { if(S[i].name==name) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"月销售额"<<""<<"分成率"<<""<<"月薪"<<endl; S[i].output(); return; } } cout<<"查无此人!"<<endl; };break; case0:break;default:cout<<"输入错误!请输入0~3数字"<<endl;system("pause");search();break; } } voidsalesman::show(){ system("cls"); read(); if(top3==0) { cout<<"无数据!"<<endl; return; } cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"月销售额"<<""<<"分成率"<<""<<"月薪"<<endl; for(inti=0;i<top3;i++) S[i].output();}voidsalesman::alter(){ system("cls"); read(); if(top3==0) { cout<<"目前系统没有储存统计"<<endl; return; } stringnum; cout<<"请输入要修改经理编号:"<<endl; cin>>num; for(inti=0;i<top3;i++) { if(S[i].number==num) { cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"等级"<<"\t"<<"月销售额"<<""<<"分成率"<<""<<"月薪"<<endl; S[i].output(); cout<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别"<<endl; cout<<"5、修改部门6、修改等级7、修改月销售额8、修改分成率"<<endl; cout<<"0、退出修改"<<endl; intchoice; cin>>choice; switch(choice) { case1: { cout<<"输入修改后编号:"<<endl; stringn; cin>>n; for(intj=0;j<top3;i++) if(n==S[j].number) { cout<<"该编号人员已存在"<<endl;

温馨提示

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

评论

0/150

提交评论