C++

명품 C++ 4장 7번

NUMERO_K 2018. 10. 30. 00:18

7. 다음과 같이 원을 추상화한 Circle 클래스가 있다. Circle 클래스와 main() 함수를 작성하고 3개의 Circle 객체를 가진 배열을 선언하고, 반지름 값을 입력받고 면적이 100보다 큰 원의 개수를 출력하는 프로그램을 완성하라. Circle 클래스도 같이 완성하라.


소소코드


#include <iostream>
using namespace std;
class Circle {
    int radius; // 원의 반지름 값
public:
    void setRadius(int radius); // 반지름을 설정한다.
    double getArea(); // 면적을 리턴한다.
};
void Circle::setRadius(int radius) {
    this->radius = radius;
}
double Circle::getArea() {
    return 3.14*radius*radius;
}
int main() {
    Circle circle[3];
    int count = 0; // 100보다 큰 원의 개수
    for (int i = 0; i < 3; ++i) {
        cout << "원 " << i + 1 << "의 반지름 값 >> ";
        int r;
        cin >> r;
        circle[i].setRadius(r);
        if (circle[i].getArea() > 100) ++count;
    }
    cout << "면적이 100보다 큰 원은 " << count << "개 입니다." << endl;
}


실행결과



Circle 멤버변수인 radius 에 바로 접근할수 없어서 r 로 입력받고 멤버함수를 통해 반지름을 설정하였습니다.

입력을 받고 바로 면적을 비교 하였습니다.