STUDY/Assignment

객체 지향 과제 rep4

da1seun9 2020. 4. 25. 17:32

 

과제: 

2개의 헤더 파일 작성(원의 면적을 계산하는 프로그램 ,원의 둘레를 계산하는 프로그램) 

메인 프로그램 작성

     - PI(3.141592)const로 메인 프로그램에서 선언

     - 원의 반지름을 입력받아 면적과 원의 둘레를 계산하여 출력(무한 루프)

     - 입력한 반지름이 0일 때 프로그램 종료

 

먼저 헤더파일부터 만들었다.

double area(int r) {
	double area = r*r*PI;
	cout << " 반지름" << r << "cm인 원의 면적은 " << area << "cm2입니다. "<<endl;
	return area;
}

먼저 원의 면적을 구해주고 문자열과 값을 출력해주는 역할을 하는 헤더파일이다.

double circumference(int r) {
	double circumference = 2 * r*PI;
	cout << " 반지름" << r << "cm인 원의 둘레는 " << circumference << "cm입니다. "<<endl<<endl<<endl;
	return circumference;
}

두번째는 원의 둘레를 구해주고 문자열과 값을 출력해주는 역할을 하는 헤더파일이다.

그다음에 메인 프로그램을 만들었다.

#include<iostream>
#include<iomanip>
using namespace std;
const double PI=3.141592;
#include "area.h"
#include "circumference.h"

void main() {
	while (1)
	{
		int r;
		cout << ">>반지름을 입력하세요 (종료 = 0) ? ";
		cin >> r;
		if (r == 0) {
			break;
		}
		else {
			area(r);
			circumference(r);
		}
	}
}

메인 프로그램이다.

간단하게 무한루프를 써서 반지름을 입력하고 변수 r에 저장한다음에 r값을 각 헤더파일로 보낸다.

그 이후에 헤더파일에서 값을 받아서 연산을 한 후 문자열과 결과값을 출력한다.

 

여기서 몇몇 분들은 

#include<iostream>
#include<iomanip>
using namespace std;
const double PI=3.141592;
#include "area.h"
#include "circumference.h"

메인 프로그램의 초반에 왜 저렇게 안예쁘게 코딩하는지 궁금해 하시는 분들이 있을 수 있다.

예시로 C언어에서 내가 임의의 함수를 만들었을때  함수는 호출되기 이전에 미리 정의되어 있어야 한다

 

그러나 main함수의 앞에 삽입되면 미리 정의된것으로 간주하여 따로 함수 선언을 안해도 된다.

헤더의 경우에도 이와 비슷하다.

 

area.h 와 circumference.h 파일을 보면 PI가 선언이 되어 있지 않고 cout와 endl앞에 std::가 붙어있지도 않다

이럼에도 정상실행되는 이유는

헤더파일을 선언하기 이전에 이미 PI와 using namespace std가 정의되어 있기 때문이다

 

위의 사진처럼 코딩했을때 이런 에러가 뜬다.

 

이 점을 유의해서 코딩을 하여 실행하면

결과가 잘 나온다

이상!

'STUDY > Assignment' 카테고리의 다른 글

객체 지향 과제 rep7  (0) 2020.05.30
객체 지향 과제 rep6  (0) 2020.05.18
보안 자료 구조 과제  (0) 2020.05.04
객체지향 프로그래밍 중간고사 실습대비 연습문제  (0) 2020.04.24
객체 지향 과제 rep3  (0) 2020.04.18