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