using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Area_calc_App
{
class Program
{
class Area
{
protected float vertical_length;
protected float horizontal_length;
public Area (float vertical, float horizontal)
{
this.vertical_length = vertical;
this.horizontal_length = horizontal;
}
public virtual float Calc_area()
{
return this.vertical_length * this.horizontal_length;
}
public virtual void areaShow()
{
}
}
class Square : Area
{
public Square(float vertical, float horizontal) : base(vertical, horizontal)
{
}
public override float Calc_area()
{
return base.Calc_area();
}
public override void areaShow()
{
Console.WriteLine("四角形の面積(S={0})を表示します。", this.Calc_area());
}
}
class Triangle : Area
{
public Triangle(float bottom, float height):base(bottom,height)
{
}
public override float Calc_area()
{
return base.Calc_area() / 2.0F;
}
public override void areaShow()
{
Console.WriteLine("三角形の面積(S={0})を表示します。", this.Calc_area());
}
}
class Trapezoid : Area
{
public Trapezoid(float Upperbottom, float Lowerheight, float height) : base(Upperbottom + Lowerheight, height)
{
}
public override float Calc_area()
{
return base.Calc_area() / 2.0F;
}
public override void areaShow()
{
Console.WriteLine("台形の面積(S={0})を表示します。", this.Calc_area());
}
}
static void Main(string[] args)
{
/*
Area a1 = new Square(5.0F, 10.0F);
a1.areaShow();
Area a2 = new Triangle(5.0F, 10.0F);
a2.areaShow();
Area a3 = new Trapezoid(5.0F,5.0F,10.0F);
a3.areaShow();
*/
List a = new List();
a.Add(new Square(5.0F, 10.0F));
a.Add(new Triangle(5.0F, 10.0F));
a.Add(new Trapezoid(5.0F, 5.0F, 10.0F));
foreach (Area s in a)
{
s.areaShow();
}
return;
}
}
}