본문 바로가기
IT/기술(C,C++,JAVA)

c를 활용한 원의 중심과 반지름을 통한 원그리기(넓이 구하기)

by ghostzoominn 2020. 8. 18.

circle.h
0.00MB
circleproject.cpp
0.00MB

쉽게 이해할 수 있는 C++ 원 그리기

 

C++을 활용하여 원의 중심과 반지름을 입력 받아 원의 넓이를 구한다?

오늘은 c++를 활용하여 사용자가 입력한 원의 중심 좌표와 반지름값을 이용하여 원의 넓이를 구하는 방법에 대해 알아보겠습니다.

 

특정 조건을 미리 설정하여 해당 조건에 맞게 원을 그릴 수 있도록 하는 예제와 함께 실습 해 봅시다.

 

1. 소스코드를 어디에 만들고 추가해야 할까?

우선 아래에 있는 코드를 붙혀넣거나 실행 할 위치를 알아야합니다. 

 

화면의 빨간색 박스를 참고하시기 바랍니다.(해당 프로그램은 visual studio 2019버전으로 작성되었습니다.)

소스코드 위치

 

2. 원의 넓이를 입력 받고 출력하는 cpp코드를 알아보자

코드를 알아보기에 앞서, 사용자 입력에 대한 몇가지 제약사항을 설정해 두겠습니다.

 

- 제약사항
 . 원은 (1,1) ~~ (50,50) 사이의 좌표에 모두 그려져야 한다고 가정 .
 . 원의 중점의 좌표는 (2,2) ~ (49,49) 사이에 들어가야 함 .
 . 반지름을 입력 받을 시 좌표에 벗어나지 않는지 체크해야 함 .
 . getArea 함수는 setPoint, setRadius 함수가 모두 잘 입력되었다는 가정을 함.
 . PI = 3.14 라고 가정.

 

아래는 circleproject.cpp 코드입니다.

#include <iostream> 
#include "circle.h" 

using namespace std; 

void main() 
{ 
Circle c; 
int j, k, rad; 
double ans; 

cout << "원의 중점을 입력하세요:"; 
cin >> j; 
cin >> k; 

while (1) 
{ 
if ((2 <= j && j <= 49) && (2 <= k && k <= 49)) 
{ 
c.setPoint(j, k); 
break; 
} 
else 
{ 
cout << "원의 중점을 다시 입력하세요:"; 
cin >> j; 
cin >> k; 
} 
} 

cout << "반지름을 입력하세요:"; 
cin >> rad; 

while (1) 
{ 
if ((j - rad) < 1) 
{ 
cout << "반지름을 다시 입력하세요:"; 
cin >> rad; 
} 
else if ((j + rad) > 50) 
{ 
cout << "반지름을 다시 입력하세요:"; 
cin >> rad; 
} 
else if ((k - rad) < 1) 
{ 
cout << "반지름을 다시 입력하세요:"; 
cin >> rad; 
} 
else if ((k + rad) > 50) 
{ 
cout << "반지름을 다시 입력하세요:"; 
cin >> rad; 
} 
else 
{ 
c.setRadius(rad); 
break; 
} 
} 

ans = c.getArea(); 
cout << "원의 넓이:" << ans << endl; 
}

 

3. 주요 함수를 저장하고 있는 헤더코드는 어떻게 이루어져 있을까?

#pragma once 
#define PI 3.14 
class Circle 
{ 
int a, b; 
int r; 
public: 
void setPoint(int x, int y) //원의 중점을 받아들이는 함수
{ 
a = x; 
b = y; 
} 

void setRadius(int radius) //원의 반지름을 받아들이는 함수
{ 
r = radius; 
} 

double getArea(void) //원의 넓이를 계산하여 리턴하는 함수
{ 
return r*r*PI; 
} 
};

 

4. 원의 좌표와 반지름을 입력받아 원의 넓이를 구하는 프로그램 실행 화면

실행화면

오늘은 사용자의 입력값에 맞춘 원의 넓이를 구하는 코드에 대해 알아봤습니다.

 

위의 코드를 실행하면 사용자에게 제약조건에 맞는 원의 중심, 반지름을 각각 입력받아 해당하는 원의 넓이를 구할 수 있습니다.

 

pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

댓글