Разработать программу с использованием класса Ball - C#
Формулировка задачи:
Разработайте программу с использованием класса Ball (шар), в котором реализованы вычисления площади поверхности (
S [] <d^2
) и объема шара (V [] 4/3 <R^3
). Класс должен содержать конструктор по умолчанию и конструктор инициализации.Решение задачи: «Разработать программу с использованием класса Ball»
textual
Листинг программы
using System;
namespace Surface_area
{
class Program
{
static void Main(string[] args)
{
// Шапка
Console.ForegroundColor = ConsoleColor.Black;
Console.BackgroundColor = ConsoleColor.Gray;
Console.WriteLine("=======================================");
Console.WriteLine("==[Вычисление площади и объёма сферы]==");
Console.WriteLine("=======================================\n\n");
Console.ForegroundColor = ConsoleColor.Gray;
Console.BackgroundColor = ConsoleColor.Black;
bool programActivity = true; // для цикла
while (programActivity) // пока в цикле, приложение работает
{
Ball ball; // экземпляр класса Ball
bool dataValid = false; // Валидны ли введённые данные
double radius = 0;
// Проверка валидности введённых данных
while (!dataValid)
{
Console.WriteLine("Введите радиус заданной сферы ('0' для значения по умолчанию):");
string cache = Console.ReadLine();
dataValid = double.TryParse(cache, out radius);
}
if (radius == 0)
ball = new Ball(); // конструктор по умолчанию
else
ball = new Ball(radius); // конструктор с инициализацией
Console.WriteLine("\n\tРадиус: {0}\n\tПлощадь сферы: {1}\n\tОбъём сферы: {2}",
ball.GetRadius(),
ball.GetArea(),
ball.GetVolume());
Console.WriteLine("\nНажмите Enter для продолжения\nвведите любой символ для выхода");
if (Console.ReadLine() != "")
programActivity = false;
}
}
}
class Ball
{
private const double pi = Math.PI; // число pi
private double radius; // радиус
/// <summary>
/// Конструктор по умолчанию
/// </summary>
public Ball()
{
radius = 1;
}
/// <summary>
/// Констуктор для инциализации
/// </summary>
/// <param name="_radius">Радиус сферы</param>
public Ball(double _radius)
{
if (_radius != 0.0)
radius = _radius;
else
radius = 1;
}
/// <summary>
/// Возвращает площадь поверхности сферы
/// </summary>
/// <returns>S сферы</returns>
public double GetArea()
{
return 4 * pi * radius * radius;
}
/// <summary>
/// Возвращает объём сферы
/// </summary>
/// <returns>V сферы</returns>
public double GetVolume()
{
return (4 * pi * Math.Pow(radius, 3)) / 3;
}
/// <summary>
/// Возвращает радиус сферы
/// </summary>
/// <returns>R сферы</returns>
public double GetRadius()
{
return radius;
}
}
}