Создать иерархию геометрических фигур - C#
Формулировка задачи:
Задача
- напишите иерархию геометрических фигур
- сложите несколько разных фигур в массив
- Подсчитайте и выведите на консоль, сколько в массиве кругов,
квадратов, ромбов, треугольников и пр.
- Для каждой фигуры выведите на консоль количество углов этой фигуры
Решение задачи: «Создать иерархию геометрических фигур»
textual
Листинг программы
using System;
namespace Space
{
using Type = Types.FigureType;
struct Types
{
public enum FigureType { Circle, Square, Rhombus, Triangle }
}
class Figure
{
public Type Type { get; protected set; }
public int Corners { get; protected set; }
}
class Circle : Figure
{
public Circle()
{
Corners = 0;
Type = Type.Circle;
}
}
class Square : Figure
{
public Square()
{
Corners = 4;
Type = Type.Square;
}
}
class Rhombus : Figure
{
public Rhombus()
{
Corners = 4;
Type = Type.Rhombus;
}
}
class Triangle : Figure
{
public Triangle()
{
Corners = 3;
Type = Type.Triangle;
}
}
class Program
{
static void Main(string[] args)
{
Figure[] figures = new Figure[4];
figures[0] = new Circle();
figures[1] = new Square();
figures[2] = new Rhombus();
figures[3] = new Triangle();
int c = 0, s = 0, r = 0, t = 0;
foreach (Figure f in figures)
{
switch (f.Type)
{
case Type.Circle: c++; break;
case Type.Rhombus: r++; break;
case Type.Square: s++; break;
case Type.Triangle: t++; break;
}
}
Console.WriteLine("Circles: " + c + "\tCorners: " + new Circle().Corners);
Console.WriteLine("Squares: " + s + "\tCorners: " + new Square().Corners);
Console.WriteLine("Rhombuses: " + r + "\tCorners: " + new Rhombus().Corners);
Console.WriteLine("Triangles: " + t + "\tCorners: " + new Triangle().Corners);
Console.ReadLine();
}
}
}