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