Вычислить площадь большей окружности, меньшей окружности и кольца, образованного ими - C#
Формулировка задачи:
Помогите! Разработайте программу с использованием класса Ring (кольцо), в котором реализовано вычисление площади большей окружности, меньшей окружности и кольца, образованного ими. Класс должен содержать конструктор по умолчанию и конструктор инициализации.
В программе должно быть объявлено не менее 3-х объектов класса с вызовом для них соответствующих методов.
Решение задачи: «Вычислить площадь большей окружности, меньшей окружности и кольца, образованного ими»
textual
Листинг программы
public class Ring
{
public class RingException : Exception
{
public RingException()
: base("Inner Radius should not exceed Outer one")
{ }
public RingException(string message)
: base(message)
{ }
}
private double innerRadius = 0;
private double outerRadius = 0;
public double InnerRadius
{
get { return innerRadius; }
set
{
if (isValid(value, outerRadius))
innerRadius = value;
else
throw new RingException();
}
}
public double OuterRadius
{
get { return outerRadius; }
set
{
if (isValid(innerRadius, value))
outerRadius = value;
else
throw new RingException();
}
}
public double InnerSquare
{ get { return Math.PI * innerRadius * innerRadius; } }
public double OuterSquare
{ get { return Math.PI * outerRadius * outerRadius; } }
public double Square
{ get { return OuterSquare - InnerSquare; } }
protected virtual bool isValid(double inner, double outer)
{ return inner <= outer; }
public void SetRadius(double inner, double outer)
{
if (isValid(inner, outer))
{
this.innerRadius = inner;
this.outerRadius = outer;
}
else
throw new ArgumentException("Inner Radius should not exceed Outer one");
}
public override string ToString()
{ return String.Format("Inner: {0}; Outer: {1}", this.innerRadius, this.outerRadius); }
public Ring()
{ SetRadius(0, 0); }
public Ring(double r)
{ SetRadius(0, r); }
public Ring(double inner, double outer)
{ SetRadius(inner, outer); }
}