Minwoo Dev.
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch03-2 : 클래스의 정의 문제풀이 본문
728x90
반응형
SMALL
문제 1
계산기 기능의 Calculator 클래스를 정의해 보자. 기본적으로 지니는 기능은 덧셈, 뺄셈, 곱셈, 그리고 나눗셈이며, 연산을 할 때마다 어떠한 연산을 몇 번 수행했는지 기록되어야 한다. 아래의 main 함수와 실행의 예에 부합하는 Calculator 클래스를 정의하면 된다.
단, 멤버변수는 private로, 멤버함수는 public으로 선언하자. 이렇게 선언하는 이유에 대해서는 다음 Chapter에서 자세히 언급한다.
int main(void)
{
Calculator Cal;
cal.Init();
cout << "3.2 + 2.4 = " << cal.Add(3.2, 2.4) << endl;
cout << "3.5 / 1.7 = " << cal.Div(3.5, 1.7) << endl;
cout << "2.2 - 1.5 = " << cal.Min(2.2, 1.5) << endl;
cout << "4.9 / 1.2 = " << cal.Div(4.9, 1.2) << endl;
cal.ShowOpCount();
return 0;
}
실행의 예
3.2 + 2.4 = 5.6
2.5 / 1.7 = 2.05882
2.2 - 1.5 = 0.7
4.9 / 1.2 = 4.08333
덧셈 : 1 뺄셈 : 1 곱셈 : 0 나눗셈 : 2
정답
#include <iostream>
using namespace std;
class Calculator
{
private:
int AddNum;
int MinNum;
int DivNum;
int MulNum;
public:
void Init()
{
AddNum = 0;
MinNum = 0;
DivNum = 0;
MulNum = 0;
}
double Add(double v1, double v2)
{
AddNum++;
return v1 + v2;
}
double Min(double v1, double v2)
{
MinNum++;
return v1 - v2;
}
double Div(double v1, double v2)
{
DivNum++;
return v1 / v2;
}
double Mul(double v1, double v2)
{
MulNum++;
return v1 * v2;
}
void ShowOpCount()
{
cout << "덧셈 : " << AddNum << " 뺄셈 : " << MinNum << " 곱셈 : " << MulNum << " 나눗셈 : " << DivNum << endl;
}
};
int main(void)
{
Calculator cal;
cal.Init();
cout << "3.2 + 2.4 = " << cal.Add(3.2, 2.4) << endl;
cout << "3.5 / 1.7 = " << cal.Div(3.5, 1.7) << endl;
cout << "2.2 - 1.5 = " << cal.Min(2.2, 1.5) << endl;
cout << "4.9 / 1.2 = " << cal.Div(4.9, 1.2) << endl;
cal.ShowOpCount();
return 0;
}
결과
문제 2
문자열 정보를 내부에 저장하는 Printer라는 이름의 클래스를 디자인하자. 이 클래스의 두 가지 기능은 다음과 같다.
- 문자열 저장
- 문자열 출력
아래의 main 함수와 실행의 예에 부합하는 Printer 클래스를 정의하되, 이번에도 역시 멤버변수는 private으로, 멤버함수는 public으로 선언하자.
int main(void)
{
Printer pnt;
pnt.SetString("Hello world!");
pnt.ShowString();
pnt.SetString("I love C++");
pnt.ShowString();
return 0;
}
실행의 예
Hello world!
I love C++
정답
#include <iostream>
#include <cstring>
using namespace std;
class Printer
{
private:
char chars[30];
public:
void SetString(char *s)
{
strcpy(chars, s);
}
void ShowString()
{
cout << chars << endl;
}
};
int main(void)
{
Printer pnt;
pnt.SetString("Hello world!");
pnt.ShowString();
pnt.SetString("I love C++");
pnt.ShowString();
return 0;
}
결과
728x90
반응형
LIST
'C++' 카테고리의 다른 글
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch04-2 : 다양한 클래스의 정의 문제풀이 (1) | 2024.03.09 |
---|---|
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch04-1 : 정보 은닉과 const 문제풀이 (0) | 2024.03.09 |
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch03-1 : 구조체 내에 함수 정의하기 문제풀이 (0) | 2024.03.05 |
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch02-4 : C++의 표준함수 호출 문제풀이 (0) | 2024.03.04 |
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch02-3 : 구조체에 대한 new & delete 연산 문제풀이 (0) | 2024.03.04 |