//person.h
#include<iostream.h>
#include<fstream.h>
#include<string.h>
struct Salary
{
char aDuty[10];
float sRadices;
float sMutiple;
};
struct Employee
{
int sNumber;
char sName[15];
char sDuty[10];
float sPrize;
float sExtra;
};
struct Mgr2Salers
{
int aNumberfMgr;
int saListofSalers[11];
};
class Person
{
friend void operator + (Person &person,const float prize);
friend void operator >> (Person *person,Employee &sEmployee);
public:
Person(int number,char *name,float prize);
~Person();
const int GetNumber()const
{return nNumber;}
const char *GetName()const
{return szName;}
const char *GetDuty()const
{return szDuty;}
virtual float CalSalary()=0;//纯虚函数,计算不同职位人员的月薪
virtual void Display();//虚函数,计算不同职位人员的信息
virtual void Modify();//虚函数,修改不同职位人员的信息
float fRadices,fMutiple;
protected:
int nNumber;
char *szName;
float fSalary;
char *szDuty;
float fPrize;
};
//编号 姓名 职位 月薪 奖金
class Boss:public Person
{
public:
Boss(int number,char *name,float prize,float radices);
virtual float CalSalary();
virtual void Display();
virtual void Modify();
private:
};
//编号 姓名 职位 月薪 奖金 加班时间
class Worker:public Person
{
public:
Worker(int number,char *name,float extra,float prize,float radices,float mutiple);
const float GetExtra()const
{return fExtraTime;}
virtual float CalSalary();
virtual void Display();
virtual void Modify();
protected:
float fExtraTime;
};
//编号 姓名 职位 月薪 奖金 加班时间
class Engineer:public Worker
{
public:
Engineer(int number,char *name,float extra,float prize,float radices,float sutiple);
virtual float CalSalary();
virtual void Display();
virtual void Modify();
protected:
};
//编号 姓名 职位 月薪 奖金 销售额 所属销售经理
class Saler:public Person
{
public:
Saler(int number,char *name,float sales,float prize,float radices,float mutiple);
const float GetSales()const
{return fSales;}
const int GetSaleMgr()const
{return nSaleMgr;}
void SetSaleMgr(int salemgr)
{nSaleMgr=salemgr;};
virtual float CalSalary();
virtual void Display();
virtual void Modify();
protected:
float fSales;
int nSaleMgr;
};
//编号 姓名 职位 月薪 奖金 销售 人员列表[]
class SaleManager:public Person
{
public:
SaleManager(int number,char *name,float prize,float radices,float mutiple);
virtual float CalSalary();
float CalSalary(float allsales); //重载函数CalSalary,传入函数为所管辖 //销售人员销售总额
virtual void Display();
virtual void Modify();
public:
int aSalers[11];
};
#include<iostream.h>
#include<fstream.h>
#include<string.h>
struct Salary
{
char aDuty[10];
float sRadices;
float sMutiple;
};
struct Employee
{
int sNumber;
char sName[15];
char sDuty[10];
float sPrize;
float sExtra;
};
struct Mgr2Salers
{
int aNumberfMgr;
int saListofSalers[11];
};
class Person
{
friend void operator + (Person &person,const float prize);
friend void operator >> (Person *person,Employee &sEmployee);
public:
Person(int number,char *name,float prize);
~Person();
const int GetNumber()const
{return nNumber;}
const char *GetName()const
{return szName;}
const char *GetDuty()const
{return szDuty;}
virtual float CalSalary()=0;//纯虚函数,计算不同职位人员的月薪
virtual void Display();//虚函数,计算不同职位人员的信息
virtual void Modify();//虚函数,修改不同职位人员的信息
float fRadices,fMutiple;
protected:
int nNumber;
char *szName;
float fSalary;
char *szDuty;
float fPrize;
};
//编号 姓名 职位 月薪 奖金
class Boss:public Person
{
public:
Boss(int number,char *name,float prize,float radices);
virtual float CalSalary();
virtual void Display();
virtual void Modify();
private:
};
//编号 姓名 职位 月薪 奖金 加班时间
class Worker:public Person
{
public:
Worker(int number,char *name,float extra,float prize,float radices,float mutiple);
const float GetExtra()const
{return fExtraTime;}
virtual float CalSalary();
virtual void Display();
virtual void Modify();
protected:
float fExtraTime;
};
//编号 姓名 职位 月薪 奖金 加班时间
class Engineer:public Worker
{
public:
Engineer(int number,char *name,float extra,float prize,float radices,float sutiple);
virtual float CalSalary();
virtual void Display();
virtual void Modify();
protected:
};
//编号 姓名 职位 月薪 奖金 销售额 所属销售经理
class Saler:public Person
{
public:
Saler(int number,char *name,float sales,float prize,float radices,float mutiple);
const float GetSales()const
{return fSales;}
const int GetSaleMgr()const
{return nSaleMgr;}
void SetSaleMgr(int salemgr)
{nSaleMgr=salemgr;};
virtual float CalSalary();
virtual void Display();
virtual void Modify();
protected:
float fSales;
int nSaleMgr;
};
//编号 姓名 职位 月薪 奖金 销售 人员列表[]
class SaleManager:public Person
{
public:
SaleManager(int number,char *name,float prize,float radices,float mutiple);
virtual float CalSalary();
float CalSalary(float allsales); //重载函数CalSalary,传入函数为所管辖 //销售人员销售总额
virtual void Display();
virtual void Modify();
public:
int aSalers[11];
};