1、includeiomanip。h#includeiostream。h#includefstream。h#includestdlib。hclass Employ/基类雇员类protected: int num; char name10; char sex; int age; int wage;public:virtual void set()=0;virtual void print()=0;virtual void reserved()=0;;class Manager:public Employ/经理类public: void set(); void print();void reserve
2、d();class Salesman:public Employ/销售员类protected:int salesvolume;int snum;public: void set(); void print();void reserved();void printinfor();int getsales()return salesvolume;int getsnum()return snum;;class MarketMan:public Manager/销售经理类protected:int salesvolume;public: void set(); void print();void re
3、served(); int resetwage();int getnum()return num;chargetname()return name;int getamount(Salesman s,int n)salesvolume=0;for(int i=0;in;i+)if(si。getsnum()=num)salesvolume+=si。getsales();return salesvolume;class Technician:public Employ/技术员类protected:int worktime;public: void set(); void print();void r
4、eserved();void Manager:set()wage=8000;coutnum;coutsex;cout”年龄:”;cinage;void Manager:print()/经理类成员函数cout”endl;cout”setw(12)numsetw(12)name”setw(12)sex;cout”setw(12)age”setw(12)wage”endl;void Manager:reserved()ofstream employf(”E:05-29gzglxt。txt”,ios:app);employf”经理的编号:numendl 其姓名:”nameendl 性别(m/w):”s
5、exendl ”年龄:”ageendl;void MarketMan:set()wage=resetwage();coutnum;coutname;cout”性别(m/w):”;cinsex;coutage; void MarketMan:print() resetwage();cout”endl;cout”setw(12)num”setw(12)namesetw(12)sex;cout”setw(12)age”setw(12)wage”endl;void MarketMan::reserved() ofstream employf(”E:0529gzglxt.txt”,ios::app);e
6、mployf销售经理的编号:numendl 其姓名:nameendl ”性别(m/w):sexendl ”年龄:”ageendl;int MarketMan::resetwage()wage=5000+int(salesvolume0。005);return wage;void Salesman::set()/销售员类定义coutnum;coutname;coutage;coutsalesvolume;cout所属销售经理的编号:”;cinsnum; wage=int(salesvolume*0.04);void Salesman::printinfor()cout”endl;cout”set
7、w(14)num”setw(14)name”setw(14)salesvolume”endl;void Salesman::print()cout”endl;cout”setw(8)num”setw(10)namesetw(10)sex;cout”setw(10)age”setw(10)wage”setw(16)getsnum()endl; void Salesman::reserved()ofstream employf(”E:05-29gzglxt。txt”,ios:app);employf”销售员的编号:numendl ”其姓名:”nameendl ”性别(m/w):sexendl ”年
8、龄:”ageendl ”销售额:”salesvolumeendl ”所属销售经理的编号snumendl;void Technician::set()/技术员类定义coutnum;coutname;cout”性别(m/w):;cinsex;cout”年龄:;cinage;coutworktime;wage=worktime*100; void Technician:print()cout”endl;cout”setw(12)num”setw(12)name”setw(12)sex;cout”setw(12)age”setw(12)wage”endl; void Technician:reserv
9、ed() ofstream employf(”E:0529gzglxt。txt”,ios:app);employf技术员的编号:”numendl ”其姓名:nameendl 性别(m/w):”sexendl ”年龄:”ageendl ”工作时间:”msmm;pt=new Techniciant;pm=new Managerm;ps=new Salesmans;pmm=new MarketManmm;if(!pt)(!pm)(!ps)(!pmm)cout”堆内存分配失败!”endl;exit(1);single();void single() cout”小型公司工资管理系统”endl;cout”
10、endl;cout” 请选择所需的操作 endl;cout”endl;cout” 数据输入:1,并按回车键 ”endl;cout”endl;cout” 数据统计:2,并按回车键 ”endl;cout”endl;cout” 数据打印:3,并按回车键 ”endl;cout”endl;cout” 数据备份:4,并按回车键 ”endl;cout”endl;cout” 退出系统:5,并按回车键 ”endl;cout”endl;cout”endl;cout”请选择一个操作:”endl;int choice;cinchoice;switch(choice)case 1:setin();case 2:coun
11、t(); case 3:printdata();case 4:reservedall();case 5:exit(0);void setin()Menu1:cout小型公司工资管理系统endl;cout”endl;cout” 请选择所需的操作 ”endl;cout”endl;cout”技术员数据输入 : 1,并按回车键 ”endl;cout”endl;cout”经理数据输入 : 2,并按回车键 ”endl;cout”endl;cout销售员数据输入 : 3,并按回车键 ”endl;cout”endl;cout销售经理数据输入 : 4,并按回车键 ”endl;cout”endl;cout”返回上
12、一级菜单 : 5,并按回车键 endl;cout”endl;coutch1;switch(ch1)case 1:for(i=0;it;i+) pti.set(); cout”-”endl; goto Menu1;case 2:for(i=0;im;i+) pmi。set(); cout”-”endl; goto Menu1;case 3:for(i=0;is;i+) psi。set(); cout”-endl; goto Menu1; case 4:for(i=0;imm;i+) pmmi。set(); cout-endl; goto Menu1; case 5:single();void c
13、ount()Menu2:cout”小型公司工资管理系统”endl;cout”endl;cout 请选择所需的操作 endl;cout”endl;cout”各销售经理下属销售员业绩统计 : 1,并按回车键 ”endl;cout”endl;cout”销售经理按工资排序 : 2,并按回车键 ”endl;cout”endl;cout”返回上一级菜单 : 3,并按回车键 ”endl;cout”endl;coutch2;switch(ch2)case 1:for(i=0;imm;i+) cout”职工号为:”pmmi。getnum()”销售经理:”pmmi。getname()”下属销售员的业绩为:”end
14、l; cout”endl; cout”职工号 姓名 销售额 endl; for(j=0;js;j+) if(pmmi.getnum()=psj。getsnum() psj。printinfor(); cout”endl; cout”销售额总计: setw(22)pmmi。getamount(ps,s)”endl; cout”endl; goto Menu2; case 2:cout销售经理按工资排序为:”endl; MarketMan pmmm; for(i=1;imm;i+) for(j=0;jmmi;j+) if(pmmj。getamount(ps,s)pmmj+1。getamount(p
15、s,s) pmmm=pmmj; pmmj=pmmj+1; pmmj+1=pmmm; cout”endl; cout” 职工号 姓名 性别 年龄 工资 endl; for(i=0;imm;i+) pmmi。print(); coutendl; cout” -”endl; goto Menu2;case 3:single();void printdata()Menu3:cout”小型公司工资管理系统”endl;cout”endl;cout 请选择所需的操作 ”endl;cout”endl;cout技术员数据输出 : 1,并按回车键 ”endl;cout”endl;cout经理数据输出 : 2,并按
16、回车键 ”endl;cout”endl;cout”销售员数据输出 : 3,并按回车键 ”endl;cout”endl;cout销售经理数据输出 : 4,并按回车键 endl;cout”endl;cout返回上一级 : 5,并按回车键 endl;cout”endl;coutch3;switch(ch3)case 1: cout”技术员”endlendl; cout”endl; cout” 职工号 姓名 性别 年龄 工资 endl; for(i=0;it;i+) pti。print(); cout”endl; cout”-”endl; goto Menu3;case 2: cout经理”endle
17、ndl; cout”endl; cout” 职工号 姓名 性别 年龄 工资 ”endl; for(i=0;im;i+) pmi.print(); cout”endl; cout”-”endl; goto Menu3;case 4:cout”销售经理endlendl; coutendl; cout” 职工号 姓名 性别 年龄 工资 ”endl; for(i=0;imm;i+) pmmi。print(); cout”endl; cout”-endl; goto Menu3;case 3:cout销售员endlendl; cout”endl; cout 职工号 姓名 性别 年龄 工资 所属部门经理编
18、号endl; for(i=0;is;i+) psi.print(); cout”endl; cout”-”endl; goto Menu3;case 5:single();void reservedall()Menu4:cout小型公司工资管理系统endl;cout”endl;cout” 请选择所需的操作 endl;cout”endl;cout”技术员数据备份 : 1,并按回车键 ”endl;coutendl;cout”经理数据备份 : 2,并按回车键 ”endl;cout”endl;cout销售员数据备份 : 3,并按回车键 endl;cout”endl;cout”销售经理数据备份 : 4,
19、并按回车键 ”endl;cout”endl;cout返回上一级 : 5,并按回车键 ”endl;cout”endl;cout请选择一个操作”;int ch4,i;cinch4;switch(ch4)case 1:for(i=0;it;i+) pti.reserved(); goto Menu4; case 2:for(i=0;im;i+) pmi.reserved(); goto Menu4; case 3:for(i=0;is;i+) psi。reserved(); goto Menu4; case 4:for(i=0;imm;i+) pmmi.reserved(); goto Menu4; case 5:single();