Реализовать иерархию классов Фигура-Линия–Квадрат - 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д