97 lines
1.7 KiB
C#
97 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Task1
|
|
{
|
|
internal class Task1
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
var shape = new Shape(1, 2);
|
|
Console.WriteLine(shape.Display());
|
|
|
|
var circle = new Circle(2, 3, 4);
|
|
Console.WriteLine(circle.Display());
|
|
|
|
var cylinder = new Cylinder(3, 4, 5, 6);
|
|
Console.WriteLine(cylinder.Display());
|
|
|
|
Console.WriteLine("press any key to exit");
|
|
Console.ReadKey();
|
|
}
|
|
}
|
|
}
|
|
|
|
class Shape
|
|
{
|
|
protected int _x;
|
|
protected int _y;
|
|
|
|
public Shape(int x, int y)
|
|
{
|
|
_x = x;
|
|
_y = y;
|
|
}
|
|
|
|
public int X
|
|
{
|
|
get { return _x; }
|
|
}
|
|
|
|
public int Y
|
|
{
|
|
get { return _y; }
|
|
}
|
|
|
|
public virtual string Display()
|
|
{
|
|
return $"X: {_x}, Y: {_y}";
|
|
}
|
|
};
|
|
|
|
class Circle : Shape
|
|
{
|
|
protected int _r;
|
|
public Circle(int x, int y, int r)
|
|
: base(x, y)
|
|
{
|
|
_r = r;
|
|
}
|
|
|
|
public virtual double Area
|
|
{
|
|
get => Math.PI * Math.Pow(_r, 2);
|
|
}
|
|
|
|
public override string Display()
|
|
{
|
|
return base.Display() + $", R: {Area}";
|
|
}
|
|
};
|
|
|
|
class Cylinder : Circle
|
|
{
|
|
protected int _h;
|
|
public Cylinder(int x, int y, int r, int h) : base(x, y, r)
|
|
{
|
|
_h = h;
|
|
}
|
|
|
|
public override double Area
|
|
{
|
|
get => (2 * Math.PI * Math.Pow(_r, 2)) + (2 * Math.PI * _r * _h);
|
|
}
|
|
|
|
public virtual double Volume
|
|
{
|
|
get => Math.PI * Math.Pow(_r, 2) * _h;
|
|
}
|
|
|
|
public override string Display()
|
|
{
|
|
return base.Display() + $", V: {Volume}";
|
|
}
|
|
} |