#define LOWWAGE 200 //工資最低值
class Worker
{
public:
Worker(){
id=0;
name[0]='\0';
wage=0.0;
level=1; //最底為1級
};
Worker(int _Id,char* _name,float _wage,int _level){
id=_Id;
strcpy(name,_name);
wage=_wage;
level=_level;
};
~Worker(){};
public:
void infoList(); //輸出職工的各項信息。
void set(); //修改數據成員
void setWage(float fVal);
void addWage(); //增加工資並提升技術等級。
static void CalAveWage(int iNum,Worker(*pArray)[]); //計算平均工資
static void outAveWage();
private:
static float AveWage; //平均工資
unsigned int id; //職工號。
char name[11];//姓名
float wage; //工資。(最低值為符號常量,設為200)
int level; //技術等級(1~9級)
};
float Worker::AveWage=0.0;
void Worker::infoList()
{
cout<<"輸出職工信息:"<<endl;
cout<<"\t職工號:"<<id<<endl;
cout<<"\t姓名:"<<name<<endl;
cout<<"\t工資:"<<wage<<endl;
cout<<"\t技術等級:"<<level<<endl;
}
void Worker::set()
{
cout<<"請輸入 職工號:"<<endl;
scanf("%d",&id);
cout<<"請輸入 姓名:"<<endl;
scanf("%s",&name);
cout<<"請輸入 工資:"<<endl;
scanf("%f",&wage);
cout<<"請輸入 技術等級:"<<endl;
scanf("%d",&level);
cout<<"完畢!"<<endl;
}
void Worker::addWage()
{
++level;
wage+=150;
}
void Worker::CalAveWage(int iNum,Worker(*pArray)[])
{
float fSum=0.0;
for (int i=0;i<iNum;++i)
{
fSum+=(*pArray)[i].wage;
}
AveWage=fSum/(float)iNum;
}
void Worker::setWage(float fVal)
{
wage=fVal;
}
void Worker::outAveWage()
{
cout<<"平均工資為:"<<AveWage<<endl;
}
void main()
{
Worker w1;
w1.set();
w1.infoList();
Worker wArr[10];
for (int i=0;i<10;++i)
wArr[i].setWage(i*10);
w1.CalAveWage(10,(Worker (*)[])&wArr);
w1.outAveWage();
}