Создать класс "Четырехугольник" - 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); } }*/ }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д