(已知:线段中点坐标公式为:(x,y)=(( x1+ x2)/2,(y1+y2)/2),线段长度公式为:L= sqrt((x1-x2)^2-(y1-y2))

#include<iostream>
#include<math.h>
using namespace std;
class Dot {   //定义基类:点
public:
float x,y;
Dot(float a=0,float b=0) {
x=a;
y=b;
}
void Show() {
cout<<"x="<<x<<'\t'<<"y="<<y<<endl;
}
};
class Line:public Dot {     //定义派生类线
Dot d1,d2;                  //定义基类对象成员d1,d2为派生类的数据成员
public:
Line(float X1,float Y1,float X2,float Y2):d1(X1,Y1),d2(X2,Y2) {                                     //定义line类的构造函数
x=(X1+X2)/2;
y=(Y1+Y2)/2;
}                                     //在构造函数中实现求线段的中点坐标
void Showl(void) {
cout<<"Dot1:  ";
d1.Show();
cout<<"Dot2:  ";
d2.Show();
cout<<"Length="<<sqrt(pow((d1.x-d2.x),2)+pow((d1.y-d2.y),2))<<endl;//求线段的长度
cout<<"Center:  "<<"x="<<x<<'\t'<<"y="<<y<<endl;
}
};
int main() {
float a,b;
cout<<"Input Dot1: \n";
cin>>a>>b;
Dot dot1(a,b);
cout<<"Input Dot2: \n";
cin>>a>>b;
Dot dot2(a,b);
Line line (dot1.x,dot1.y,dot2.x,dot2.y);                              //创建线对象,并利用构造函数初始化
line.Showl();
return 0;
}

注意函数初始化表的灵活应用哦,搞清楚概念,此题就迎刃而解了.

猜你喜欢

转载自blog.csdn.net/qq_15020543/article/details/80229580