Создать класс "Четырехугольник" - C#

Узнай цену своей работы

Формулировка задачи:

Создать класс четырехугольник, члены класса - координаты 4-х точек. Предусмотреть в классе вычисления и вывода сведений о фигуре - длины сторон, диагоналей, периметр,площадь. Создать производный класс прямоугольник, предусмотреть в классе проверку, является ли фигура прямоугольником. Написать программу, демонстрирующую работу с классом: Дано К четырехугольников и Т прямоугольников, найти кол-во четырехугольников, у которых площадь меньше средней площади четырехугольников и среднюю площадь прямоугольников.
Листинг программы
  1. class Geviert
  2. {
  3. protected double x1, x2, y1, y2;
  4. public Geviert(double x1, double x2, double y1, double y2)
  5. {
  6. this.x1 = x1;
  7. this.x2 = x2;
  8. this.y1 = y1;
  9. this.y2 = y2;
  10. }
  11. public double Perimeter() // Периметр
  12. {
  13. return ((x1 * x2) + (x2 * y1) + (y1 * y2) + (y2 * x1));
  14. }
  15. public double Gipfel() //Высота
  16. {
  17. return (x1 * y2);
  18. }
  19. public double Area() // Площадь
  20. {
  21. return ((y1 * y2) * (x1 * y2));
  22. }
  23. }
  24. class Pryamougolnik: Geviert
  25. {
  26. }
и все, дальше ступор и не знаю что писать, так как на парах отсутствовала по болезни, то тему я не поняла, а сама разобраться не могу.

Решение задачи: «Создать класс "Четырехугольник"»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace array
  4. {
  5.      Point
  6.     {
  7.         /* Задание 1. Создать класс Point, содержащий следующие члены класса:
  8.         1. Поля:
  9.             • int x, y;
  10.         2. Конструкторы, позволяющие создать экземпляр класса:
  11.             • с нулевыми координатами;
  12.             • с заданными координатами.
  13.         3. Методы, позволяющие:
  14.             • вывести координаты точки на экран;
  15.             • рассчитать расстояние от начала координат до точки;
  16.             • переместить точку на плоскости на вектор (a, b).
  17.         4. Свойство:
  18.             • позволяющее получить-установить координаты точки (доступное для чтения и записи);
  19.             • позволяющее умножить координаты точки на скаляр (доступное только для записи).
  20.         5. Индексатор, позволяющий по индексу 0 обращаться к полю x, по индексу 1 – к
  21.         полю y, при других значениях индекса выдается сообщение об ошибке.
  22.         6. Перегрузку:
  23.             • операции ++ (--): одновременно увеличивает (уменьшает) значение полей х и у на 1;
  24.             • констант true и false: обращение к экземпляру класса дает значение true, если
  25.             значение полей x и у совпадает, иначе false;
  26.             • операции бинарный +: одновременно добавляет к полям х и у значение скаляра.
  27.         Продемонстрировать работу класса. */
  28.         // Закрытые поля х и у
  29.         private double x, y;
  30.         // Закрытое поле value для переопределения метода Equals
  31.         int value = 0;
  32.         // Конструктор 1 - задающий нулевые координаты
  33.         public Point() : this(0, 0) { }
  34.         // Конструктор 2 - инициализирующий закрытые поля х и уclass
  35.         public Point(double x, double y)
  36.         {
  37.             this.x = x;
  38.             this.y = y;
  39.         }
  40.         // Метод Show выводит координаты точек на экран
  41.         public void Show()
  42.         {
  43.             Console.WriteLine("Координаты точки: х = {0}, у = {1}", x, y);
  44.             Console.WriteLine();
  45.         }
  46.         // Метод Distancе рассчитывает расстояние между точками
  47.         public double GetDistance(Point p)
  48.         {
  49.             return Math.Sqrt(Math.Pow(p.x - x, 2) + Math.Pow(p.y - y, 2));
  50.         }
  51.         // Метод Transfer перемещения точки на вектор (а,b)
  52.         public void Translate(double a, double b)
  53.         {
  54.             x =+ a;
  55.             y =+ b;
  56.         }
  57.         // Свойство позволяющее получить-установить координаты точки х
  58.         public double X
  59.         {
  60.             get { return x; }
  61.             set { x = value; }
  62.         }
  63.         // Свойство позволяющее получить-установить координаты точки у
  64.         public double Y
  65.         {
  66.             get { return y; }
  67.             set { y = value; }
  68.         }
  69.         // Свойство позволяющее умножить координаты на скаляр
  70.         public double Scalar
  71.         {
  72.             set { x *= value; y *= value; }
  73.         }
  74.         // Индексатор для обращения свойствам
  75.         public double this[int i]
  76.         {
  77.             get
  78.             {
  79.                 if (i == 0) return X;
  80.                 else if (i == 1) return Y;
  81.                 else return 0;
  82.             }
  83.             set
  84.             {
  85.                 if (i == 0) X = value;
  86.                 else if (i == 1) Y = value;
  87.             }
  88.         }
  89.         // Перегрузка бинарного оператор " * "
  90.         public static Point operator * (Point p, double scalar)
  91.         {
  92.             return new Point(p.x * scalar, p.y * scalar);
  93.         }
  94.         // Перегрузка бинарного оператор " + "
  95.         public static Point operator + (Point p, double scalar)
  96.         {
  97.             return new Point(p.x + scalar, p.y + scalar);
  98.         }
  99.         // Перегрузка бинарного оператор " - "
  100.         public static Point operator - (Point p, double scalar)
  101.         {
  102.             return new Point(p.x - scalar, p.y - scalar);
  103.         }
  104.         // Перегрузка унарного оператор " ++ "
  105.         public static Point operator ++ (Point p)
  106.         {
  107.             return new Point(p.x + 1, p.y + 1);
  108.         }
  109.         // Перегрузка унарного оператор " -- "
  110.         public static Point operator -- (Point p)
  111.         {
  112.             return new Point(p.x - 1, p.y - 1);
  113.         }
  114.         // Возвращает значение true, если поле x = y, иначе false
  115.         public static bool operator == (Point x, Point y)
  116.         {
  117.             return (x.X == y.X) && (x.Y == y.Y);
  118.         }
  119.         // Возвращает значение true, если поле x != y, иначе false
  120.         public static bool operator != (Point x, Point y)
  121.         {
  122.             return (x.X != y.X) || (x.Y != y.Y);
  123.         }
  124.         // Перегрузка унарной константы true
  125.         public static bool operator true (Point p)
  126.         {
  127.             return (p.X == p.Y);
  128.         }
  129.         // Перегрузка унарной константы false
  130.         public static bool operator false(Point p)
  131.         {
  132.             return (p.X != p.Y);
  133.         }
  134.         // Перегрузка метода Equals
  135.         public override bool Equals(object obj)
  136.         {
  137.             if (!(obj is Point)) return false;
  138.             return value == ((Point)obj).value;
  139.         }
  140.         // Перегрузка метода GetHashCode
  141.         public override int GetHashCode()
  142.         {
  143.             return value;
  144.         }
  145.     }
  146.     /* Класс для работы с экземпляром класса Point
  147.     class Program
  148.     {
  149.         static void Main()
  150.         {
  151.             Point one = new Point(); // Вызов конструктора нулевых координат
  152.             Point two = new Point(5, 5); // Вызов конструктора произвольных координат
  153.             double scalar = 5; // значение скаляра
  154.             one.Show();
  155.             two.Show();
  156.             double res = one.GetDistance(two);
  157.             Console.WriteLine("Расстояние между точками: {0}", res);
  158.             Console.WriteLine();
  159.             two.Translate(7, 8);
  160.             Console.WriteLine("Перемещение точки на вектор (а, b): ");
  161.             two.Show();
  162.             Console.WriteLine("Умножение координат на скаляр: ");
  163.             two.Scalar = scalar;
  164.             two.Show();
  165.             Console.WriteLine("Изменение координат на +1: ");
  166.             two++;
  167.             two.Show();
  168.             Console.WriteLine("Изменение координат на -1: ");
  169.             two--;
  170.             two.Show();
  171.             if (two) Console.WriteLine("Точки х и у равны");
  172.             else Console.WriteLine("Точки х и у не равны");
  173.             Console.WriteLine();
  174.             Console.WriteLine("Добавление к полям х и у значение скаляра:");
  175.             two = two + scalar;
  176.             two.Show();
  177.             //выход из программы
  178.             Console.WriteLine();
  179.             Console.WriteLine("Нажмите любую клавишу для выхода...");
  180.             Console.ReadKey(true);
  181.         }
  182.     }*/
  183. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы