C++的问题!!!急求

2025-05-12 06:47:04
推荐回答(1个)
回答1:

//懒得调整格式了,你自己整理吧
#include
#include
#include
using namespace std;
class Employee
{
public:
Employee(string wN, string name, double bs, double rds);
~Employee();
public:
double CalTotalSalary();
void DisplayEmployeeInfo();
void DisplayTotalNumber();
public:
// 获取对应的属性信息
const string WorkNum() const;
const string Name() const;
const double BasicSalary() const;
const double Rewards() const;
const double Salary() const;
// 设置属性
void WorkNum(string& input);
void Name(string& input);
void BasicSalary(double input);
void Rewards(double input);
void Salary(double input);
private:
string workNum;
string name;
double basicSalary;
double rewards;
double totalSalary;
static int totalNum;
};
int Employee::totalNum = 0;
Employee::Employee(string wN, string Name, double bs, double rds)
:
workNum(wN),
name(Name),
basicSalary(bs),
rewards(rds)
{
++totalNum;
CalTotalSalary();
}
Employee::~Employee()
{
totalNum--;
cout << "Current Employees: " << totalNum << endl;
}
double Employee::CalTotalSalary()
{
totalSalary = basicSalary + rewards;
return totalSalary;
}
void Employee::DisplayEmployeeInfo()
{
cout << name << ":\t" << endl;
cout << "Basic Salary: " << basicSalary << endl;
cout << "Rewards: " << rewards << endl;
cout << "Total Salary: " << totalSalary << endl;
}
void Employee::DisplayTotalNumber()
{
cout << "Total Employees: " << totalNum << endl;
}
// 获取
const string Employee::WorkNum() const
{
return workNum;
}
const string Employee::Name() const
{
return name;
}
const double Employee::BasicSalary() const
{
return basicSalary;
}
const double Employee::Rewards() const
{
return rewards;
}
const double Employee::Salary() const
{
return totalSalary;
}
// 设置
void Employee::WorkNum(string& input)
{
workNum = input;
}
void Employee::Name(string& input)
{
name = input;
}
void Employee::BasicSalary(double input)
{
basicSalary = input;
}
void Employee::Rewards(double input)
{
rewards = input;
}
void Employee::Salary(double input)
{
totalSalary = input;
}
// 类Arraylist
class Arraylist
{
public:
Arraylist(){}
~Arraylist();
void add(Employee*);
private:
listEmps;
};
Arraylist::~Arraylist()
{
list::iterator it = Emps.begin();
while ( it != Emps.end() )
{
Employee* tmp = *(it);
cout << "deleting " << tmp->WorkNum() << ", " << tmp->Name() << endl;
delete tmp, tmp = NULL;
Emps.erase(it++);
}
}
void Arraylist::add(Employee* pEmp)
{
if ( pEmp )
{
Emps.push_back(pEmp);
cout << "adding " << pEmp->WorkNum() << ", " << pEmp->Name() << endl;
pEmp->DisplayTotalNumber();
}
}
int main(int argc, char* argv[])
{
Arraylistemployees;
cout << "---------------------------" << endl;
Employee *pLM = new Employee("00001", "LiMing", 3000.52, 500.0);//创建李明
pLM->DisplayEmployeeInfo();//显示李明员工信息
pLM->Rewards(520.5);//调整奖金
pLM->CalTotalSalary();//重新计算奖金
pLM->DisplayEmployeeInfo();//显示李明员工信息
pLM->DisplayTotalNumber();//显示有多少个员工
employees.add(pLM);//加入队列
cout << "---------------------------" << endl;
pLM = new Employee("00002", "ZhangBo", 2000.0, 500.0);//创建张波
pLM->DisplayEmployeeInfo();//显示张波员工信息
pLM->Rewards(520.5);//调整奖金
pLM->CalTotalSalary();//重新计算奖金
pLM->DisplayEmployeeInfo();//显示张波员工信息
pLM->DisplayTotalNumber();//显示有多少个员工
employees.add(pLM);//加入队列
cout << "---------------------------" << endl;
return 0;
}