using System.Collections.Generic;
namespace HinhThang_Abtract
abstract class HinhKhoi2D
public abstract double DienTich();
class HinhThang : HinhKhoi2D
public double chieucao { set; get; }
public double daylon { set; get; }
public double daynho { set; get; }
public HinhThang(double _chieucao,double _daynho,double _daylon)
public override double DienTich()
return (daylon + daynho) * chieucao / 2.0;
Console.Write("Moi nhap chieu cao: ");
chieucao = Convert.ToDouble(Console.ReadLine());
Console.Write("Moi nhap day nho: ");
daynho = Convert.ToDouble(Console.ReadLine());
Console.Write("Moi nhap day lon: ");
daylon = Convert.ToDouble(Console.ReadLine());
public static bool operator >(HinhThang ht1,HinhThang ht2)
return ht1.DienTich() > ht2.DienTich();
public static bool operator <(HinhThang ht1, HinhThang ht2)
return ht1.DienTich() < ht2.DienTich();
public static bool operator !=(HinhThang ht1, HinhThang ht2)
return ht1.DienTich() != ht2.DienTich();
public static bool operator ==(HinhThang ht1, HinhThang ht2)
return ht1.DienTich() == ht2.DienTich();
ht =new List<HinhThang>();
Console.Write("Moi ban them so luong hinh thang: ");
n = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < n; i++)
Console.WriteLine("Moi ban nhap hinh thu {0}", i + 1);
for (int i = 0; i < ht.Count -1; i++)
for (int j = i + 1; j < ht.Count; j++)
Console.WriteLine("\t\t\tDanh sach hinh thang sau khi sap xep");
Console.WriteLine("{0 , 10}{1, 10}{2, 10}{3, 10}", "Chieu cao", "Day nho", "Day Lon", "Dien Tich");
foreach (HinhThang item in ht)
Console.WriteLine("{0 , 10}{1, 10}{2, 10}{3, 10}", item.chieucao, item.daynho,item.daylon, item.DienTich());
for (int i = 0; i < ht.Count - 1; i++)
for (int j = i +1; j < ht.Count; j++)
Console.WriteLine("\t\t\tDanh sach hinh thang sau khi xoa hinh");
Console.WriteLine("{0 , 10}{1, 10}{2, 10}{3, 10}", "Chieu cao", "Day nho", "Day Lon", "Dien Tich");
foreach (HinhThang item in ht)
Console.WriteLine("{0 , 10}{1, 10}{2, 10}{3, 10}", item.chieucao, item.daynho, item.daylon, item.DienTich());
hinhmoi = new HinhThang();
Console.WriteLine("\t\tMoi ban them hinh moi");
Console.WriteLine("\t\t\tDanh sach hinh thang sau khi them hinh ");
Console.WriteLine("{0 , 10}{1, 10}{2, 10}{3, 10}", "Chieu cao", "Day nho", "Day Lon", "Dien Tich");
foreach (HinhThang item in ht)
Console.WriteLine("{0 , 10}{1, 10}{2, 10}{3, 10}", item.chieucao, item.daynho, item.daylon, item.DienTich());
static void Main(string[] args)
QuanLiHinh qlh = new QuanLiHinh();
Console.WriteLine("1. Them so luong hinh thang ");
Console.WriteLine("2. Sap xep hinh ");
Console.WriteLine("3. Them hinh moi ");
Console.WriteLine("4. Xoa hinh ");
Console.WriteLine("5. Thoat ");
Console.Write("Moi ban lua chon:(1-5) ");
luachon = Convert.ToInt32(Console.ReadLine());
} while (luachon < 1 || luachon > 5);
Console.WriteLine("\t\tAn phim bat ki de tiep tuc");