사각형
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

■ 문제인식

■ 문제 접근방법 및 분석

■ 소스코드 및 주석

■ 결과화면

■ 느낀점

본문내용

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가지로 일부를 제외하고는 대부분의 겹치는 면적을 구할수 있었다.
이번 과제를 하면서 하는 내내 뭔가 많이 부족하다는 느낌이 들었다. 앞으로 지금보다 더 어려운 과제가 나올것으로 예상되는데, 조금더 열심히 공부하여 허전한 느낌이 들지 않는, 누구보다 뛰어난 프로그래밍을 하도록 노력해야 겠다.

키워드

c++,   자료구조,   사각형,   도형
  • 가격2,000
  • 페이지수11페이지
  • 등록일2011.12.19
  • 저작시기2011.11
  • 파일형식한글(hwp)
  • 자료번호#721820
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니