【问题描述】 编写一个程序,提示用户输入两个点的坐标,计算两个点的相应坐标的差值赋予新点。然后显示这三个点,利用重载流插入操作符“<<”输出点。 【输入形式】 4个整数 【输出形式】 3个点 【样例输入】 1 2 3 4 【样例输出】 (1,2) (3,4) (-2,-2) 【样例说明】 【评分标准】 #include<iostream> using namespace std; class Coordinate; ostream &operator << (ostream&, const Coordinate&); class Coordinate { public: Coordinate(){x_coordinate=0;y_coordinate=0;} Coordinate(int x,int y ){x_coordinate=x;y_coordinate=y;} Coordinate operator-(Coordinate &c2); friend ostream& operator <<(ostream&,Coordinate&); friend istream& operator >>(ostream&,Coordinate&); int x_coordinate; int y_coordinate; }; Coordinate Coordinate::operator-(Coordinate &c2) { } ostream & operator <<(ostream& output,Coordinate& c) { } int main() { Coordinate c1,c2,c3; cin>>c1.x_coordinate>>c1.y_coordinate; cin>>c2.x_coordinate>>c2.y_coordinate; cout<<c1; cout<<c2; cout<<c3; return 0; }
时间: 2024-02-02 21:03:13 浏览: 29
以下是参考代码:
```
#include<iostream>
using namespace std;
class Coordinate;
ostream &operator <<(ostream&, const Coordinate&);
class Coordinate {
public:
Coordinate(){x_coordinate=0;y_coordinate=0;}
Coordinate(int x, int y){x_coordinate=x;y_coordinate=y;}
Coordinate operator-(Coordinate &c2);
friend ostream& operator <<(ostream&, const Coordinate&);
friend istream& operator >>(istream&, Coordinate&);
int x_coordinate;
int y_coordinate;
};
Coordinate Coordinate::operator-(Coordinate &c2){
Coordinate c(x_coordinate-c2.x_coordinate, y_coordinate-c2.y_coordinate);
return c;
}
ostream &operator <<(ostream& output, const Coordinate& c) {
output << "(" << c.x_coordinate << "," << c.y_coordinate << ") ";
return output;
}
istream &operator >>(istream& input, Coordinate& c) {
input >> c.x_coordinate >> c.y_coordinate;
return input;
}
int main() {
Coordinate c1, c2, c3;
cin >> c1 >> c2;
c3 = c1 - c2;
cout << c1 << c2 << c3;
return 0;
}
```
程序的思路是,首先定义一个 `Coordinate` 类,表示一个坐标点,其中包括两个整数表示横纵坐标。在类中重载了减法运算符,用来计算两个点坐标之间的差值,得到一个新的点坐标。同时还重载了流插入运算符 `<<`,用于输出坐标点。
在 `main` 函数中,先定义三个 `Coordinate` 类型的变量 `c1`、`c2`、`c3`,然后通过重载了输入运算符 `>>`,从标准输入中读入两个坐标点的坐标,并将它们赋值给 `c1`、`c2`。然后通过重载了减法运算符 `-`,求出 `c1` 和 `c2` 坐标之间的差值,赋值给 `c3`。最后通过重载了输出运算符 `<<`,将三个坐标点输出到标准输出中。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)