if(strlen(temp1)>20) goto retelephone; else
strcpy(telephone,temp1); } else
strcpy(telephone,temp); }
void setage(int temp) {
renumber: if(temp<=18||temp>65)
{ cout<<\输入错误!请重新输入。\\n\ int temp1;
cout<<\年 龄:\\t\ cin>>temp1;
if(temp1<=0||temp1>120) goto renumber;
else age=temp1; } else
age=temp; }
void setmonthwages(double temp) {
monthwages=temp; } };
long employee::employees=0;
class technician: public employee//讲师类的定义
{ protected:
static int technicians;//用来记数讲师的数量 public:
int gettechnicians() {
return technicians; }
void setnumber(char temp[]) {
technicians++;
employee::setnumber(temp); }
void monthly_wages(double temp) { setmonthwages(temp*100); //讲师的工资为课程量*课时工资100每课时 } };
int technician::technicians=0;
class manager:public employee//辅导员类的定义 {
static int managers;//辅导员的数量 public:
int getmanagers() { return managers; }
void monthly_wages() {
setmonthwages(5000);//辅导员的工资为五千固定 managers++; } };
int manager::managers=0;
class seller:public employee//教授类的定义 { protected:
static double sellroom; static double sellrooms; static int sellers; public:
int getsellers() { return sellers; }
double getsellroom() {
return sellroom; }
double getsellrooms() { return sellrooms; } void setsellroom(double temp) { sellroom=temp;
sellrooms=sellrooms+temp; }
void monthly_wages() { setmonthwages(sellroom*0.04); sellers++; } };
double seller::sellroom=0; double seller::sellrooms=0; int seller::sellers=0;
class sellermanager:public seller //行政人员类的定义 {
static int sellermanagers;//行政人员的数量 public:
int getsellermanagers() {
return sellermanagers; }
double getsellrooms() { return sellrooms; } void monthly_wages()
{ setmonthwages(sellrooms*0.005+5000);
sellermanagers++; } };
int sellermanager::sellermanagers=0; //各数据输入的原函数声明
void inputtechnician(employee&); void inputmanager(employee&); void inputseller(employee&);
void inputsellermanager(employee&);
void compositorall(employee*);//对所有教工的工资降序排列 int printfile();//把文件中的资料显示到显示器上 void outputtofile(employee*);//把资料保存到文件中 int main()
{ employee employeeall[EMP]; int i=0;
while(i { system(\刷新屏幕 cout<<\本系统能存入\个教工的资料 ***\\n\ cout<<\ *** 已经输入了\<<\教工的资料 ****\\n\ cout<<\cout<<\、输入讲 师的资料; ***\\n\ cout<<\、输入辅 导 员的资料; ***\\n\ cout<<\、输入教 授的资料; ***\\n\ cout<<\、输入行政人员的资料; ***\\n\ cout<<\、退出输入! ***\\n\ cout<<\ cout<<\请选择:\ char n[5]; cin>>n; if(strlen(n)==1) { switch(n[0]) { case '1': inputtechnician(employeeall[i]); i++; break; case '2': inputmanager(employeeall[i]); i++; break; case '3': inputseller(employeeall[i]); i++; break; case '4': inputsellermanager(employeeall[i]); i++; break; case '5': system(\刷新屏幕 compositorall(employeeall);//对所有教工的工资降序排列 outputtofile(employeeall);//把资料保存到文件中 cout<<\是否打印资料(y/n)\ char a[5]; cin>>a; if(a[0]=='y'||a[0]=='Y') printfile();//把文件中的资料显示到显示器上 return 1; default: cout<<\错误!请重新输入!\\n\ } } else cout<<\错误!请重新输入!\\n\ } compositorall(employeeall);//对所有教工的工资降序排列 outputtofile(employeeall);//把资料保存到文件中 printfile();//把文件中的资料显示到显示器上 return 0; } void inputtechnician(employee &empl) //教工基本信息的输入函数 { technician tech; cout<<\★★教工资料:\\n\ char temp[20]; cout<<\姓 名:\\t\ cin>>temp; empl.setname(temp); cout<<\教 工 号:\\t\ cin>>temp; empl.setnumber(temp); empl.setpost(\讲 师\