새로새록
[c++]7. 두 좌표 사이의 거리 본문
좌표값 두 개를 입력받고 두 좌표 사이의 거리를 출력하세요.
1) 좌표값은 초기화시에 값을 따로 주지 않으면 x = 0, y = 0으로 초기화합니다.
2) “좌표 – 좌표” 연산자를 Operator overloading을 활용하여 선언하세요.
·(x1, y1) - (x2, y2) = (x1 – x2, y1 – y2)를 클래스 내에서 구현합니다.
3) “좌표* 좌표” 연산자를 Operator overloading을 활용하여 선언하세요.
·(x1, y1)* (x2, y2) = (x1 * x2, y1 * y2)를 클래스 내에서 구현합니다.
4) 2번과 3번을 활용하여 두 좌표 사이의 거리를 구하세요.
5) 제곱근 사용을 위해 #include <cmath>를 선언해야합니다.
int main() {
int x1 = 0, y1 = 0, x2 = 0, y2 = 0;
Point* pP1, * pP2, * pP3;
cout << "첫번째 좌표[x1, y1]를 입력하세요 : ";
cin >> x1 >> y1;
cout << "두번째 좌표[x1, y1]를 입력하세요 : ";
cin >> x2 >> y2;
pP1 = new Point(x1, y1);
pP2 = new Point(x2, y2);
pP3 = new Point(); //x,y가 0으로 초기화
/* 아래의 방식으로도 x, y값 설정이 가능해야합니다. */
//pP1->setPoint(x1, y1);
//pP1->setPoint(x2, y2);
/***********************************************/
*pP3 = (*pP1 - *pP2) * (*pP1 - *pP2);
/* pP3을 활용하여 거리값을 구하세요 */
cout << "두 좌표 사이의 길이는 " << /* 결과 값 */ << "입니다" << endl;;
return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
class Point {
int x, y;
public:
Point():x(0),y(0){}
Point(int _x, int _y) :x(_x), y(_y) {}
Point operator-(const Point& pt) {
Point res(this->x - pt.x, this->y - pt.y);
return res;
}
Point operator*(const Point& pt2) {
Point result(this->x * pt2.x, this->y * pt2.y);
return result;
}
void setPoint(int _x, int _y) {
x = _x;
y = _y;
}
Point operator=(const Point& pt) {
this->x = pt.x;
this->y = pt.y;
return (*this);
}
int getX() const { return x; }
int getY() const { return y; }
};
int main() {
int x1 = 0, y1 = 0, x2 = 0, y2 = 0;
Point *pP1, *pP2, *pP3;
cout << "첫번째 좌표[x1, y1]를 입력하세요 : ";
cin >> x1 >> y1;
cout << "두번째 좌표[x1, y1]를 입력하세요 : ";
cin >> x2 >> y2;
pP1 = new Point(x1, y1);
pP2 = new Point(x2, y2);
pP3 = new Point();
*pP3 = (*pP1 - *pP2) * (*pP1 - *pP2);
cout << "두 좌표 사이의 길이는 " << sqrt((*pP3).getX()+ (*pP3).getY()) << "입니다" << endl;;
return 0;
}
'소프트웨어융합 > 경희대 c++ 과제' 카테고리의 다른 글
[c++]7. 계좌 정리 (0) | 2020.07.16 |
---|---|
[c++]7. 전 재산 계좌 송금 (0) | 2020.07.16 |
[c++]6. 학사관리 (0) | 2020.07.16 |
[c++]6. 재귀함수와 피보나치 (0) | 2020.07.16 |
[c++]6. class :학번 이름 전공 입출력 (0) | 2020.07.16 |