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

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

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

Задание: Реализовать иерархию классов Фигура-Линия–Квадрат (данные-координаты). Класс “Фигура” - абстрактный. В каждом производном классе присутствует - конструктор инициализации, методы ввода-вывода данных, метод вычисления площади (если это возможно) и объема (если это возможно) фигуры. Вопрос - почему я не получаю результат? Как исправить?
Листинг программы
  1. namespace lab7
  2. {
  3. class Program
  4. {
  5. public abstract class Figyra // Создаем абстрактный класс
  6. {
  7. public int X1, Y1, X2, Y2;
  8. public Figyra()
  9. { }
  10. public Figyra(int x1, int y1, int x2, int y2)
  11. {
  12. this.X1 = x1;
  13. this.Y1 = y1;
  14. this.X2 = x2;
  15. this.Y2 = y2;
  16. }
  17. public abstract string vivod(); //абстрактный формат строки для вывода результата который будет переопределен в других классах
  18. public abstract void raschet(); //абстрактный метод расчета по формуле, который будет переопределен в других классах
  19. }
  20. public class Line : Figyra
  21. {
  22. public Line(int x1, int y1, int x2, int y2) : base(x1, y1, x2, y2)
  23. { }
  24. public override string vivod() // Переопределяем метод vivod()
  25. {
  26. return (string.Format("У линии нет площади."));
  27. }
  28. public override void raschet() // Переопределяем метод raschet()
  29. {
  30. int d = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1); //расчитываем длинну стороны
  31. }
  32. }
  33. public class Kvadrat : Figyra
  34. {
  35. public Kvadrat(int x1, int y1, int x2, int y2) : base (x1,y1,x2,y2)
  36. { }
  37. public override void raschet() // Переопределяем метод raschet()
  38. {
  39. int d = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1);
  40. int S = d * d;
  41. }
  42. public override string vivod() // Переопределяем метод vivod()
  43. {
  44. return (string.Format("Площадь квадрата равна: "));
  45. }
  46. }
  47. static void Main(string[] args)
  48. {
  49. Line us1 = new Line(1, 2, 3, 4);
  50. us1.raschet();
  51. Console.WriteLine(us1.vivod());
  52. Kvadrat us2 = new Kvadrat(1, 2, 3, 4);
  53. us2.raschet();
  54. Console.WriteLine(us2.vivod());
  55. Console.ReadLine();
  56. }
  57. }
  58. }

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

textual
Листинг программы
  1. namespace lab7
  2. {
  3.     class Program
  4.     {
  5.         public abstract class Figyra  // Создаем абстрактный класс
  6.         {
  7.             public int X1, Y1, X2, Y2;
  8.             public Figyra()
  9.             { }
  10.             public Figyra(int x1, int y1, int x2, int y2)
  11.             {
  12.                 this.X1 = x1;
  13.                 this.Y1 = y1;
  14.                 this.X2 = x2;
  15.                 this.Y2 = y2;
  16.             }
  17.             public abstract string vivod();   //абстрактный формат строки для вывода результата который будет переопределен в других классах
  18.             public abstract int raschet();  //абстрактный метод расчета по формуле, который будет переопределен в других классах
  19.         }
  20.         public class Line : Figyra
  21.         {
  22.             public Line(int x1, int y1, int x2, int y2) : base(x1, y1, x2, y2)
  23.             { }
  24.             public override string vivod()   // Переопределяем метод vivod()
  25.             {
  26.                 return (string.Format("Длина стороны равна: "));
  27.             }
  28.             public override int raschet()   // Переопределяем метод raschet()
  29.             {
  30.                 return (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1);      //расчитываем длинну стороны        
  31.             }
  32.         }
  33.         public class Kvadrat : Figyra
  34.         {
  35.             public Kvadrat(int x1, int y1, int x2, int y2) : base (x1,y1,x2,y2)
  36.             { }
  37.            
  38.             public override int raschet()   // Переопределяем метод raschet()
  39.             {
  40.                 int d = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1);
  41.                 return d * d;
  42.             }
  43.             public override string vivod()   // Переопределяем метод vivod()
  44.             {
  45.                 return (string.Format("Площадь квадрата равна: "));
  46.             }
  47.         }
  48.         static void Main(string[] args)
  49.         {
  50.             Line us1 = new Line(1, 2, 3, 4);
  51.             Console.WriteLine(us1.vivod() +  us1.raschet() );
  52.             Kvadrat us2 = new Kvadrat(1, 2, 3, 4);
  53.             Console.WriteLine(us2.vivod() +  us2.raschet() );
  54.             Console.ReadLine();
  55.         }
  56.     }
  57. }

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


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

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

13   голосов , оценка 4.077 из 5

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

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

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