Расчет объёма и площади конуса и усеченного конуса используя классы и ООП - C#

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

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

Добрый день! Есть следующая задача:Создать базовый класс «конус», описав в нём функции ввода параметров, вывода их на экран, нахождения объёма конуса и площади его нижнего основания. Породить от него класс «усеченный конус», переопределив в нем функции ввода и вывода параметров и нахождения объёма фигуры. Имеется код, но он не в ООП. Основная программа:
Листинг программы
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. Console.Write("Введите радиус R= ");
  6. Konus.R = Convert.ToDouble(Console.ReadLine());
  7. Console.Write("Введите высоту H= ");
  8. Konus.H = Convert.ToDouble(Console.ReadLine());
  9. Console.Write("Введите малый радиус усеченного конуса r= ");
  10. Konus.r = Convert.ToDouble(Console.ReadLine());
  11. Console.Write("Введите высоту усеченного конуса h= ");
  12. Konus.h = Convert.ToDouble(Console.ReadLine());
  13. Konus.PloshOsn(Konus.R);
  14. Konus.Objem(Konus.H, Konus.R);
  15. Srezkonus.ObjemSrezKon(Konus.h, Konus.R, Konus.r);
  16. Console.ReadLine();
  17. }
  18. }
Класс конус:
Листинг программы
  1. class Konus
  2. {
  3. public static double R;
  4. public static double H;
  5. public static double r;
  6. public static double h;
  7. public static void PloshOsn(double R)
  8. {
  9. double S = Math.PI * R * R;
  10. Console.WriteLine("Площадь основания конуса = {0}", S);
  11. }
  12. public static void Objem(double H, double R)
  13. {
  14. double V = (Math.PI * R * R * H) / 3;
  15. Console.WriteLine("Объём конуса = {0}", V);
  16. }
  17. }
Класс наследник Усеченный конус:
Листинг программы
  1. class Srezkonus:Konus
  2. {
  3. public static void ObjemSrezKon(double h, double R, double r)
  4. {
  5. double V_SrezanKon = (Math.PI * h * (R * R + R * r + r * r)) / 3;
  6. Console.WriteLine("Объём усеченного конуса = {0}", V_SrezanKon);
  7. }
  8. }
Подскажите, что нужно изменить, чтобы программы была объектно-ориентированной.Заранее спасибо!

Решение задачи: «Расчет объёма и площади конуса и усеченного конуса используя классы и ООП»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication1
  4. {
  5.     class Cone
  6.     {
  7.         public double Radius { get; set; }
  8.         public double Height { get; set; }
  9.        
  10.  
  11.       public Cone(double R, double h)
  12.         {
  13.             Radius = R;
  14.             Height = h;
  15.         }
  16.  
  17.         public virtual double Volume()
  18.         {
  19.             return (Math.PI * Radius * Radius * Height) / 3;
  20.         }
  21.  
  22.         public double Area()
  23.         {
  24.             return Math.PI * Radius * Radius;
  25.         }
  26.  
  27.         public override string ToString()
  28.         {
  29.             return "Радиус основания R = "+ Radius + "\n" + "Высота H = " + Height+ "\n" + "Объем V = " + Volume() + "\n" + "Площадь основания S = " + Area() + "\n";
  30.         }
  31.     }
  32.  
  33.     class Frustum : Cone
  34.     {
  35.         public double radius { get; set; }
  36.  
  37.         public Frustum (double R, double h, double r): base(R, h)
  38.         {
  39.             radius = r;
  40.         }
  41.         public override double Volume()
  42.         {
  43.             return (Math.PI * Height * (Radius * Radius + Radius * radius + radius * radius)) / 3;
  44.         }
  45.         public override string ToString()
  46.         {
  47.             return base.ToString() + "Радиус вершины r = " + radius + "\n";
  48.         }
  49.  
  50.     }
  51.  
  52.     class Program
  53.     {
  54.         static void Main(string[] args)
  55.         {
  56.             Cone[] cones = new Cone[4];
  57.             cones[0] = new Cone(3.2, 4.3);
  58.             cones[1] = new Cone(2.1, 4.8);
  59.             cones[2] = new Frustum(3.2, 3.5, 1.2);
  60.             cones[3] = new Frustum(4.8, 2.1, 2.1);
  61.  
  62.             foreach(Cone c in cones)
  63.             {
  64.                 Console.WriteLine(c.ToString());
  65.             }
  66.             Console.Read();
  67.         }
  68.     }
  69. }

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


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

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

15   голосов , оценка 4.2 из 5

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

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

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