본문 바로가기

C++ 언어/연습문제

C++언어 연습문제30

[문제]

아래의 실행결과가 나오도록 클래스와 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