问题描述】根据下面的主函数,补充定义点类Point及相关函数,主要成员如下: 1、两个double型私有数据成员x,y,分别表示横坐标和纵坐标 2、几个公有成员函数 (1)构造函数:带有默认值,横坐标和纵坐标的默认值均为0; (2)常成员函数GetX(),用于返回横坐标的值; (3)常成员函数GetY(),用于返回纵坐标的值; (4)成员函数change(),用来改变坐标的值,具体值由用户输入 (5)成员函数print(),用来输出普通点的坐标 (6)常成员函数print(),用来输出常对象点的坐标。 3、定义函数area(),用来求形式参数指定的两个点之间的长度为半径所得的圆面积。(PI=3.141592) 【输入形式】 【输出形式】 【样例输入】 56 34 【样例输出】 (2,2) (-5,3) s1=157.08 (56,34)用c++写代码
时间: 2024-02-18 13:06:21 浏览: 68
```cpp
#include<iostream>
#include<cmath>
using namespace std;
const double PI=3.141592;
class Point{
private:
double x,y;
public:
Point(double _x=0,double _y=0):x(_x),y(_y){} // 构造函数
double GetX() const{return x;} // 常成员函数GetX()
double GetY() const{return y;} // 常成员函数GetY()
void change(double _x,double _y){x=_x,y=_y;} // 成员函数change()
void print() const{cout<<"("<<x<<","<<y<<")";} // 成员函数print()
void print() {cout<<"("<<x<<","<<y<<")";} // 常成员函数print()
friend double area(const Point &p1,const Point &p2); // 友元函数area()
};
double area(const Point &p1,const Point &p2){
double r=sqrt(pow(p1.x-p2.x,2)+pow(p1.y-p2.y,2));
double s=PI*r*r;
return s;
}
int main(){
Point p1(2,2),p2(-5,3);
cout<<"p1=";p1.print();cout<<" p2=";p2.print();cout<<endl;
double s1=area(p1,p2);
cout<<"s1="<<s1<<endl;
Point p3;
cout<<"请输入点的坐标:";
double x,y;
cin>>x>>y;
p3.change(x,y);
cout<<"p3=";p3.print();
return 0;
}
```
阅读全文