Реализовать иерархию классов Фигура-Линия–Квадрат - C#

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

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

Задание: Реализовать иерархию классов Фигура-Линия–Квадрат (данные-координаты). Класс “Фигура” - абстрактный. В каждом производном классе присутствует - конструктор инициализации, методы ввода-вывода данных, метод вычисления площади (если это возможно) и объема (если это возможно) фигуры. Вопрос - почему я не получаю результат? Как исправить?
namespace lab7
{
    class Program
    {
        public abstract class Figyra  // Создаем абстрактный класс
        {
            public int X1, Y1, X2, Y2;
            public Figyra()
            { }
            public Figyra(int x1, int y1, int x2, int y2)
            {
                this.X1 = x1;
                this.Y1 = y1;
                this.X2 = x2;
                this.Y2 = y2;
            }
            public abstract string vivod();   //абстрактный формат строки для вывода результата который будет переопределен в других классах
            public abstract void raschet();  //абстрактный метод расчета по формуле, который будет переопределен в других классах
        }
        public class Line : Figyra
        {
            public Line(int x1, int y1, int x2, int y2) : base(x1, y1, x2, y2)
            { }
            public override string vivod()   // Переопределяем метод vivod()
            {
                return (string.Format("У линии нет площади."));
            }
            public override void raschet()   // Переопределяем метод raschet()
            {
                int d = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1);      //расчитываем длинну стороны         
            }
        }
        public class Kvadrat : Figyra
        {
            public Kvadrat(int x1, int y1, int x2, int y2) : base (x1,y1,x2,y2)
            { }
            
            public override void raschet()   // Переопределяем метод raschet()
            {
                int d = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1);
                int S = d * d;
            }
            public override string vivod()   // Переопределяем метод vivod()
            {
                return (string.Format("Площадь квадрата равна: "));
            }
        }
        static void Main(string[] args)
        {
            Line us1 = new Line(1, 2, 3, 4);
            us1.raschet();
            Console.WriteLine(us1.vivod());
            Kvadrat us2 = new Kvadrat(1, 2, 3, 4);
            us2.raschet();
            Console.WriteLine(us2.vivod());
            Console.ReadLine();
        }
    }
}

Решение задачи: «Реализовать иерархию классов Фигура-Линия–Квадрат»

textual
Листинг программы
namespace lab7
{
    class Program
    {
        public abstract class Figyra  // Создаем абстрактный класс
        {
            public int X1, Y1, X2, Y2;
            public Figyra()
            { }
            public Figyra(int x1, int y1, int x2, int y2)
            {
                this.X1 = x1;
                this.Y1 = y1;
                this.X2 = x2;
                this.Y2 = y2;
            }
            public abstract string vivod();   //абстрактный формат строки для вывода результата который будет переопределен в других классах
            public abstract int raschet();  //абстрактный метод расчета по формуле, который будет переопределен в других классах
        }
        public class Line : Figyra
        {
            public Line(int x1, int y1, int x2, int y2) : base(x1, y1, x2, y2)
            { }
            public override string vivod()   // Переопределяем метод vivod()
            {
                return (string.Format("Длина стороны равна: "));
            }
            public override int raschet()   // Переопределяем метод raschet()
            {
                return (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1);      //расчитываем длинну стороны         
            }
        }
        public class Kvadrat : Figyra
        {
            public Kvadrat(int x1, int y1, int x2, int y2) : base (x1,y1,x2,y2)
            { }
            
            public override int raschet()   // Переопределяем метод raschet()
            {
                int d = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1);
                return d * d;
            }
            public override string vivod()   // Переопределяем метод vivod()
            {
                return (string.Format("Площадь квадрата равна: "));
            }
        }
        static void Main(string[] args)
        {
            Line us1 = new Line(1, 2, 3, 4);
            Console.WriteLine(us1.vivod() +  us1.raschet() );
            Kvadrat us2 = new Kvadrat(1, 2, 3, 4);
            Console.WriteLine(us2.vivod() +  us2.raschet() );
            Console.ReadLine();
        }
    }
}

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


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

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

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