과제:
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 |