• 包含


    题目描述:

      设计用于表示点、线和三角形的类:Point、Line和Triangle,要求如下:

    (1)Point类中包含两个用于表示点的X和Y坐标分量的公有数据成员,能够根据指定的X和Y坐标构建点对象。

    (2)Line类中包含两个用于表示线段端点的私有对象成员,能够根据指定的两点构造线段对象(要求构造函数的参数为常引用),具有计算线段长度的公有成员函数。

    (3)Triangle类中包含三个用于表示三角顶点的私有对象成员,能够根据指定的三点构造三角形对象(要求构造函数的参数为常引用),具有计算三角形周长和面积的公有成员函数。

    在main函数中:

      根据输入的三个点的坐标构建三角形对象,并输出的三角形的周长和面积。

    输入: 依次输入三个点的坐标:x1,y1,x2,y2,x3,y3

    输出: 输出三个点所构成的三角形的周长和面积

    输入样例: 0 0 3 0 0 4

    输出样例: 12 6

     1 #include <iostream>
     2 #include <cmath>
     3 
     4 using namespace std;
     5 
     6 class Point
     7 {
     8 public:
     9     double x;
    10     double y;
    11     Point(double _x=0,double _y=0):x(_x),y(_y){}
    12 };
    13 
    14 class Line
    15 {
    16 private:
    17     Point pStart, pEnd;
    18 public:
    19     Line(const Point &start, const Point &end):pStart(start),pEnd(end){}
    20     double Length()
    21     {
    22         double len;
    23         len=sqrt((pEnd.x-pStart.x)*(pEnd.x-pStart.x)+(pEnd.y-pStart.y)*(pEnd.y-pStart.y));
    24         return len;
    25     }
    26 };
    27 
    28 class Triangle
    29 {
    30 private:
    31     Point pA,pB,pC;
    32 public:
    33     Triangle(const Point &a,const Point &b,const Point &c):pA(a),pB(b),pC(c){}
    34     double Perimeter();
    35     double Area();
    36 };
    37 
    38 double Triangle::Perimeter()
    39 {
    40     Line lab(pA,pB),lbc(pB,pC),lac(pA,pC);
    41     return lab.Length()+ lbc.Length()+ lac.Length();
    42 }
    43 
    44 double Triangle::Area()
    45 {
    46     Line lab(pA,pB),lbc(pB,pC),lac(pA,pC);
    47     double x=0.5*(lab.Length()+lbc.Length()+lac.Length());
    48     return sqrt(x*(x-lab.Length())*(x-lbc.Length())*(x-lac.Length()));
    49 }
    50 
    51 int main()
    52 {
    53     double x1,y1;
    54     double x2,y2;
    55     double x3,y3;
    56     cin>>x1>>y1>>x2>>y2>>x3>>y3;
    57     Triangle obj(Point(x1,y1),Point(x2,y2),Point(x3,y3));
    58     cout<<obj.Perimeter()<<" "<<obj.Area();
    59     return 0;
    60 }
    Aim: Buaa
  • 相关阅读:
    Gin 使用 websocket
    7天用Go从零实现Web框架Gee教程
    docker-compose 搭建 Redis Sentinel 测试环境
    关闭禁用 Redis 危险命令
    Redis Cluster 设置密码
    使用 twine 上传自己的 python 包到 pypi
    Redis 5.0.7 讲解,单机、集群模式搭建
    Redis 单机模式,主从模式,哨兵模式(sentinel),集群模式(cluster),第三方模式优缺点分析
    django 重写 mysql 连接库实现连接池
    编译安装httpd-2.4
  • 原文地址:https://www.cnblogs.com/calm-blogme/p/12749945.html
Copyright © 2020-2023  润新知