C++/열혈 C++ 프로그래밍(윤성우 저)

열혈 C++ 프로그래밍 4-2 문제

꾸준함. 2017. 5. 30. 12:19

/*

다음의 Point 클래스를 기반으로 하여(활용하여) 원을 의미하는 Circle 클래스를 정의하자

class Point

{

private:

        int xpos, ypos;

public:

        void Init(int x, int y)

        {

               xpos = x;

               ypos = y;

        }

        void ShowPointInfo() const

        {

        cout << "[" << xpos << ", " << "]" << endl;

        }

};

 

Circle 객체에는 좌표상의 위치정보(원의 중심좌표) 반지름의 길이 정보를 저장 출력할 있어야 한다.

그리고 여러분이 정의한 Circle 클래스를 기반으로 Ring 클래스도 정의하자.

링은 두개의 원으로 표현 가능하므로(바깥쪽 원과 안쪽 ), 개의 Circle 객체를 기반으로 정의가 가능하다.

다음 main 함수를 기반으로 실행시키자

int main(void)

{

        Ring ring;

        ring.Init(1, 1, 4, 2, 2, 9);

        ring.ShowRingInfo();

        return 0;

}

Init 함수호출을 통해서 전달된 1, 1, 4 안쪽 원의 정보에 해당하며(순서대로 X, Y, 반지름)

이어서 전달된 2, 2, 9 바깥쪽 원의 정보에 해당한다(순서대로 X, Y, 반지름)

*/

#include <iostream>

using namespace std;

 

class Point

{

private:

        int xpos;

        int ypos;

public:

        void Init(int x, int y)

        {

               xpos = x;

               ypos = y;

        }

        int GetX()

        {

               return xpos;

        }

        int GetY()

        {

               return ypos;

        }

        void ShowPointInfo() const

        {

               cout << "[" << xpos << ", " << ypos<< "]" << endl;

        }

};

 

class Circle

{

private:

        Point pos;

        int radius;

public:

        void Init(int x, int y, int r)

        {

               pos.Init(x, y);

               radius = r;

        }

        int GetX()

        {

               return pos.GetX();

        }

        int GetY()

        {

               return pos.GetY();

        }

        int GetR()

        {

               return radius;

        }

};

 

class Ring

{

private:

        Circle c1;

        Circle c2;

public:

        void Init(int x1, int y1, int r1, int x2, int y2, int r2)

        {

               c1.Init(x1, y1, r1);

               c2.Init(x2, y2, r2);

        }

        void ShowRingInfo()

        {

               cout << "Inner Circle Info...." << endl << "radius:" << c1.GetR() << endl;

               cout << "[" << c1.GetX() << ", " << c1.GetY() << "]" << endl;

               cout << "Outter Circle Info...." << endl << "radius:" << c2.GetR() << endl;

               cout << "[" << c2.GetX() << ", " << c2.GetY() << "]" << endl;

        }

};

 

int main(void)

{

        Ring ring;

        ring.Init(1, 1, 4, 2, 2, 9);

        ring.ShowRingInfo();

        return 0;

}



개발 환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~


[참고] 열혈 C++ 프로그래밍 윤성우 저



반응형