public void XuLy(int menu) { switch (menu) { case 0: WriteLine("\n Bạn đã lựa chọn đi ngủ.\n\tCÚT"); return; case 1: Clear(); WriteLine("\nNhập dữ liệu máy tính từ file"); danhSachMayTinh.ImportFromFile(); break; case 2: Clear(); WriteLine("Xuất dữ liệu máy tính"); danhSachMayTinh.Xuat(); break; case 3: Clear(); Menu meme = new Menu(); int soMenu = meme.options.Length - 1; int menuM; do { menuM = ChonMenu(soMenu, meme.options); TuyChon tuyChon = (TuyChon)menuM; if (menuM == 1) { return; } else if (menuM == 0) { WriteLine("\n Bạn đã lựa chọn đi ngủ.\n\tCÚT"); Environment.Exit(0); } ResetColor(); ForegroundColor = xuLyMauSac.ForegroundColor(); BackgroundColor = xuLyMauSac.BackgroundColor(); XuLyTuyChon(tuyChon, danhSachMayTinh); } while (menuM > 0); break; } ReadLine(); }
public void XuLyChucNang(XuLyMenu.TuyChon tuyChon, int menu, DanhSachMayTinh danhSachMayTinh) { Object x; Object y; 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 máy tính có dung lượng ram thấp nhất"); WriteLine("\nMáy tính có dung lượng ram thấp nhất"); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DanhSachMayTinhMinMaxTheoThuocTinh <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, XuLyDuLieuMayTinh.MinMax.Min).ConvertAll(x => (object)x)); break; case 3: Clear(); WriteLine("\nTìm máy tính có dung lượng ram lớn nhất"); WriteLine("\nMáy tính có dung lượng ram lớn nhất"); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DanhSachMayTinhMinMaxTheoThuocTinh <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, XuLyDuLieuMayTinh.MinMax.Max).ConvertAll(x => (object)x)); break; case 4: Clear(); WriteLine("\nTìm hãng sản xuất RAM có dung lượng thấp nhất"); WriteLine("\nHãng sản xuất RAM có dung lượng thấp nhất"); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DanhSachHangMinMaxThuocTinh <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, XuLyDuLieuMayTinh.MinMax.Min).ConvertAll(x => (object)x)); break; case 5: Clear(); WriteLine("\nTìm hãng sản xuất RAM có dung lượng lớn nhất"); WriteLine("\nHãng sản xuất RAM có dung lượng lớn nhất"); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DanhSachHangMinMaxThuocTinh <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, XuLyDuLieuMayTinh.MinMax.Max).ConvertAll(x => (object)x)); break; case 6: Clear(); WriteLine("\nTìm máy tính có tốc độc CPU thấp nhất"); WriteLine("\nMáy tính có tốc độc CPU thấp nhất"); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DanhSachMayTinhMinMaxTheoThuocTinh <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed, XuLyDuLieuMayTinh.MinMax.Min).ConvertAll(x => (object)x)); break; case 7: Clear(); WriteLine("\nTìm máy tính có tốc độc CPU lớn nhất"); WriteLine("\nMáy tính có tốc độc CPU lớn nhất"); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DanhSachMayTinhMinMaxTheoThuocTinh <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed, XuLyDuLieuMayTinh.MinMax.Max).ConvertAll(x => (object)x)); break; case 8: Clear(); WriteLine("\nTìm hãng sản xuất CPU có tốc độ thấp nhất"); WriteLine("\nHãng sản xuất CPU có tốc độ thấp nhất"); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DanhSachHangMinMaxThuocTinh <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed, XuLyDuLieuMayTinh.MinMax.Min).ConvertAll(x => (object)x)); break; case 9: Clear(); WriteLine("\nTìm hãng sản xuất CPU có tốc độ lớn nhất"); WriteLine("\nHãng sản xuất CPU có tốc độ lớn nhất"); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DanhSachHangMinMaxThuocTinh <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed, XuLyDuLieuMayTinh.MinMax.Max).ConvertAll(x => (object)x)); break; case 10: Clear(); WriteLine("\nTìm máy tính có dung lượng RAM(Gb) lớn hơn mức dung lượng nhập"); Write("\n Nhập vào mức dung lượng RAM(Gb) cần xét >> "); x = float.Parse(ReadLine()); WriteLine("\nMáy tính có dung lượng RAM(Gb) lớn hơn mức dung lượng nhập"); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DSMTThuocTinhLonHonX <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, (float)x).ConvertAll(x => (object)x)); break; case 11: Clear(); WriteLine("\nTìm máy tính có tốc độ CPU(Ghz) lớn hơn mức dung lượng nhập"); Write("\n Nhập vào mức tốc độ CPU(Ghz) cần xét >> "); x = float.Parse(ReadLine()); WriteLine("\nMáy tính có tốc độ CPU(Ghz) lớn hơn mức dung lượng nhập"); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DSMTThuocTinhLonHonX <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed, (float)x).ConvertAll(x => (object)x)); break; case 12: Clear(); WriteLine("\nTìm máy tính theo dung lượng RAM và hảng sản xuất"); WriteLine("\n\t\tDANH SÁCH MỨC DUNG LƯỢNG RAM TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachThuocTinhTheoThietBi <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity).ConvertAll(x => (object)x)); Write("\n Nhập vào mức dung lượng RAM(Gb) cần xét >> "); x = float.Parse(ReadLine()); WriteLine("\n\t\tDANH SÁCH CÁC HÃNG RAM TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachHangTheoThietBi <RAM> (danhSachMayTinh).ConvertAll(x => (object)x)); Write("\n Nhập vào hãng sản xuất RAM tương ứng cần xét >> "); y = ReadLine(); WriteLine("\nMáy tính theo dung lượng {0}Gb và hãng sản xuất {1}", x, y); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DSMTTheoThuocTinh_Hang <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, (float)x, (string)y).ConvertAll(x => (object)x)); break; case 13: Clear(); WriteLine("\nTìm máy tính theo tốc độ CPU và hảng sản xuất"); WriteLine("\n\t\tDANH SÁCH MỨC TỐC ĐỘ CPU TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachThuocTinhTheoThietBi <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed).ConvertAll(x => (object)x)); Write("\n Nhập vào mức tốc độ CPU(Ghz) cần xét >> "); x = float.Parse(ReadLine()); WriteLine("\n\t\tDANH SÁCH CÁC HÃNG CPU TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachHangTheoThietBi <CPU> (danhSachMayTinh).ConvertAll(x => (object)x)); Write("\n Nhập vào hãng sản xuất CPU tương ứng cần xét >> "); y = ReadLine(); WriteLine("\nMáy tính theo tốc độ {0}Ghz và hãng sản xuất {1}", x, y); xuLyDuLieuMayTinh.Xuat(xuLyDuLieuMayTinh.DSMTTheoThuocTinh_Hang <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, (float)x, (string)y).ConvertAll(x => (object)x)); 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 danh sách máy tính tăng dần theo dung lượng RAM(Gb)"); WriteLine("\nDanh sách máy tính sau khi tăng dần theo dung lượng RAM(Gb)"); xuLyDuLieuMayTinh.SapXepTheoKieuGoi <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, XuLyDuLieuMayTinh.UpDown.Up); danhSachMayTinh.Xuat(); break; case 3: Clear(); WriteLine("\nSắp xếp danh sách máy tính giảm dần theo dung lượng RAM(Gb)"); WriteLine("\nDanh sách máy tính sau khi giảm dần theo dung lượng RAM(Gb)"); xuLyDuLieuMayTinh.SapXepTheoKieuGoi <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, XuLyDuLieuMayTinh.UpDown.Down); danhSachMayTinh.Xuat(); break; case 4: Clear(); WriteLine("\nSắp xếp danh sách máy tính tăng dần theo tốc độ CPU(Ghz)"); WriteLine("\nDanh sách máy tính sau khi tăng dần theo tốc độ CPU(Ghz)"); xuLyDuLieuMayTinh.SapXepTheoKieuGoi <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed, XuLyDuLieuMayTinh.UpDown.Up); danhSachMayTinh.Xuat(); break; case 5: Clear(); WriteLine("\nSắp xếp danh sách máy tính giảm dần theo tốc độ CPU(Ghz)"); WriteLine("\nDanh sách máy tính sau khi giảm dần theo tốc độ CPU(Ghz)"); xuLyDuLieuMayTinh.SapXepTheoKieuGoi <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed, XuLyDuLieuMayTinh.UpDown.Down); danhSachMayTinh.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("\nXóa máy tính theo thuộc tính"); x = (MayTinh.Tinh) int.MaxValue; while ((MayTinh.Tinh)x < MayTinh.Tinh.Speed || (MayTinh.Tinh)x < MayTinh.Tinh.sCapacity) { Clear(); WriteLine("\n\t\tDANH SÁCH CÁC HÃNG RAM TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachHangTheoThietBi <RAM> (danhSachMayTinh).ConvertAll(x => (object)x)); WriteLine("\n\t\tDANH SÁCH MỨC TỐC ĐỘ CPU TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachThuocTinhTheoThietBi <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed).ConvertAll(x => (object)x)); WriteLine("\n\n\tBẠN MUỐN XÓA THEO KIỂU THUỘC TÍNH NÀO (RAM - CPU) ?"); WriteLine("\nBạn phải nhập trong phạm vi quy định!"); WriteLine("\nVD: RAM nhập 0\tCPU nhập 1"); Write("\nXin mời nhập kiểu thuộc tính để xóa (RAM = 0 or CPU = 1)? >> "); x = (MayTinh.Tinh) int.Parse(ReadLine()); } if ((MayTinh.Tinh)x == MayTinh.Tinh.sCapacity) { while ((int)x < 0 || (int)x > xuLyDuLieuMayTinh.MinMaxThuocTinhThietBi <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, XuLyDuLieuMayTinh.MinMax.Max)) { Clear(); WriteLine("\n\t\tDANH SÁCH MỨC DUNG LƯỢNG RAM TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachThuocTinhTheoThietBi <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity).ConvertAll(x => (object)x)); WriteLine("\n\nVD: 4Gb RAM thì nhập 4"); Write("\n\tMời nhập dữ liệu tương ứng với kiểu thuộc tính đã chọn ở trên >> "); x = float.Parse(ReadLine()); } xuLyDuLieuMayTinh.XoaMayTinhTheoThuocTinh <RAM>(danhSachMayTinh, MayTinh.Tinh.sCapacity, (float)x); Clear(); WriteLine("\nDanh sách sau khi xóa"); danhSachMayTinh.Xuat(); } else { while ((int)x < 0 || (int)x > xuLyDuLieuMayTinh.MinMaxThuocTinhThietBi <RAM> (danhSachMayTinh, MayTinh.Tinh.Speed, XuLyDuLieuMayTinh.MinMax.Max)) { Clear(); WriteLine("\n\t\tDANH SÁCH MỨC TỐC ĐỘ CPU TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachThuocTinhTheoThietBi <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed).ConvertAll(x => (object)x));; WriteLine("\n\nVD: 3.2Ghz Speed thì nhập 3.2"); Write("\n\tMời nhập dữ liệu tương ứng với kiểu thuộc tính đã chọn ở trên >> "); x = float.Parse(ReadLine()); } xuLyDuLieuMayTinh.XoaMayTinhTheoThuocTinh <CPU>(danhSachMayTinh, MayTinh.Tinh.Speed, (float)x); Clear(); WriteLine("\nDanh sách sau khi xóa"); danhSachMayTinh.Xuat(); } break; case 3: Clear(); WriteLine("Cập nhập máy tính theo thuộc tính"); x = (MayTinh.Tinh) int.MaxValue; while ((MayTinh.Tinh)x < MayTinh.Tinh.Speed || (MayTinh.Tinh)x > MayTinh.Tinh.sCapacity) { Clear(); WriteLine("\n\t\tDANH SÁCH CÁC HÃNG RAM TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachHangTheoThietBi <RAM> (danhSachMayTinh).ConvertAll(x => (object)x)); WriteLine("\n\t\tDANH SÁCH CÁC HÃNG CPU TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachHangTheoThietBi <CPU> (danhSachMayTinh).ConvertAll(x => (object)x)); WriteLine("\n\n\tBẠN MUỐN NHẬP THEO KIỂU THUỘC TÍNH NÀO (RAM - CPU) ?"); WriteLine("\nBạn phải nhập trong phạm vi quy định!"); WriteLine("\nVD: RAM nhập 0\tCPU nhập 1"); Write("\nXin mời nhập kiểu thuộc tính để nhập (RAM = 0 or CPU = 1)? >> "); x = (MayTinh.Tinh) int.Parse(ReadLine()); } if ((MayTinh.Tinh)x == MayTinh.Tinh.sCapacity) { Clear(); WriteLine("\n\t\tDANH SÁCH MỨC DUNG LƯỢNG RAM TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachThuocTinhTheoThietBi <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity).ConvertAll(x => (object)x)); WriteLine("\n\nVD: 4Gb RAM thì nhập 4"); WriteLine("\n\tMời nhập dữ liệu tương ứng với kiểu thuộc tính đã chọn ở trên"); Write("\nNhập mức dung lượng RAM muốn thay đổi >> "); x = float.Parse(ReadLine()); Write("\nThay đổi thành mức dung lượng? Nhập vào mức dung lượng >> "); y = float.Parse(ReadLine()); while ((int)x < 0 || (int)x > xuLyDuLieuMayTinh.MinMaxThuocTinhThietBi <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, XuLyDuLieuMayTinh.MinMax.Max) || (int)y < 0 || (int)y > xuLyDuLieuMayTinh.MinMaxThuocTinhThietBi <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity, XuLyDuLieuMayTinh.MinMax.Max)) { Clear(); WriteLine("\n\t\tDANH SÁCH MỨC DUNG LƯỢNG RAM TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachThuocTinhTheoThietBi <RAM> (danhSachMayTinh, MayTinh.Tinh.sCapacity).ConvertAll(x => (object)x)); WriteLine("\n\n\nBạn đã nhập sai 1 trong 2 dữ liệu! Vui lòng kiểm tra lại và nhập đúng 2 trường dữ liệu này!!!"); WriteLine("\n\nVD: 4Gb RAM thì nhập 4"); WriteLine("\n\tMời nhập dữ liệu tương ứng với kiểu thuộc tính đã chọn ở trên"); Write("\nNhập mức dung lượng RAM muốn thay đổi >> "); x = float.Parse(ReadLine()); Write("\nThay đổi thành mức dung lượng? Nhập vào mức dung lượng >> "); y = float.Parse(ReadLine()); } Clear(); WriteLine("\n\t\tDANH SÁCH TRƯỚC KHI CẬP NHẬP"); danhSachMayTinh.Xuat(); WriteLine("\n\t\tDANH SÁCH TRƯỚC KHI CẬP NHẬP"); Write("\nNhấn phím bất kì để bắt đầu cập nhập >> "); ReadLine(); xuLyDuLieuMayTinh.CapNhapMayTinhTheoThuocTinh <RAM>(danhSachMayTinh, MayTinh.Tinh.sCapacity, (float)x, (float)y); Clear(); WriteLine("\nDanh sách sau khi cập nhập"); danhSachMayTinh.Xuat(); } else { Clear(); WriteLine("\n\t\tDANH SÁCH MỨC TỐC ĐỘ CPU TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachThuocTinhTheoThietBi <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed).ConvertAll(x => (object)x)); WriteLine("\n\nVD: 3.2Ghz Speed thì nhập 3.2"); WriteLine("\n\tMời nhập dữ liệu tương ứng với kiểu thuộc tính đã chọn ở trên"); Write("\nNhập mức tốc độ CPU muốn thay đổi >> "); x = float.Parse(ReadLine()); Write("\nThay đổi thành mức tốc độ? Nhập vào mức tốc độ CPU >> "); y = float.Parse(ReadLine()); while ((int)x < 0 || (int)x > xuLyDuLieuMayTinh.MinMaxThuocTinhThietBi <RAM> (danhSachMayTinh, MayTinh.Tinh.Speed, XuLyDuLieuMayTinh.MinMax.Max) || (int)y < 0 || (int)y > xuLyDuLieuMayTinh.MinMaxThuocTinhThietBi <RAM> (danhSachMayTinh, MayTinh.Tinh.Speed, XuLyDuLieuMayTinh.MinMax.Max)) { Clear(); WriteLine("\n\t\tDANH SÁCH MỨC TỐC ĐỘ CPU TỒN TẠI TRONG DỮ LIỆU"); xuLyDuLieuMayTinh.XuatDuLieuDuocCanLe(xuLyDuLieuMayTinh.DanhSachThuocTinhTheoThietBi <CPU> (danhSachMayTinh, MayTinh.Tinh.Speed).ConvertAll(x => (object)x)); WriteLine("\n\n\nBạn đã nhập sai 1 trong 2 dữ liệu! Vui lòng kiểm tra lại và nhập đúng 2 trường dữ liệu này!!!"); WriteLine("\n\nVD: 3.2Ghz Speed thì nhập 3.2"); WriteLine("\n\tMời nhập dữ liệu tương ứng với kiểu thuộc tính đã chọn ở trên"); Write("\nNhập mức tốc độ CPU muốn thay đổi >> "); x = float.Parse(ReadLine()); Write("\nThay đổi thành mức tốc độ? Nhập vào mức tốc độ >> "); y = float.Parse(ReadLine()); } Clear(); WriteLine("\n\t\tDANH SÁCH TRƯỚC KHI CẬP NHẬP"); danhSachMayTinh.Xuat(); WriteLine("\n\t\tDANH SÁCH TRƯỚC KHI CẬP NHẬP"); Write("\nNhấn phím bất kì để bắt đầu cập nhập >> "); ReadLine(); xuLyDuLieuMayTinh.CapNhapMayTinhTheoThuocTinh <CPU>(danhSachMayTinh, MayTinh.Tinh.Speed, (float)x, (float)y); Clear(); WriteLine("\nDanh sách sau khi cập nhập"); danhSachMayTinh.Xuat(); } break; case 4: Clear(); WriteLine("Lưu dữ liệu hiện tại vào tệp mới với đúng cấu trúc của dữ liệu hiện tại"); Write("\n Nhấn phím bất kì để bắt đầu ghi file >> "); ReadLine(); xuLyDuLieuMayTinh.GhiFile(danhSachMayTinh); WriteLine("\nGhi file hoàn tất! Kiểm tra lại trong đường dẫn chứa Solution..."); break; } break; } ReadLine(); }
public void XuLyMenu(int menu) { int i = 0; string hangSX; switch (menu) { case 0: return; case 1: #region Các chức năng nhập xuất cơ bản 🤷🤷🤷 Clear(); WriteLine("Doc du lieu tu tap tin..."); listMayTinh.ImportFromFile(); break; case 2: Clear(); WriteLine("Xuat >> "); listMayTinh.Xuat(); break; #endregion case 3: #region Các chức năng tìm kiếm 🚀🚀🚀 Clear(); WriteLine("Tim kiem theo chuc nang tuong ung >> "); WriteLine("\nMay tinh co gia re nhat..."); listMayTinhQL.DanhSachMayTinhTheoGia <IThietBi>(listMayTinh, QuanLyMayTinh.MinMax.Min).Xuat(); WriteLine("\nMay tinh co CPU gia thap nhat..."); listMayTinhQL.DanhSachMayTinhTheoGia <CPU>(listMayTinh, QuanLyMayTinh.MinMax.Min).Xuat(); WriteLine("\nMay tinh co CPU gia cao nhat..."); listMayTinhQL.DanhSachMayTinhTheoGia <CPU>(listMayTinh, QuanLyMayTinh.MinMax.Max).Xuat(); WriteLine("\nMay tinh co RAM gia thap nhat..."); listMayTinhQL.DanhSachMayTinhTheoGia <RAM>(listMayTinh, QuanLyMayTinh.MinMax.Min).Xuat(); WriteLine("\nMay tinh co RAM gia cao nhat..."); listMayTinhQL.DanhSachMayTinhTheoGia <RAM>(listMayTinh, QuanLyMayTinh.MinMax.Max).Xuat(); WriteLine("\nHang duoc su dung CPU nhieu nhat..."); listMayTinhQL.DanhSachXHMinMax <CPU>(listMayTinh, QuanLyMayTinh.MinMax.Max).ForEach(x => Write($"{x.PadRight(20)}\t")); WriteLine("\nHang duoc su dung CPU it nhat..."); listMayTinhQL.DanhSachXHMinMax <CPU>(listMayTinh, QuanLyMayTinh.MinMax.Min).ForEach(x => Write($"{x.PadRight(20)}\t")); WriteLine("\nHang duoc su dung RAM nhieu nhat..."); listMayTinhQL.DanhSachXHMinMax <RAM>(listMayTinh, QuanLyMayTinh.MinMax.Max).ForEach(x => Write($"{x.PadRight(20)}\t")); WriteLine("\nHang duoc su dung RAM it nhat..."); listMayTinhQL.DanhSachXHMinMax <CPU>(listMayTinh, QuanLyMayTinh.MinMax.Min).ForEach(x => Write($"{x.PadRight(20)}\t")); break; #endregion case 4: #region Các chức năng sắp xếp ¯\_(ツ)_/¯ Clear(); WriteLine("Sap xep danh sach may tinh theo chuc nang tuong ung >> "); WriteLine("\nSap xep danh sach may tinh theo so luong thiet bi..."); listMayTinhQL.SortTheoLoai <IThietBi>(listMayTinh, QuanLyMayTinh.SortBy.SLThietBi).Xuat(); WriteLine("\n\t\tNHAN PHIM BAT KI DE CHUYEN QUA CHE DO SAP XEP KHAC >> "); ReadLine(); Clear(); WriteLine("\nSap xep danh sach may tinh theo gia thiet bi..."); listMayTinhQL.SortTheoLoai <IThietBi>(listMayTinh, QuanLyMayTinh.SortBy.GiaThietBi).Xuat(); WriteLine("\n\t\tNHAN PHIM BAT KI DE CHUYEN QUA CHE DO SAP XEP KHAC >> "); ReadLine(); Clear(); WriteLine("\nSap xep danh sach may tinh theo gia CPU..."); listMayTinhQL.SortTheoLoai <CPU>(listMayTinh, QuanLyMayTinh.SortBy.GiaThietBi).Xuat(); WriteLine("\n\t\tNHAN PHIM BAT KI DE CHUYEN QUA CHE DO SAP XEP KHAC >> "); ReadLine(); Clear(); WriteLine("\nSap xep danh sach may tinh theo gia RAM..."); listMayTinhQL.SortTheoLoai <RAM>(listMayTinh, QuanLyMayTinh.SortBy.GiaThietBi).Xuat(); WriteLine("\n\t\tNHAN PHIM BAT KI DE CHUYEN QUA CHE DO SAP XEP KHAC >> "); ReadLine(); Clear(); WriteLine("\nSap xep danh sach may tinh theo so luong CPU..."); listMayTinhQL.SortTheoLoai <CPU>(listMayTinh, QuanLyMayTinh.SortBy.SLThietBi).Xuat(); WriteLine("\n\t\tNHAN PHIM BAT KI DE CHUYEN QUA CHE DO SAP XEP KHAC >> "); ReadLine(); Clear(); WriteLine("\nSap xep danh sach may tinh theo so luong RAM..."); listMayTinhQL.SortTheoLoai <RAM>(listMayTinh, QuanLyMayTinh.SortBy.SLThietBi).Xuat(); WriteLine("\n\t\tNHAN PHIM BAT KI DE KET THUC CHUC NANG SAP XEP >> "); break; #endregion case 5: #region Các chức năng khác ༼ つ ◕_◕ ༽つ Clear(); WriteLine("Tim danh sach may tinh theo hang >> "); WriteLine("Danh sach cac hang ton tai trong du lieu..."); listMayTinh.DanhSachHangTheoLoai <IThietBi>().ForEach(x => { Write($"\t{x.PadRight(15)} "); i++; if ((i + 1) % 4 == 0) { WriteLine("\t"); } }); Write("\nNhap vao hang san xuat tuong ung de tim kiem >> "); hangSX = ReadLine(); try { listMayTinhQL.TimDSMayTinhByInput(listMayTinh, hangSX); } catch (Exception e) { WriteLine("Bad Exeption (ngoai le khong mong muon): " + e.Message); } finally { Clear(); WriteLine("\nDanh sach cac hang may tinh " + hangSX); listMayTinhQL.TimDSMayTinhByInput(listMayTinh, hangSX).Xuat(); } break; case 6: Clear(); WriteLine("Xoa may tinh theo hang CPU"); WriteLine("Danh sach cac hang CPU ton tai trong du lieu..."); listMayTinh.DanhSachHangTheoLoai <CPU>().ForEach(x => { Write($"\t{x.PadRight(15)} "); i++; if ((i + 1) % 4 == 0) { WriteLine("\t"); } }); Write("\nNhap vao hang san xuat tuong ung de tim kiem >> "); hangSX = ReadLine(); try { listMayTinhQL.XoaMayTinhTheoHangCPU(listMayTinh, hangSX); } catch (Exception e) { WriteLine("Bad Exeption (ngoai le khong mong muon): " + e.Message); } finally { Clear(); WriteLine("\nDanh sach cac hang may tinh sau khi xoa cac may tinh hang " + hangSX); listMayTinhQL.XoaMayTinhTheoHangCPU(listMayTinh, hangSX); listMayTinh.Xuat(); } break; case 7: Clear(); WriteLine("\n\t\tDanh sach cap nhap..."); listMayTinhQL.CapNhapMayTinh(listMayTinh); listMayTinh.Xuat(); break; #endregion case 8: Clear(); WriteLine("Test code >> "); listMayTinh.DanhSachHangTheoLoai <CPU>().ForEach(x => WriteLine(x)); break; } ReadLine(); }