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

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

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

Создать класс четырехугольник, члены класса - координаты 4-х точек. Предусмотреть в классе вычисления и вывода сведений о фигуре - длины сторон, диагоналей, периметр,площадь. Создать производный класс прямоугольник, предусмотреть в классе проверку, является ли фигура прямоугольником. Написать программу, демонстрирующую работу с классом: Дано К четырехугольников и Т прямоугольников, найти кол-во четырехугольников, у которых площадь меньше средней площади четырехугольников и среднюю площадь прямоугольников.
class Geviert
    {
        protected double x1, x2, y1, y2;
            public Geviert(double x1, double x2, double y1, double y2)
            {
                this.x1 = x1;
                this.x2 = x2;
                this.y1 = y1;
                this.y2 = y2;
            }
            public double Perimeter() // Периметр
            {
                return ((x1 * x2) + (x2 * y1) + (y1 * y2) + (y2 * x1));
            }
            public double Gipfel() //Высота
            {
                return (x1 * y2);
            }
            public double Area() // Площадь
            {
                return ((y1 * y2) * (x1 * y2));
            }
    }
       class Pryamougolnik: Geviert
       {
 
       }
и все, дальше ступор и не знаю что писать, так как на парах отсутствовала по болезни, то тему я не поняла, а сама разобраться не могу.

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

textual
Листинг программы
using System;
 
namespace array
{
     Point
    {
        /* Задание 1. Создать класс Point, содержащий следующие члены класса:
        1. Поля:
            • int x, y;
        2. Конструкторы, позволяющие создать экземпляр класса:
            • с нулевыми координатами;
            • с заданными координатами.
        3. Методы, позволяющие:
            • вывести координаты точки на экран;
            • рассчитать расстояние от начала координат до точки;
            • переместить точку на плоскости на вектор (a, b).
        4. Свойство:
            • позволяющее получить-установить координаты точки (доступное для чтения и записи);
            • позволяющее умножить координаты точки на скаляр (доступное только для записи).
        5. Индексатор, позволяющий по индексу 0 обращаться к полю x, по индексу 1 – к
        полю y, при других значениях индекса выдается сообщение об ошибке.
        6. Перегрузку:
            • операции ++ (--): одновременно увеличивает (уменьшает) значение полей х и у на 1;
            • констант true и false: обращение к экземпляру класса дает значение true, если
            значение полей x и у совпадает, иначе false;
            • операции бинарный +: одновременно добавляет к полям х и у значение скаляра.
        Продемонстрировать работу класса. */
        // Закрытые поля х и у
        private double x, y;
        // Закрытое поле value для переопределения метода Equals
        int value = 0;
        // Конструктор 1 - задающий нулевые координаты
        public Point() : this(0, 0) { }
        // Конструктор 2 - инициализирующий закрытые поля х и уclass
        public Point(double x, double y)
        {
            this.x = x;
            this.y = y;
        }
        // Метод Show выводит координаты точек на экран
        public void Show()
        {
            Console.WriteLine("Координаты точки: х = {0}, у = {1}", x, y);
            Console.WriteLine();
        }
        // Метод Distancе рассчитывает расстояние между точками
        public double GetDistance(Point p)
        {
            return Math.Sqrt(Math.Pow(p.x - x, 2) + Math.Pow(p.y - y, 2));
        }
        // Метод Transfer перемещения точки на вектор (а,b)
        public void Translate(double a, double b)
        {
            x =+ a;
            y =+ b;
        }
        // Свойство позволяющее получить-установить координаты точки х
        public double X
        {
            get { return x; }
            set { x = value; }
        }
        // Свойство позволяющее получить-установить координаты точки у
        public double Y
        {
            get { return y; }
            set { y = value; }
        }
        // Свойство позволяющее умножить координаты на скаляр
        public double Scalar
        {
            set { x *= value; y *= value; }
        }
        // Индексатор для обращения свойствам
        public double this[int i]
        {
            get
            {
                if (i == 0) return X;
                else if (i == 1) return Y;
                else return 0;
            }
            set
            {
                if (i == 0) X = value;
                else if (i == 1) Y = value;
            }
        }
        // Перегрузка бинарного оператор " * "
        public static Point operator * (Point p, double scalar)
        {
            return new Point(p.x * scalar, p.y * scalar);
        }
        // Перегрузка бинарного оператор " + "
        public static Point operator + (Point p, double scalar)
        {
            return new Point(p.x + scalar, p.y + scalar);
        }
        // Перегрузка бинарного оператор " - "
        public static Point operator - (Point p, double scalar)
        {
            return new Point(p.x - scalar, p.y - scalar);
        }
        // Перегрузка унарного оператор " ++ "
        public static Point operator ++ (Point p)
        {
            return new Point(p.x + 1, p.y + 1);
        }
        // Перегрузка унарного оператор " -- "
        public static Point operator -- (Point p)
        {
            return new Point(p.x - 1, p.y - 1);
        }
        // Возвращает значение true, если поле x = y, иначе false
        public static bool operator == (Point x, Point y)
        {
            return (x.X == y.X) && (x.Y == y.Y);
        }
        // Возвращает значение true, если поле x != y, иначе false
        public static bool operator != (Point x, Point y)
        {
            return (x.X != y.X) || (x.Y != y.Y);
        }
        // Перегрузка унарной константы true
        public static bool operator true (Point p)
        {
            return (p.X == p.Y);
        }
        // Перегрузка унарной константы false
        public static bool operator false(Point p)
        {
            return (p.X != p.Y);
        }
        // Перегрузка метода Equals
        public override bool Equals(object obj)
        {
            if (!(obj is Point)) return false;
            return value == ((Point)obj).value;
        }
        // Перегрузка метода GetHashCode
        public override int GetHashCode()
        {
            return value;
        }
    }
    /* Класс для работы с экземпляром класса Point
    class Program
    {
        static void Main()
        {
            Point one = new Point(); // Вызов конструктора нулевых координат
            Point two = new Point(5, 5); // Вызов конструктора произвольных координат
            double scalar = 5; // значение скаляра
            one.Show();
            two.Show();
            double res = one.GetDistance(two);
            Console.WriteLine("Расстояние между точками: {0}", res);
            Console.WriteLine();
            two.Translate(7, 8);
            Console.WriteLine("Перемещение точки на вектор (а, b): ");
            two.Show();
            Console.WriteLine("Умножение координат на скаляр: ");
            two.Scalar = scalar;
            two.Show();
            Console.WriteLine("Изменение координат на +1: ");
            two++;
            two.Show();
            Console.WriteLine("Изменение координат на -1: ");
            two--;
            two.Show();
            if (two) Console.WriteLine("Точки х и у равны");
            else Console.WriteLine("Точки х и у не равны");
            Console.WriteLine();
            Console.WriteLine("Добавление к полям х и у значение скаляра:");
            two = two + scalar;
            two.Show();
            //выход из программы
            Console.WriteLine();
            Console.WriteLine("Нажмите любую клавишу для выхода...");
            Console.ReadKey(true);
        }
    }*/
}

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


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

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

10   голосов , оценка 4.2 из 5
Похожие ответы