Программа на c++

Всем привет, помогите исправить программу на C++. Вот текст задания: Создать класс четырехугольник, члены класса - координаты 4-х точек. Предусмотреть в классе методы вычисления и вывода сведений о фигуре –длины сторон, диагоналей, периметр, площадь. Создать производный класс – равнобочная трапеция, предусмотреть в классе проверку, является ли фигура равнобочной трапецией. Написать программу, демонстрирующую работу с классом: дано N четырехугольников и M трапеций, найти максимальную площадь четырехугольников и количество четырехугольников, имеющих максимальную площадь, и трапецию с наименьшей диагональю. Код на четырёхугольник, а нужно чтоб получилась равнобочная трапеция.

#include <iostream>

#include <math.h>

using namespace std;
class freg {
  private:
    float x1, x2, x3, x4; // координаты вершин
  float y1, y2, y3, y4; // четырехугольника
  public:
    float s, dia, p;
  float a, b, c, d;
  int k;
  freg(float x1, float x2, float x3, float x4, float y1, float y2, float y3, float y4) {
    freg::x1 = x1;
    freg::x2 = x2;
    freg::x3 = x3;
    freg::x4 = x4;
    freg::y1 = y1;
    freg::y2 = y2;
    freg::y3 = y3;
    freg::y4 = y4;
  } // конструктор с параметрами
  freg() // конструктор без параметров
  {
    x1 = 0;
    x2 = 0;
    x3 = 0;
    x4 = 0;
    y1 = 0;
    y2 = 0;
    y3 = 0;
    y4 = 0;
  }
  public:
    void setxy() //установка координат вершин
  {
    k = 0;
    cout << "Введите координаты точки 1: ";
    cin >> x1 >> y1;
    k++;
    cout << "Введите координаты точки 2: ";
    cin >> x2 >> y2;
    k++;
    cout << "Введите координаты точки 3: ";
    cin >> x3 >> y3;
    k++;
    cout << "Введите координаты точки 4: ";
    cin >> x4 >> y4;
    k++;
  }
  float dlstra() // вычисление длины стороны a
  {
    if ((x2 != x1) || (y2 != y1)) {
      a = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
      cout << " a=" << a << endl;
    } else a = 0;
    return a;
  }
  float dlstrb() // вычисление длины стороны b
  {
    if ((x2 != x3) || (y2 != y3)) {
      b = sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2));
      cout << " b=" << b << endl;
    } else b = 0;
    return b;
  }
  float dlstrc() // вычисление длины стороны c
  {
    if ((x3 != x4) || (y3 != y4)) {
      c = sqrt((x3 - x4) * (x3 - x4) + (y3 - y4) * (y3 - y4));
      cout << " c=" << c << endl;
    } else c = 0;
    return c;
  }
  float dlstrd() // вычисление длины стороны d
  {
    if ((x4 != x1) || (y4 != y1)) {
      d = sqrt((x4 - x1) * (x4 - x1) + (y4 - y1) * (y4 - y1));
      cout << " d=" << d << endl;
    } else d = 0;
    return d;
  }
  float diag() // вычисление длины диагонали для расчета площади четырехугольника
  {
    dia = 0;
    if ((x2 != x4) || (y2 != y4))
      dia = sqrt((x2 - x4) * (x2 - x4) + (y2 - y4) * (y2 - y4));
    return dia;
  }
  float getstra() {
    return a;
  }
  float getstrb() {
    return b;
  }
  float getstrc() {
    return c;
  }
  float getstrd() {
    return d;
  }
  float prm() {
    p = a + b + c + d;
    return p;
  }
  // расчет площади четырехугольника, состоящего из двух треугольников
  float sfr(float a1, float b1, float c1, float d1, float da) {
    float p1;
    p1 = (a1 + d1 + da) / 2;
    p1 = p1 * (p1 - a1) * (p1 - da) * (p1 - d1); // формула Герона
    s = sqrt(p1);
    p1 = (c1 + b1 + da) / 2;
    p1 = p1 * (p1 - c1) * (p1 - da) * (p1 - b1);
    s = sqrt(p1) + s;
    return s;
  }
};
class kvadr: public freg {
    private: int pr;
    public: kvadr(): freg() {
      a = 0;
      b = 0;
      c = 0;
      d = 0;
    }
    int prov() // проверка на квадрат (все стороны равны)
    {
      if ((a == c) && (b == d) && (a == b)) pr = 1;
      else pr = 0;
      return pr;
    };
    int main() {
      freg fr1(1, 1, 3, 3, 1, 3, 3, 1);
      float pr1 = 0, s = 0, da = 0;
      float a, b, c, d;
      setlocale(LC_ALL, "rus");
      a = fr1.dlstra();
      b = fr1.dlstrb();
      c = fr1.dlstrc();
      d = fr1.dlstrd();
      pr1 = fr1.prm();
      cout << " периметр= " << pr1 << endl;
      da = fr1.diag();
      cout << " диагональ= " << da << endl;
      s = fr1.sfr(a, b, c, d, da);
      cout << " площадь= " << s << endl;
      kvadr kv1;
      kv1.setxy(); // занесение координат параллелограмма
      a = kv1.dlstra();
      b = kv1.dlstrb();
      c = kv1.dlstrc();
      d = kv1.dlstrd();
      pr1 = kv1.prm();
      cout << " периметр= " << pr1 << endl;
      da = fr1.diag();
      cout << " диагональ= " << da << endl;
      if (kv1.prov() == 1) cout << " kvadrat" << endl;
      else cout << " freg" << endl;
      return 0;
    }

Заранее огромное спасибо.


Ответы (0 шт):