목차
■ 문제인식
■ 문제 접근방법 및 분석
■ 소스코드 및 주석
■ 결과화면
■ 느낀점
■ 문제 접근방법 및 분석
■ 소스코드 및 주석
■ 결과화면
■ 느낀점
본문내용
ww-aa) * (zz-bb);
}
else if(cc>xx && zz>bb && xx>aa && bb>yy && ww>cc && dd>bb) // 겹치는 부분의 사각형이 (x,b)와 (c,z)를 시작점과 끝점으로 가질때
{
cout<<"전체 좌표는 ("<
return (cc-xx) * (zz-bb);
}
else if(xx>aa && zz>bb && cc>ww && dd>zz) //두번째 입력한 사각형이 첫번째 입력한 사각형의 내부에 있을때
{
cout<<"전체 좌표는 ("<
return (ww-xx) * (zz-yy);
}
else if(aa>xx && bb>yy && ww>cc && zz>dd) //첫번째 입력한 사각형이 두번째 입력한 사각형의 내부에 있을때
{
cout<<"전체 좌표는 ("<
return (cc-aa) * (dd-bb);
}
else //겹치는 부분이 없을때
{
cout<<"겹친부분이 없습니다."<
return 0;
}
}
void main()
{
int a, b, c, d;
int *point_a, *point_b,*point_c,*point_d; //포인터형 변수 선언
cout<<"**첫번째 사각형 입력**"<
cout << "사각형의 초기점을 입력하세요. "<
cout<<"a값입력:";
cin>> a;
point_a=&a;
cout<<"b값입력:";
cin>> b;
point_b=&b;
cout << "사각형의 마지막점을 입력하세요. "<
cout<<"c값입력:";
cin>> c;
point_c=&c;
cout<<"d값입력:";
cin>> d;
point_d=&d;
rectangle_1 rec_1(*point_a, *point_b, *point_c, *point_d); //rectangle_1 정의
cout<<"가로길이:"<
cout<<"세로길이:"<
cout<<"사각형 전체 좌표는 ("<<*point_a<<","<<*point_b<<")"<<" ("<<*point_a<<","<<*point_d<<")"<< " ("<<*point_c<<","<<*point_b<<")"<<" ("<<*point_c<<","<<*point_d<<") 입니다"<
cout<< "사각형의 면적: "<
int x, y, w, z;
int *point_x, *point_y,*point_w,*point_z; //포인터형 변수 선언
cout<
cout << "사각형의 초기점을 입력하세요. "<
cout<<"x값입력:";
cin>> x;
point_x=&x;
cout<<"y값입력:";
cin>> y;
point_y=&y;
cout << "사각형의 마지막점을 입력하세요. "<
cout<<"w값입력:";
cin>> w;
point_w=&w;
cout<<"z값입력:";
cin>> z;
point_z=&z;
rectangle_2 rec_2(*point_x, *point_y, *point_w, *point_z); //rectangle_2 클래스 정의
cout<<"가로길이:"<
cout<<"세로길이:"<
cout<<"사각형 전체 좌표는 ("<<*point_x<<","<<*point_y<<")"<<" ("<<*point_x<<","<<*point_z<<")"<< " ("<<*point_w<<","<<*point_y<<")"<<" ("<<*point_w<<","<<*point_z<<") 입니다"<
cout<< "사각형의 면적: "<
overlap over(*point_a, *point_b, *point_c, *point_d, *point_x,*point_y, *point_w,*point_z); //overlap 클래스 정의
cout<
cout<<"겹치는부분의 면적은 "<
}
■ 결과화면
1. 두 개의 사각형이 일부분만 겹쳐져 있을 때
2. 하나의 사각형이 다른 사각형의 내부에 있을 때
3. 서로 겹친 부분이 없을 때
■느낀점
이번과제의 핵심은 클래스와 포인터형변수를 이용하는 것이었다. 이전 과제들은 소스코드가 길지 않아 클래스를 이용하지 않았었는데, 이번과제에서 오랜만에 클래스를 이용하니 뭔가 새로움이 느껴졌다. 오랫동안 클래스를 이용하지 않은터라 C++책을 찾아보며 클래스의 이용법을 다시금 익힐수 있었다. 문제분석 내용 중에 두 개의 사각형이 겹치는 경우의 수를 7가지로 나누었는데, 실제로 모든 경우의 수를 계산해보니 약 20가지가 나왔었다. 하지만 이번 과제의 핵심은 클래스와 포인터형 변수를 이용하는 것이어서 모든 경우의 수를 나타내지 않고 대표적인 경우 7가지만 나타내었다. 이러한 7가지로 일부를 제외하고는 대부분의 겹치는 면적을 구할수 있었다.
이번 과제를 하면서 하는 내내 뭔가 많이 부족하다는 느낌이 들었다. 앞으로 지금보다 더 어려운 과제가 나올것으로 예상되는데, 조금더 열심히 공부하여 허전한 느낌이 들지 않는, 누구보다 뛰어난 프로그래밍을 하도록 노력해야 겠다.
}
else if(cc>xx && zz>bb && xx>aa && bb>yy && ww>cc && dd>bb) // 겹치는 부분의 사각형이 (x,b)와 (c,z)를 시작점과 끝점으로 가질때
{
cout<<"전체 좌표는 ("<
}
else if(xx>aa && zz>bb && cc>ww && dd>zz) //두번째 입력한 사각형이 첫번째 입력한 사각형의 내부에 있을때
{
cout<<"전체 좌표는 ("<
}
else if(aa>xx && bb>yy && ww>cc && zz>dd) //첫번째 입력한 사각형이 두번째 입력한 사각형의 내부에 있을때
{
cout<<"전체 좌표는 ("<
}
else //겹치는 부분이 없을때
{
cout<<"겹친부분이 없습니다."<
}
}
void main()
{
int a, b, c, d;
int *point_a, *point_b,*point_c,*point_d; //포인터형 변수 선언
cout<<"**첫번째 사각형 입력**"<
cin>> a;
point_a=&a;
cout<<"b값입력:";
cin>> b;
point_b=&b;
cout << "사각형의 마지막점을 입력하세요. "<
cin>> c;
point_c=&c;
cout<<"d값입력:";
cin>> d;
point_d=&d;
rectangle_1 rec_1(*point_a, *point_b, *point_c, *point_d); //rectangle_1 정의
cout<<"가로길이:"<
int *point_x, *point_y,*point_w,*point_z; //포인터형 변수 선언
cout<
cin>> x;
point_x=&x;
cout<<"y값입력:";
cin>> y;
point_y=&y;
cout << "사각형의 마지막점을 입력하세요. "<
cin>> w;
point_w=&w;
cout<<"z값입력:";
cin>> z;
point_z=&z;
rectangle_2 rec_2(*point_x, *point_y, *point_w, *point_z); //rectangle_2 클래스 정의
cout<<"가로길이:"<
cout<
■ 결과화면
1. 두 개의 사각형이 일부분만 겹쳐져 있을 때
2. 하나의 사각형이 다른 사각형의 내부에 있을 때
3. 서로 겹친 부분이 없을 때
■느낀점
이번과제의 핵심은 클래스와 포인터형변수를 이용하는 것이었다. 이전 과제들은 소스코드가 길지 않아 클래스를 이용하지 않았었는데, 이번과제에서 오랜만에 클래스를 이용하니 뭔가 새로움이 느껴졌다. 오랫동안 클래스를 이용하지 않은터라 C++책을 찾아보며 클래스의 이용법을 다시금 익힐수 있었다. 문제분석 내용 중에 두 개의 사각형이 겹치는 경우의 수를 7가지로 나누었는데, 실제로 모든 경우의 수를 계산해보니 약 20가지가 나왔었다. 하지만 이번 과제의 핵심은 클래스와 포인터형 변수를 이용하는 것이어서 모든 경우의 수를 나타내지 않고 대표적인 경우 7가지만 나타내었다. 이러한 7가지로 일부를 제외하고는 대부분의 겹치는 면적을 구할수 있었다.
이번 과제를 하면서 하는 내내 뭔가 많이 부족하다는 느낌이 들었다. 앞으로 지금보다 더 어려운 과제가 나올것으로 예상되는데, 조금더 열심히 공부하여 허전한 느낌이 들지 않는, 누구보다 뛰어난 프로그래밍을 하도록 노력해야 겠다.
추천자료
제27회 워드프로세서 2급 필기
수와 관련된 이야기11
제27회 워드프로세서 2급 필기 기출문제 A형(2002.3.10)
el lissitzky의 생애
[자바 프로그래밍] 파워포인트, 그림판
다이어그램 조사
[컴퓨터그래픽][CG][포토샵][툴박스][해상도][이미지표현]컴퓨터그래픽(CG) 고찰과 포토샵의 ...
[보육학개론] 보육 경험이 영유아의 발달에 미치는 영향 - 보육 경험과 신체 발달, 보육 경험...
[수학의이해 A형] 1. 유클리드의 원론에 대해서 논하여라 [수학의 이해]
칠교판으로 즐기는 다각형 탐구 - 탱그램
우리가 생활하는 일상생활 속에서 수학과 관련된 개념을 찾고 그 개념과 관련된 활동에 대한 ...
만3세 11월 관찰일지
[컴퓨터의 이해 공통] 1. 아래의 문제에 대하여 교재에서 관련내용을 확인한 후 인터넷이나 ...