private float TongPhepTinhMinMaxTheoHinh <T>(DanhSachHinhHoc danhSachHinhHoc, TypeMinMax typeMinMax) { if (typeMinMax == TypeMinMax.MaxDienTich || typeMinMax == TypeMinMax.MaxChuVi) { return(danhSachHinhHoc.ListHinhHoc.FindAll(p => p is T).Sum(x => x.TinhDienTich())); } else { return(danhSachHinhHoc.ListHinhHoc.FindAll(p => p is T).Sum(x => x.TinhChuVi())); } }
public string HinhCoTongPhepTinhMinMax(DanhSachHinhHoc danhSachHinhHoc, TypeMinMax typeMinMax) { float hinhVuong = TongPhepTinhMinMaxTheoHinh <HinhVuong>(danhSachHinhHoc, typeMinMax); float hinhTron = TongPhepTinhMinMaxTheoHinh <HinhTron>(danhSachHinhHoc, typeMinMax); float hinhChuNhat = TongPhepTinhMinMaxTheoHinh <HinhChuNhat>(danhSachHinhHoc, typeMinMax); if (typeMinMax == TypeMinMax.MaxDienTich || typeMinMax == TypeMinMax.MaxChuVi) { return(hinhVuong > hinhTron ? (hinhVuong > hinhChuNhat ? "Hình Vuông" : "Hình Chữ Nhật") : (hinhTron > hinhChuNhat ? "Hình Tròn" : "Hình Chữ Nhật")); } return(hinhVuong < hinhTron ? (hinhVuong < hinhChuNhat ? "Hình Vuông" : "Hình Chữ Nhật") : (hinhTron < hinhChuNhat ? "Hình Tròn" : "Hình Chữ Nhật")); }
public void GhiFile <T>(DanhSachHinhHoc danhSachHinhHoc, TypeList typeList) { StringBuilder str = new StringBuilder(); StringBuilder filename = new StringBuilder(); StringBuilder kq = new StringBuilder(); DanhSachHinhHoc result = new DanhSachHinhHoc(); switch (typeList) { case TypeList.HinhVuong: str.Append("hinhvuong"); filename.Append(str + ".txt"); result.ListHinhHoc = DanhSachTheoKieuHinh <T>(danhSachHinhHoc); kq.Append($"\n\n\t\t\tDANH SACH {str.ToString().ToUpper()}\n{result}\n"); break; case TypeList.HinhTron: str.Append("hinhtron"); filename.Append(str + ".txt"); result.ListHinhHoc = DanhSachTheoKieuHinh <T>(danhSachHinhHoc); kq.Append($"\n\n\t\t\tDANH SACH {str.ToString().ToUpper()}\n{result}\n"); break; case TypeList.HinhChuNhat: str.Append("hinhchunhat"); filename.Append(str + ".txt"); result.ListHinhHoc = DanhSachTheoKieuHinh <T>(danhSachHinhHoc); kq.Append($"\n\n\t\t\tDANH SACH {str.ToString().ToUpper()}\n{result}\n"); break; case TypeList.TatCaHinh: str.Append("tatcahinh"); filename.Append(str + ".txt"); kq.Append($"\t\t\tBANG TONG HOP THONG TIN\n1) Tong so cac doi tuong hinh hoc la: {DemTheoHinh<HinhHoc>(danhSachHinhHoc)}\n"); kq.Append($"2) Tong so hinh tron la: {DemTheoHinh<HinhTron>(danhSachHinhHoc)}\n"); kq.Append($"3) Tong so hinh vuong la: {DemTheoHinh<HinhVuong>(danhSachHinhHoc)}\n"); kq.Append($"4) Tong so hinh chu nhat la {DemTheoHinh<HinhChuNhat>(danhSachHinhHoc)}\n"); result.ListHinhHoc = DanhSachTheoKieuHinh <HinhTron>(danhSachHinhHoc); kq.Append($"\nA. Danh sach hinh tron\n{result}"); result.ListHinhHoc = DanhSachTheoKieuHinh <HinhVuong>(danhSachHinhHoc); kq.Append($"\n\nB. Danh sach hinh vuong\n{result}"); result.ListHinhHoc = DanhSachTheoKieuHinh <HinhChuNhat>(danhSachHinhHoc); kq.Append($"\n\nC. Danh sach hinh chu nhat\n{result}\n"); break; } using (StreamWriter file = new StreamWriter(filename.ToString(), append: false)) // FileMode.Append, FileAccess.Write) { file.Write(kq); } }
public DanhSachHinhHoc TimHinhVuongCoDTLonNhat() { DanhSachHinhHoc kq = new DanhSachHinhHoc(); float max = TimDienTichHinhVuongLonNhat(); foreach (var item in collection) { if (item is HinhVuong && ((HinhVuong)item).TinhDT() == max) { kq.Them(item); } } return(kq); }
public DanhSachHinhHoc TimHinhCoDTLonNhat() { //DanhSachHinhHoc kq = new DanhSachHinhHoc(); //float max = TimDienTichLonNhat(); //foreach (var item in collection) //{ // //if (item is HinhVuong && ((HinhVuong)item).TinhDT() == max) // // kq.Them(item); // //if (item is HinhTron && ((HinhTron)item).TinhDT() == max) // // kq.Them(item); // if (item.TinhDT() == max) // kq.Them(item); //} //return kq; DanhSachHinhHoc kq = new DanhSachHinhHoc(); float max = TimDienTichLonNhat(); kq.collection = collection.FindAll(x => x.TinhDT() == max); return(kq); }
private float MinMaxTheoKieuGoi <T>(DanhSachHinhHoc danhSachHinhHoc, TypeMinMax typeMinMax) { List <HinhHoc> hinhHoc = DanhSachTheoKieuHinh <T>(danhSachHinhHoc); switch (typeMinMax) { case TypeMinMax.MaxChuVi: return(hinhHoc.FindAll(p => p is T).Max(x => x.TinhChuVi())); case TypeMinMax.MinChuVi: return(hinhHoc.FindAll(p => p is T).Min(x => x.TinhChuVi())); case TypeMinMax.MaxDienTich: return(hinhHoc.FindAll(p => p is T).Max(x => x.TinhDienTich())); case TypeMinMax.MinDienTich: return(hinhHoc.FindAll(p => p is T).Min(x => x.TinhDienTich())); case TypeMinMax.MaxCanh: return(hinhHoc.FindAll(p => p is T).Max(x => (x as HinhVuong).Canh)); case TypeMinMax.MinCanh: return(hinhHoc.FindAll(p => p is T).Min(x => (x as HinhVuong).Canh)); case TypeMinMax.MaxBanKinh: return(hinhHoc.FindAll(p => p is T).Max(x => (x as HinhTron).BanKinh)); case TypeMinMax.MinBanKinh: return(hinhHoc.FindAll(p => p is T).Min(x => (x as HinhTron).BanKinh)); case TypeMinMax.MaxCanhHCN: return(hinhHoc.FindAll(p => p is T).Max(x => (x as HinhChuNhat).TinhDienTich())); case TypeMinMax.MinCanhHCN: return(hinhHoc.FindAll(p => p is T).Min(x => (x as HinhChuNhat).TinhDienTich())); } return(0); }
public void ThemHinhTaiViTri(DanhSachHinhHoc danhSachHinhHoc, TypeList typeList, int location) { HinhHoc hh = new HinhHoc(); switch (typeList) { case TypeList.HinhVuong: WriteLine("\nHinh Vuong >>"); hh = new HinhTron(); break; case TypeList.HinhTron: WriteLine("\nHinh Vuong >>"); hh = new HinhVuong(); break; case TypeList.HinhChuNhat: WriteLine("\nHinh chu nhat >>"); hh = new HinhChuNhat(); break; } danhSachHinhHoc.ListHinhHoc.Insert(location, hh.Nhap()); }
public List <HinhHoc> SapXepTheoCachGoi <T>(DanhSachHinhHoc danhSachHinhHoc, SortBy sortBy) { List <HinhHoc> result = DanhSachTheoKieuHinh <T>(danhSachHinhHoc); switch (sortBy) { case SortBy.SortUpByCV: result = result.OrderBy(hinh => hinh.TinhChuVi()).ToList(); return(result); case SortBy.SortUpByDT: result = result.OrderBy(hinh => hinh.TinhDienTich()).ToList(); return(result); case SortBy.SortDownByCV: result = result.OrderByDescending(hinh => hinh.TinhChuVi()).ToList(); return(result); case SortBy.SortDownByDT: result = result.OrderByDescending(hinh => hinh.TinhDienTich()).ToList(); return(result); } return(null); }
static void Main(string[] args) { Object o = new object(); DanhSachHinhHoc ql = new DanhSachHinhHoc(); ql.Them(new HinhTron(4)); ql.Them(new HinhVuong(7)); ql.Them(new HinhVuong(7)); ql.Them(new HinhVuong(12.407f)); ql.Them(new HinhTron(4)); ql.Them(new HinhTron(6)); ql.Them(new HinhTron(7)); ql.Them(new HinhTron(4)); ql.Them(new HinhChuNhat(10, 20)); ql.Them(new HinhChuNhat(10, 20)); ql.Them(new HinhChuNhat(10, 20)); ql.Them(new HinhChuNhat(10, 20)); ql.Them(new HinhChuNhat(10, 20)); Console.WriteLine(ql); Console.WriteLine("Hinh vuong co dien tich lon nhat"); Console.WriteLine(ql.TimHinhCoDTLonNhat()); Console.ReadKey(); }
public List <HinhHoc> DanhSachTheoKieuHinh <T>(DanhSachHinhHoc danhSachHinhHoc) => danhSachHinhHoc.ListHinhHoc.Where(x => x is T).ToList();
public int DemTheoHinh <T>(DanhSachHinhHoc danhSachHinhHoc) => DanhSachTheoKieuHinh <T>(danhSachHinhHoc).Count();
public void XoaHinhTaiViTri(DanhSachHinhHoc danhSachHinhHoc, int location) => danhSachHinhHoc.ListHinhHoc.RemoveAt(location);
public List <HinhHoc> TimHinhMinMaxKieuTinh <T>(DanhSachHinhHoc danhSachHinhHoc, TypeMinMax typeMinMax, TypeCal typeCal) => TimHinhTheoKieuGoi <T>(danhSachHinhHoc, typeCal, MinMaxTheoKieuGoi <T>(danhSachHinhHoc, typeMinMax));
public void XuLyTuyChon(TuyChon tuyChon, DanhSachHinhHoc danhSachHinhHoc) { Menu menuM = new Menu(); XuLyChuongTrinh xuLyChuongTrinh = new XuLyChuongTrinh(); int menu; int soMenu; switch (tuyChon) { case TuyChon.TimKiem: soMenu = menuM.search.Length - 1; do { menu = ChonMenu(soMenu, menuM.search); if (menu == 1) { return; } xuLyChuongTrinh.XuLyChucNang(tuyChon, menu, danhSachHinhHoc); } while (menu > 0); break; case TuyChon.SapXep: soMenu = menuM.sort.Length - 1; do { menu = ChonMenu(soMenu, menuM.sort); if (menu == 1) { return; } xuLyChuongTrinh.XuLyChucNang(tuyChon, menu, danhSachHinhHoc); } while (menu > 0); break; case TuyChon.Xoa: soMenu = menuM.delete.Length - 1; do { menu = ChonMenu(soMenu, menuM.delete); if (menu == 1) { return; } xuLyChuongTrinh.XuLyChucNang(tuyChon, menu, danhSachHinhHoc); } while (menu > 0); break; case TuyChon.Khac: soMenu = menuM.other.Length - 1; do { menu = ChonMenu(soMenu, menuM.other); if (menu == 1) { return; } xuLyChuongTrinh.XuLyChucNang(tuyChon, menu, danhSachHinhHoc); } while (menu > 0); break; } ReadLine(); }
public void XuLyChucNang(XuLyMenu.TuyChon tuyChon, int menu, DanhSachHinhHoc danhSachHinhHoc) { Object x; switch (tuyChon) { case XuLyMenu.TuyChon.TimKiem: switch (menu) { case 0: WriteLine("\n Bạn đã lựa chọn đi ngủ.\n\tCÚT"); Environment.Exit(0); return; case 1: WriteLine("\nQuay về trang trước"); return; case 2: Clear(); WriteLine("\nTìm hình vuông có diện tích x"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhVuong>(danhSachHinhHoc)); Write("\n Nhập vào diện tích >> "); x = float.Parse(ReadLine()); WriteLine("\n Hình vuông có diện tích {0}", x); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuGoi <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeCal.DienTich, (float)x)); break; case 3: Clear(); WriteLine("\nTìm hình vuông có chu vi x"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhVuong>(danhSachHinhHoc)); Write("\n Nhập vào chu vi >> "); x = float.Parse(ReadLine()); WriteLine("\n Hình vuông có chu vi {0}", x); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuGoi <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeCal.ChuVi, (float)x)); break; case 4: Clear(); WriteLine("\nTìm hình vuông có diện tích nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhVuong>(danhSachHinhHoc)); WriteLine("\nHình vuông có diện tích nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinDienTich, XuLyDuLieuHinhHoc.TypeCal.DienTich)); break; case 5: Clear(); WriteLine("\nTìm hình vuông có diện tích lớn nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhVuong>(danhSachHinhHoc)); WriteLine("\nHình vuông có diện tích lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxDienTich, XuLyDuLieuHinhHoc.TypeCal.DienTich)); break; case 6: Clear(); WriteLine("\nTìm hình vuông có chu vi nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhVuong>(danhSachHinhHoc)); WriteLine("\nHình vuông có chu vi nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinChuVi, XuLyDuLieuHinhHoc.TypeCal.ChuVi)); break; case 7: Clear(); WriteLine("\nTìm hình vuông có chu vi lớn nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhVuong>(danhSachHinhHoc)); WriteLine("\nHình vuông có chu vi lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxChuVi, XuLyDuLieuHinhHoc.TypeCal.ChuVi)); break; case 8: Clear(); WriteLine("\nTìm hình vuông có cạnh nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhVuong>(danhSachHinhHoc)); WriteLine("\nHình vuông có cạnh nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinCanh, XuLyDuLieuHinhHoc.TypeCal.Canh)); break; case 9: Clear(); WriteLine("\nTìm hình vuông có cạnh lớn nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhVuong>(danhSachHinhHoc)); WriteLine("\nHình vuông có cạnh lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxCanh, XuLyDuLieuHinhHoc.TypeCal.Canh)); break; case 10: Clear(); WriteLine("\nTìm hình tròn có diện tích x"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhTron>(danhSachHinhHoc)); Write("\n Nhập vào diện tích >> "); x = float.Parse(ReadLine()); WriteLine("\n Hình tròn có diện tích {0}", x); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuGoi <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeCal.DienTich, (float)x)); break; case 11: Clear(); WriteLine("\nTìm hình tròn có chu vi x"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhTron>(danhSachHinhHoc)); Write("\n Nhập vào chu vi >> "); x = float.Parse(ReadLine()); WriteLine("\n Hình tròn có chu vi {0}", x); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuGoi <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeCal.ChuVi, (float)x)); break; case 12: Clear(); WriteLine("\nTìm hình tròn có diện tích nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhTron>(danhSachHinhHoc)); WriteLine("\nHình tròn có diện tích nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinDienTich, XuLyDuLieuHinhHoc.TypeCal.DienTich)); break; case 13: Clear(); WriteLine("\nTìm hình tròn có diện tích lớn nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhTron>(danhSachHinhHoc)); WriteLine("\nHình tròn có diện tích lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxDienTich, XuLyDuLieuHinhHoc.TypeCal.DienTich)); break; case 14: Clear(); WriteLine("\nTìm hình tròn có chu vi nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhTron>(danhSachHinhHoc)); WriteLine("\nHình tròn có chu vi nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinChuVi, XuLyDuLieuHinhHoc.TypeCal.ChuVi)); break; case 15: Clear(); WriteLine("\nTìm hình tròn có chu vi lớn nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhTron>(danhSachHinhHoc)); WriteLine("\nHình tròn có chu vi lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxChuVi, XuLyDuLieuHinhHoc.TypeCal.ChuVi)); break; case 16: Clear(); WriteLine("\nTìm hình tròn có bán kính nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhTron>(danhSachHinhHoc)); WriteLine("\nHình tròn có bán kính nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinBanKinh, XuLyDuLieuHinhHoc.TypeCal.BanKinh)); break; case 17: Clear(); WriteLine("\nTìm hình tròn có bán kính lớn nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhTron>(danhSachHinhHoc)); WriteLine("\nHình tròn có bán kính lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxBanKinh, XuLyDuLieuHinhHoc.TypeCal.BanKinh)); break; case 18: Clear(); WriteLine("\nTìm hình chữ nhật có diện tích x"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhChuNhat>(danhSachHinhHoc)); Write("\n Nhập vào diện tích >> "); x = float.Parse(ReadLine()); WriteLine("\n Hình chữ nhật có diện tích {0}", x); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuGoi <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeCal.DienTich, (float)x)); break; case 19: Clear(); WriteLine("\nTìm hình chữ nhật có chu vi x"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhChuNhat>(danhSachHinhHoc)); Write("\n Nhập vào chu vi >> "); x = float.Parse(ReadLine()); WriteLine("\n Hình chữ nhật có chu vi {0}", x); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuGoi <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeCal.ChuVi, (float)x)); break; case 20: Clear(); WriteLine("\nTìm hình chữ nhật có diện tích nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhChuNhat>(danhSachHinhHoc)); WriteLine("\nHình chữ nhật có diện tích nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinDienTich, XuLyDuLieuHinhHoc.TypeCal.DienTich)); break; case 21: Clear(); WriteLine("\nTìm hình chữ nhật có diện tích lớn nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhChuNhat>(danhSachHinhHoc)); WriteLine("\nHình chữ nhật có diện tích lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxDienTich, XuLyDuLieuHinhHoc.TypeCal.DienTich)); break; case 22: Clear(); WriteLine("\nTìm hình chữ nhật có chu vi nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhChuNhat>(danhSachHinhHoc)); WriteLine("\nHình chữ nhật có chu vi nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinChuVi, XuLyDuLieuHinhHoc.TypeCal.ChuVi)); break; case 23: Clear(); WriteLine("\nTìm hình chữ nhật có chu vi lớn nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhChuNhat>(danhSachHinhHoc)); WriteLine("\nHình chữ nhật có chu vi lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxChuVi, XuLyDuLieuHinhHoc.TypeCal.ChuVi)); break; case 24: Clear(); WriteLine("\nTìm hình chữ nhật có cạnh nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhChuNhat>(danhSachHinhHoc)); WriteLine("\nHình chữ nhật có cạnh nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinCanhHCN, XuLyDuLieuHinhHoc.TypeCal.CanhHCN)); break; case 25: Clear(); WriteLine("\nTìm hình chữ nhật có cạnh lớn nhất"); xuLyDuLieuHinhHoc.Xuat( xuLyDuLieuHinhHoc.DanhSachTheoKieuHinh <HinhChuNhat>(danhSachHinhHoc)); WriteLine("\nHình chữ nhật có cạnh lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhTheoKieuTinh <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxCanhHCN, XuLyDuLieuHinhHoc.TypeCal.CanhHCN)); break; case 26: Clear(); WriteLine("\nTìm hình có diện tích nhỏ nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nHình có diện tích nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhMinMaxKieuTinh <HinhHoc> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinDienTich, XuLyDuLieuHinhHoc.TypeCal.DienTich)); break; case 27: Clear(); WriteLine("\nTìm hình có diện tích lớn nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nHình có diện tích lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhMinMaxKieuTinh <HinhHoc> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxDienTich, XuLyDuLieuHinhHoc.TypeCal.DienTich)); break; case 28: Clear(); WriteLine("\nTìm hình có chu vi nhỏ nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nHình có chu vi nhỏ nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhMinMaxKieuTinh <HinhHoc> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinChuVi, XuLyDuLieuHinhHoc.TypeCal.ChuVi)); break; case 29: Clear(); WriteLine("\nTìm hình có chu vi lớn nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nHình có chu vi lớn nhất"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.TimHinhMinMaxKieuTinh <HinhHoc> (danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxChuVi, XuLyDuLieuHinhHoc.TypeCal.ChuVi)); break; case 30: Clear(); WriteLine("\nTìm hình có tổng diện tích nhỏ nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nHình có tổng diện tích nhỏ nhất"); WriteLine(xuLyDuLieuHinhHoc.HinhCoTongPhepTinhMinMax(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinDienTich)); break; case 31: Clear(); WriteLine("\nTìm hình có tổng diện tích lớn nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nHình có tổng diện tích lớn nhất"); WriteLine(xuLyDuLieuHinhHoc.HinhCoTongPhepTinhMinMax(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxDienTich)); break; case 32: Clear(); WriteLine("\nTìm hình có tổng chu vi nhỏ nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nHình có tổng chu vi nhỏ nhất"); WriteLine(xuLyDuLieuHinhHoc.HinhCoTongPhepTinhMinMax(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinChuVi)); break; case 33: Clear(); WriteLine("\nTìm hình có tổng chu vi lớn nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nHình có tổng chu vi lớn nhất"); WriteLine(xuLyDuLieuHinhHoc.HinhCoTongPhepTinhMinMax(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxChuVi)); break; } break; case XuLyMenu.TuyChon.SapXep: switch (menu) { case 0: WriteLine("\n Bạn đã lựa chọn đi ngủ.\n\tCÚT"); Environment.Exit(0); return; case 1: WriteLine("\nQuay về trang trước"); return; case 2: Clear(); WriteLine("\nSắp xếp hình vuông tăng theo chu vi"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình vuông sau khi sắp xếp tăng theo chu vi"); xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhVuong>(danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortUpByCV); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortUpByCV)); break; case 3: Clear(); WriteLine("\nSắp xếp hình vuông giảm theo chu vi"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình vuông sau khi sắp xếp giảm theo chu vi"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortDownByCV)); break; case 4: Clear(); WriteLine("\nSắp xếp hình vuông tăng theo diện tích"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình vuông sau khi sắp xếp tăng theo diện tích"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortUpByDT)); break; case 5: Clear(); WriteLine("\nSắp xếp hình vuông giảm theo diện tích"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình vuông sau khi sắp xếp giảm theo diện tích"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhVuong> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortDownByDT)); break; case 6: Clear(); WriteLine("\nSắp xếp hình tròn tăng theo chu vi"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình tròn sau khi sắp xếp tăng theo chu vi"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortUpByCV)); break; case 7: Clear(); WriteLine("\nSắp xếp hình tròn giảm theo chu vi"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình tròn sau khi sắp xếp giảm theo chu vi"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortDownByCV)); break; case 8: Clear(); WriteLine("\nSắp xếp hình tròn tăng theo diện tích"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình tròn sau khi sắp xếp tăng theo diện tích"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortUpByDT)); break; case 9: Clear(); WriteLine("\nSắp xếp hình tròn giảm theo diện tích"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình tròn sau khi sắp xếp giảm theo diện tích"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhTron> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortDownByDT)); break; case 10: Clear(); WriteLine("\nSắp xếp hình chữ nhật tăng theo chu vi"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình chữ nhật tăng theo chu vi"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortUpByCV)); break; case 11: Clear(); WriteLine("\nSắp xếp hình chữ nhật giảm theo chu vi"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình chữ nhật giảm theo chu vi"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortUpByCV)); break; case 12: Clear(); WriteLine("\nSắp xếp hình chữ nhật tăng theo diện tích"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình chữ nhật tăng theo diện tích"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortUpByDT)); break; case 13: Clear(); WriteLine("\nSắp xếp hình chữ nhật giảm theo diện tích"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách hình chữ nhật giảm theo diện tích"); xuLyDuLieuHinhHoc.Xuat(xuLyDuLieuHinhHoc.SapXepTheoCachGoi <HinhChuNhat> (danhSachHinhHoc, XuLyDuLieuHinhHoc.SortBy.SortDownByDT)); break; } break; case XuLyMenu.TuyChon.Xoa: switch (menu) { case 0: WriteLine("\n Bạn đã lựa chọn đi ngủ.\n\tCÚT"); Environment.Exit(0); return; case 1: WriteLine("\nQuay về trang trước"); return; case 2: Clear(); WriteLine("\nXóa hình có diện tích lớn nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách sau khi xóa hình có diện tích lớn nhất"); xuLyDuLieuHinhHoc.XoaTheoCachGoi <HinhHoc>(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxDienTich); xuLyDuLieuHinhHoc.Xuat(danhSachHinhHoc.ListHinhHoc); break; case 3: Clear(); WriteLine("\nXóa hình có diện tích nhỏ nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách sau khi xóa hình có diện tích nhỏ nhất"); xuLyDuLieuHinhHoc.XoaTheoCachGoi <HinhHoc>(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinDienTich); xuLyDuLieuHinhHoc.Xuat(danhSachHinhHoc.ListHinhHoc); break; case 4: Clear(); WriteLine("\nXóa hình có chu vi lớn nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách sau khi xóa hình có chu vi lớn nhất"); xuLyDuLieuHinhHoc.XoaTheoCachGoi <HinhHoc>(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MaxChuVi); xuLyDuLieuHinhHoc.Xuat(danhSachHinhHoc.ListHinhHoc); break; case 5: Clear(); WriteLine("\nXóa hình có chu vi nhỏ nhất"); danhSachHinhHoc.Xuat(); WriteLine("\nDanh sách sau khi xóa hình có chu vi nhỏ nhất"); xuLyDuLieuHinhHoc.XoaTheoCachGoi <HinhHoc>(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeMinMax.MinChuVi); xuLyDuLieuHinhHoc.Xuat(danhSachHinhHoc.ListHinhHoc); break; case 6: Clear(); WriteLine("\nXóa hình tại vị trí"); danhSachHinhHoc.Xuat(); Write("\n Nhập vào vị trí cần xóa >> "); x = int.Parse(ReadLine()); WriteLine("\nDanh sách sau khi xóa hình tại vị trí {0}", x); xuLyDuLieuHinhHoc.XoaHinhTaiViTri(danhSachHinhHoc, (int)x); danhSachHinhHoc.Xuat(); break; } break; case XuLyMenu.TuyChon.Khac: switch (menu) { case 0: WriteLine("\n Bạn đã lựa chọn đi ngủ.\n\tCÚT"); Environment.Exit(0); return; case 1: WriteLine("\nQuay về trang trước"); return; case 2: Clear(); WriteLine("\nThêm 1 hình học tại vị trí"); Write("\nNhập vào vị trí để thêm >> "); x = int.Parse(ReadLine()); Write("\nBạn muốn thêm hình gì?\nNhập vào số tương ứng ( 0 - Hình Vuông, 1 - Hình Tròn, 2 - Hình Chữ Nhật ) >> "); XuLyDuLieuHinhHoc.TypeList typeList = (XuLyDuLieuHinhHoc.TypeList) int.Parse(ReadLine()); xuLyDuLieuHinhHoc.ThemHinhTaiViTri(danhSachHinhHoc, typeList, (int)x); Clear(); WriteLine("\n Danh sách hiện hành"); danhSachHinhHoc.Xuat(); break; case 3: Clear(); WriteLine("Đếm số lượng các loại hình học"); Write("\n\nSố lượng hình vuông là >> " + xuLyDuLieuHinhHoc.DemTheoHinh <HinhVuong>(danhSachHinhHoc)); Write("\n\nSố lượng hình tròn là >> " + xuLyDuLieuHinhHoc.DemTheoHinh <HinhTron>(danhSachHinhHoc)); Write("\n\nSố lượng hình chữ nhật là >> " + xuLyDuLieuHinhHoc.DemTheoHinh <HinhChuNhat>(danhSachHinhHoc)); Write("\n\nTổng số lượng hình học là >> " + xuLyDuLieuHinhHoc.DemTheoHinh <HinhHoc>(danhSachHinhHoc)); break; case 4: Clear(); WriteLine("Ghi file các hình xuống file riêng"); WriteLine("Nhan phim bat ki de bat dau thuc hien >> "); xuLyDuLieuHinhHoc.GhiFile <HinhVuong>(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeList.HinhVuong); xuLyDuLieuHinhHoc.GhiFile <HinhTron>(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeList.HinhTron); xuLyDuLieuHinhHoc.GhiFile <HinhChuNhat>(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeList.HinhChuNhat); xuLyDuLieuHinhHoc.GhiFile <HinhHoc>(danhSachHinhHoc, XuLyDuLieuHinhHoc.TypeList.TatCaHinh); ReadLine(); WriteLine("Ghi file hoan tat !"); break; } break; } ReadLine(); }