- Code:
- public abstract class Hinh
{
protected int iSoDinh;
public int SoDinh
{
get { return iSoDinh; }
set
{
if (value >= 0)
iSoDinh = value;
else iSoDinh = 0;
}
}
public Hinh()
{
iSoDinh = 0;
}
public Hinh(int numSoDinh)
{
SoDinh = numSoDinh;
}
//Các phương thức trừu tượng
public abstract double TinhChuVi();
public abstract double TinhDienTich();
}
//Lớp hình tròn
public class HinhTron : Hinh
{
protected double dBanKinh;
public double BanKinh
{
get { return dBanKinh; }
set
{
if (value >= 0) dBanKinh = value;
else dBanKinh = 0;
}
}
public HinhTron()
{
dBanKinh = 0;
}
public HinhTron(double numBanKinh)
{
BanKinh = numBanKinh;
}
public override double TinhChuVi()
{
return 2 * dBanKinh * Math.PI;
}
public override double TinhDienTich()
{
return dBanKinh * dBanKinh * Math.PI;
}
}
//Lớp hình chữ nhật
public class HinhChuNhat : Hinh
{
protected double dDai, dRong;
public double Dai
{
get { return dDai; }
set
{
if (value >= 0) dDai = value;
else dDai = 0;
}
}
public double Rong
{
get { return dRong; }
set
{
if (value >= 0) dRong = value;
else dRong = 0;
}
}
public HinhChuNhat() : base(4)
{
dDai = dRong = 0;
}
public HinhChuNhat(double numDai, double numRong)
: base(4)
{
Dai = numDai;
Rong = numRong;
}
public override double TinhChuVi()
{
return 2 * (dDai + dRong);
}
public override double TinhDienTich()
{
return dDai * dRong;
}
}
//Lớp hình tam giác
public class HinhTamGiac : Hinh
{
protected double dCanhA, dCanhB, dCanhC;
public double CanhA
{
get { return dCanhA; }
set
{
if (value >= 0)
dCanhA = value;
else dCanhA = 0;
}
}
public double CanhB
{
get { return dCanhB; }
set
{
if (value >= 0)
dCanhB = value;
else dCanhB = 0;
}
}
public double CanhC
{
get { return dCanhC; }
set
{
if (value >= 0)
dCanhC = value;
else dCanhC = 0;
}
}
public HinhTamGiac() : base(3)
{
dCanhA = dCanhB = dCanhC = 0;
}
public HinhTamGiac(double numCanhA, double numCanhB, double numCanhC) : base(3)
{
CanhA = numCanhA;
CanhB = numCanhB;
CanhC = numCanhC;
}
public override double TinhChuVi()
{
return dCanhA + dCanhB + dCanhC;
}
public override double TinhDienTich()
{
double p = TinhChuVi() / 2;
return Math.Sqrt(p * (p - dCanhA) * (p - dCanhB) * (p - dCanhC));
}
}
//Lớp hình vuông
public class HinhVuong : HinhChuNhat
{
public HinhVuong() : base()
{
}
public HinhVuong(double numCanh)
: base(numCanh, numCanh)
{
//dDai = dRong = numCanh;
}
public override double TinhChuVi()
{
return 4 * dDai;
}
public override double TinhDienTich()
{
return dDai * dDai;
}
}
//Lớp tam giác cân
public class TamGiacCan : HinhTamGiac
{
public TamGiacCan()
: base()
{ }
public TamGiacCan(double numCanhBen, double numCanhDay)
: base(numCanhBen, numCanhBen, numCanhDay)
{
//CanhA = CanhB = numCanhBen;
//CanhC = numCanhDay;
}
public override double TinhChuVi()
{
return base.TinhChuVi();
}
public override double TinhDienTich()
{
return base.TinhDienTich();
}
}
//Lớp tam giác vuông
public class TamGiacVuong : HinhTamGiac
{
public TamGiacVuong()
: base()
{ }
public TamGiacVuong(double numCanhVuong01, double numCanhVuong02)
: base(numCanhVuong01, numCanhVuong02, Math.Sqrt(numCanhVuong01+numCanhVuong02))
{
//CanhA = numCanhVuong01;
//CanhB = numCanhVuong02;
//CanhC = Math.Sqrt(numCanhVuong01+numCanhVuong02);
}
public override double TinhChuVi()
{
return base.TinhChuVi();
}
public override double TinhDienTich()
{
return base.TinhDienTich();
}
}
//Lớp tam giác đều
public class TamGiacDeu : HinhTamGiac
{
public TamGiacDeu()
: base()
{ }
public TamGiacDeu(double numCanh)
: base(numCanh, numCanh, numCanh)
{
//CanhA = numCanh;
//CanhB = numCanh;
//CanhC = numCanh;
}
public override double TinhChuVi()
{
return base.TinhChuVi();
}
public override double TinhDienTich()
{
return base.TinhDienTich();
}
}
class Program
{
static void Main(string[] args)
{
HinhVuong hVuong = new HinhVuong(4);
Console.WriteLine(hVuong.SoDinh);
Console.WriteLine(hVuong.TinhChuVi());
Console.WriteLine(hVuong.TinhDienTich());
//Hinh[] h = new Hinh[10];
//h[0] = new HinhTron(4);
//h[1] = new HinhChuNhat(7, 5);
//h[2] = new HinhVuong(5);
//h[3] = new HinhTamGiac(3, 4, 5);
//h[4] = new TamGiacCan(3, 4);
//h[5] = new TamGiacVuong(3, 4);
//h[6] = new TamGiacDeu(3);
//h[7] = new HinhTron(5);
//h[8] = new HinhVuong(4);
//h[9] = new TamGiacDeu(5);
//Hinh HMin = h[0];
//double Min = h[0].TinhDienTich();
//foreach (Hinh i in h)
//{
// if (Min > i.TinhDienTich())
// {
// Min = i.TinhDienTich();
// HMin = i;
// }
//}
http://Console.WriteLine("================================");
http://Console.WriteLine("Thong tin cua hinh co dien tich nho nhat:");
http://Console.WriteLine("So dinh : " + HMin.SoDinh);
http://Console.WriteLine("Chu vi : " + HMin.TinhChuVi());
http://Console.WriteLine("Dien tích: " + HMin.TinhDienTich());
http://Console.ReadLine();
}
}
Mọi người copy nhớ chỉnh sửa nha, qua 2 bài 1 và bài 2 thì mình thấy hầu như ko ai sửa. Nếu như thế này mình ko post bài tập của mình nữa đâu nhé