[문제]
아래의 실행결과가 나오도록 클래스와 main함수를 구성하라.
조건1) 정규직 직원에 대한 PermanentWorker 클래스를 정의할 것
조건2) 기능의 처리를 실제로 담당하는 EmployeeHandler 컨트롤 클래스를 정의하고 아래의 기능의 함수를 추가할 것
- 새로운 직원정보의 등록: AddEmployee
- 모든 직원의 이번 달 급여정보 출력: ShowAllSalaryInfo
- 이번 달 급여의 총액 출력: ShowTotalSalary
[실행결과]
name: KIM
salary: 1000
name: LEE
salay: 1500
name: JUN
salay: 2000
salary sum: 4500
[코드]
#include<iostream>
using namespace std;
class PermanentWorker
{
private:
char name[100];
int salary;
public:
PermanentWorker(const char* name, int money)
:salary(money)
{
strcpy(this->name, name);
}
int GetPay() const
{
return salary;
}
void ShowSalaryInfo()
{
cout << "name: " << name << endl;
cout << "salary: " << GetPay() << endl << endl;
}
};
class EmployeeHandler
{
private:
PermanentWorker* empList[50];
int empNum;
public:
EmployeeHandler() :empNum(0)
{ }
void AddEmployee(PermanentWorker* emp)
{
empList[empNum++] = emp;
}
void ShowAllSalaryInfo() const
{
for (int i = 0;i < empNum;i++)
empList[i]->ShowSalaryInfo();
}
void ShowTotalSalary() const
{
int sum = 0;
for (int i = 0;i < empNum;i++)
sum += empList[i]->GetPay();
cout << "salary sum: " << sum << endl;
}
~EmployeeHandler()
{
for (int i = 0;i < empNum;i++)
delete empList[i];
}
};
int main(void)
{
EmployeeHandler handler;
handler.AddEmployee(new PermanentWorker("KIM", 1000));
handler.AddEmployee(new PermanentWorker("LEE", 1500));
handler.AddEmployee(new PermanentWorker("JUN", 2000));
handler.ShowAllSalaryInfo();
handler.ShowTotalSalary();
return 0;
}
<참고>
윤성우의 열혈 C++ 프로그래밍
'C++ 언어 > 연습문제' 카테고리의 다른 글
C++언어 연습문제32 (0) | 2022.11.11 |
---|---|
C++언어 연습문제31 (0) | 2022.11.11 |
C++ 언어 연습문제29 (0) | 2022.11.10 |
C++ 언어 연습문제28 (0) | 2022.11.02 |
C++ 언어 연습문제27 (0) | 2022.11.01 |