2、设计一个点类 point,该类具有两个实数坐标。希望主程序使用这个类完成下述功能: (1)主程序为类 point 申请 10 个连续存储空间。 (2)要求调用一个函数 Set 从键盘输入 10个对象的属性,并顺序存入申请的内存中。 (3)要求调用一个函数 Display()显示 10 个对象的值。 (4)要求调用一个函数 Lenth(),计算将这些点连成一条折线时,这条折线的长度。 (5)程序结束时,删除申请的内存。 (6)獠示析构对象(动态对象或堆对象)的执行顺序。 设计这个类和各个函数并验证运算结果的正确性。
时间: 2023-05-30 08:02:53 浏览: 139
```cpp
#include<iostream>
#include<cmath>
using namespace std;
class Point{
private:
double x,y;
public:
Point(double x=0,double y=0):x(x),y(y){}//构造函数
void Set(){
cin>>x>>y;
}
void Display(){
cout<<"("<<x<<","<<y<<") ";
}
double Length(Point p){
return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
}
~Point(){
cout<<"("<<x<<","<<y<<")"<<endl;
}
};
int main(){
Point *p=new Point[10];//申请10个连续存储空间
cout<<"请输入10个点的坐标:"<<endl;
for(int i=0;i<10;i++){
p[i].Set();
}
cout<<"10个点的坐标为:"<<endl;
for(int i=0;i<10;i++){
p[i].Display();
}
cout<<endl;
double length=0;
for(int i=0;i<9;i++){
length+=p[i].Length(p[i+1]);//计算折线长度
}
cout<<"这条折线的长度为:"<<length<<endl;
delete[] p;//释放内存
return 0;
}
```
阅读全文