高手帮我找下错
#include"iostream.h"
#include"string.h"
class EmpSalary//定义工资类
{
public:
float Wage;
float Subsidy;
float Rent;
float CostOfElec;
float CostOfWater;
float RealSum(){return Wage+Subsidy-Rent-CostOfElec-CostOfWater;}
};
enum Position
{
MANAGER,
ENGINEER,
EMPLOYEE,
WORKER
};
class Date
{
int day,month,year;
public:
void init(int,int,int);
void print_ymd();
};
class Employee
{
string Department;
string Name;
Date Birthdate;
Position EmpPosition;
Date DateOfWork;
EmpSalary Salary;
public:
void Register(string Depart,string nName,Date tBirthdate,Position nPosoition,Date tDateOfWork);
void SetSalary(float wage,float subsidy,float rent,float elec,float water);
float GetSalary();
void ShowMessage();
};
void Date::init(int yy,int mm,int dd)
{
month=(mm>=1&&mm<=12)?mm:1;
year=(yy>=1990&&yy<=2100)?yy:1900;
day=(dd>=1&&dd<=31)?dd:1;
}
void Date::print_ymd()
{
cout<<year<<"-"<<month<<"-"<<day<<endl;
}
void Employee::Register(string Depart,string nName,Date tBirthdate,Posotion nPosition,Date tDateOfWork)
{
Department=Depart;
Name=nName;
Birthdate=tBirthdate;
EmpPosition=nPosition;
DateOfWork=tDateOfWork;
}
void Employee::SetSalary(float wage,float subsidy,float rent,float elec,float water)
{
Salary.Wage=wage;
Salary.Subsidy=subsidy;
Salary.Rent=rent;
Salary.CostOfElec=elec;
Salary.CostOfWater=water;
}
float Employee::GetSalary()
{
return Salary.RealSum();
}
void Employee::ShowMessage()
{
cout<<"Depart:"<<Department<<endl;
cout<<"Name:"<<Name<<endl;
cout<<"Birthdate:";
Birthdate.print_ymd();
switch(EmpPosition)
{
case MANAGER:
cout<<"Position:"<<"MANAGER"<<endl; break;
case ENGINEER:
cout<<"Position:"<<"ENGINEER"<<endl; break;
case EMPLOYEE:
cout<<"Position:"<<"EMPLOYEE"<<endl; break;
case WORKER:
cout<<"Position:"<<"WORKER"<<endl; break;
}
cout<<"Date of Work:";
DateOfWork.print_ymd();
cout<<"Salary:"<<GetSalary()<<endl;
cout<<"----------"<<endl;
}
#define MAX_EMPLOYEE 100
void main()
{
Employee EmployeeList[MAX_EMPLOYEE];
int EmpCount=0;
Date birthdate,workdate;
birthdate.init(1980,5,3);
workdate.init(1999,7,20);
EmployeeList[EmpCount].Register("项目部","张弓长",birthdate,ENGINEER,workdate);
EmployeeList[EmpCount].SetSalary(1000,200,100,50,20);
EmpCount++;
birthdate.init(1979,4,8);
workdate.init(2002,3,1);
EmployeeList[EmpCount].Register("项目部","李木子",birthdate,MANAGER,workdate);
EmployeeList[Employee].SetSalary(1500,200,150,50,20);
EmpCount++;
for(int i=0;i<EmpCount;i++)
EmployeeList[i].ShowMessage();
}