工资管理系统源代码 下载本文

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(\讲 师\