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

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

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

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

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

textual
Листинг программы
using System;
 
namespace ConsoleApplication1
{
    class Cone
    {
        public double Radius { get; set; }
        public double Height { get; set; }
        
 
      public Cone(double R, double h)
        {
            Radius = R;
            Height = h;
        }
 
        public virtual double Volume()
        {
            return (Math.PI * Radius * Radius * Height) / 3;
        }
 
        public double Area()
        {
            return Math.PI * Radius * Radius;
        }
 
        public override string ToString()
        {
            return "Радиус основания R = "+ Radius + "\n" + "Высота H = " + Height+ "\n" + "Объем V = " + Volume() + "\n" + "Площадь основания S = " + Area() + "\n";
        }
    }
 
    class Frustum : Cone
    {
        public double radius { get; set; }
 
        public Frustum (double R, double h, double r): base(R, h)
        {
            radius = r;
        }
        public override double Volume()
        {
            return (Math.PI * Height * (Radius * Radius + Radius * radius + radius * radius)) / 3;
        }
        public override string ToString()
        {
            return base.ToString() + "Радиус вершины r = " + radius + "\n";
        }
 
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Cone[] cones = new Cone[4];
            cones[0] = new Cone(3.2, 4.3);
            cones[1] = new Cone(2.1, 4.8);
            cones[2] = new Frustum(3.2, 3.5, 1.2);
            cones[3] = new Frustum(4.8, 2.1, 2.1);
 
            foreach(Cone c in cones)
            {
                Console.WriteLine(c.ToString());
            }
            Console.Read();
        }
    }
}

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


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

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

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