|
@@ -0,0 +1,83 @@
|
|
|
|
+#include <iostream>
|
|
|
|
+//根据点的定义,写出线段和三角形的定义,并通过主程序进行验证
|
|
|
|
+//mypoint.h
|
|
|
|
+class myPoint
|
|
|
|
+{
|
|
|
|
+public:
|
|
|
|
+ myPoint();
|
|
|
|
+ myPoint(double x, double y);
|
|
|
|
+ double getX();
|
|
|
|
+ double getY();
|
|
|
|
+private:
|
|
|
|
+ double mX,mY;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+#include <iostream> // 用于cout, cin, endl
|
|
|
|
+#include <cmath> // 用于pow, sqrt
|
|
|
|
+
|
|
|
|
+using namespace std;
|
|
|
|
+// Line类的声明
|
|
|
|
+class Line {
|
|
|
|
+private:
|
|
|
|
+ myPoint p1, p2;
|
|
|
|
+
|
|
|
|
+public:
|
|
|
|
+ Line(myPoint a, myPoint b) : p1(a), p2(b) {}
|
|
|
|
+ double GetDistance() {
|
|
|
|
+ return sqrt(pow(p2.getX() - p1.getX(), 2) + pow(p2.getY() - p1.getY(), 2));
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// Triangle类的声明
|
|
|
|
+class Triangle {
|
|
|
|
+private:
|
|
|
|
+ myPoint p1, p2, p3;
|
|
|
|
+ Line l1, l2, l3;
|
|
|
|
+
|
|
|
|
+public:
|
|
|
|
+ Triangle(myPoint a, myPoint b, myPoint c) : p1(a), p2(b), p3(c), l1(a, b), l2(a, c), l3(b, c) {}
|
|
|
|
+ double getGirth() {
|
|
|
|
+ return l1.GetDistance() + l2.GetDistance() + l3.GetDistance();
|
|
|
|
+ }
|
|
|
|
+ double getArea() {
|
|
|
|
+ double s = getGirth() / 2;
|
|
|
|
+ return sqrt(s * (s - l1.GetDistance()) * (s - l2.GetDistance()) * (s - l3.GetDistance()));
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// myPoint类的实现
|
|
|
|
+myPoint::myPoint() : mX(0), mY(0) {}
|
|
|
|
+myPoint::myPoint(double x, double y) : mX(x), mY(y) {}
|
|
|
|
+double myPoint::getX() { return mX; }
|
|
|
|
+double myPoint::getY() { return mY; }
|
|
|
|
+
|
|
|
|
+int main()
|
|
|
|
+{
|
|
|
|
+ double x1, x2, x3, y1, y2, y3;
|
|
|
|
+ cout << "请输入点1的x的值:";
|
|
|
|
+ cin >> x1;
|
|
|
|
+ cout << "请输入点1的y的值:";
|
|
|
|
+ cin >> y1;
|
|
|
|
+ cout << "请输入点2的x的值:";
|
|
|
|
+ cin >> x2;
|
|
|
|
+ cout << "请输入点2的y的值:";
|
|
|
|
+ cin >> y2;
|
|
|
|
+ cout << "请输入点3的x的值:";
|
|
|
|
+ cin >> x3;
|
|
|
|
+ cout << "请输入点3的y的值:";
|
|
|
|
+ cin >> y3;
|
|
|
|
+ cout << "点1的坐标为:(" << x1 << "," << y1 << ")" << endl;
|
|
|
|
+ cout << "点2的坐标为:(" << x2 << "," << y2 << ")" << endl;
|
|
|
|
+ cout << "点3的坐标为:(" << x3 << "," << y3 << ")" << endl;
|
|
|
|
+ myPoint p1(x1, y1), p2(x2, y2), p3(x3, y3);
|
|
|
|
+ Line line1(p1,p2),line2(p1,p3),line3(p2,p3);
|
|
|
|
+ cout<<"边长1的长度:"<<line1.GetDistance()<<endl;
|
|
|
|
+ cout<<"边长2的长度:"<<line2.GetDistance()<<endl;
|
|
|
|
+ cout<<"边长3的长度:"<<line3.GetDistance()<<endl;
|
|
|
|
+ Triangle t(p1, p2, p3);
|
|
|
|
+ cout << "该三角形的周长为:" << t.getGirth() << endl;
|
|
|
|
+ cout << "该三角形的面积为:" << t.getArea() << endl;
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|