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 XuLyChucNang(XuLyMenu.TuyChon tuyChon, int menu, DanhSachDanhBa danhSachDanhBa) { 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 thành phố có nhiều thuê bao nhất"); WriteLine("\nThành phố có nhiều thuê bao nhất"); xuLyDuLieuDanhBa.ThanhPhoNhieuThueBaoNhat(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}", x)); break; case 3: Clear(); WriteLine("\nTìm thành phố có ít thuê bao nhất"); WriteLine("\nThành phố có ít thuê bao nhất"); xuLyDuLieuDanhBa.ThanhPhoItThueBaoNhat(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}", x)); break; case 4: Clear(); WriteLine("\nTìm thuê bao sở hữu ít số điện thoại nhất"); WriteLine("\nThuê bao sở hữu ít số điện thoại nhất"); xuLyDuLieuDanhBa.ThueBaoItSDTNhat(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}", x)); break; case 5: Clear(); WriteLine("\nTìm thuê bao sở hữu nhiều số điện thoại nhất"); WriteLine("\nThuê bao sở hữu nhiều số điện thoại nhất"); xuLyDuLieuDanhBa.ThueBaoNhieuSDTNhat(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}", x)); break; case 6: Clear(); WriteLine("\nTìm ngày có nhiều thuê bao đăng ký nhất"); WriteLine("\nNgày có nhiều thuê bao đăng ký nhất"); result = new Dictionary <int, int>(xuLyDuLieuDanhBa.MinMaxNgayThueBaoDangKy(danhSachDanhBa.thueBao, XuLyDuLieuDanhBa.MinMax.Max)); foreach (KeyValuePair <int, int> item in result) { Write("Ngày {0}, ", item.Key); } break; case 7: Clear(); WriteLine("\nTìm ngày có ít thuê bao đăng ký nhất"); WriteLine("\nNgày có ít thuê bao đăng ký nhất"); result = new Dictionary <int, int>(xuLyDuLieuDanhBa.MinMaxNgayThueBaoDangKy(danhSachDanhBa.thueBao, XuLyDuLieuDanhBa.MinMax.Min)); foreach (KeyValuePair <int, int> item in result) { Write("Ngày {0}, ", item.Key); } break; case 8: Clear(); WriteLine("\nTìm tháng không có thuê bao nào đăng ký"); WriteLine("\nTháng không có thuê bao nào đăng ký"); xuLyDuLieuDanhBa.ThangKhongCoThueBaoDangKy(danhSachDanhBa.thueBao).ForEach(x => Write("Tháng {0}, ", x)); break; case 9: Clear(); WriteLine("\nTìm thuê bao theo giới tính"); WriteLine("\n Thuê bao theo giới tính Nam"); xuLyDuLieuDanhBa.TimThueBaoTheoGioiTinh(danhSachDanhBa.thueBao, GioiTinh.Nam).ForEach(x => WriteLine(x)); WriteLine("\n Thuê bao theo giới tính Nữ"); xuLyDuLieuDanhBa.TimThueBaoTheoGioiTinh(danhSachDanhBa.thueBao, GioiTinh.Nu).ForEach(x => WriteLine(x)); break; case 10: Clear(); WriteLine("\n\nnTìm thành phố có nhiều thuê bao cố định nhất"); WriteLine("\nThành phố có nhiều thuê bao cố định nhất"); xuLyDuLieuDanhBa.ThanhPhoNhieuThueBaoCoDinhNhat(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}, ", x)); break; case 11: Clear(); WriteLine("\nTìm thành phố có ít thuê bao cố định nhất"); WriteLine("\nTìm thành phố có ít thuê bao cố định nhất"); xuLyDuLieuDanhBa.ThanhPhoItThueBaoCoDinhNhat(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}, ", x)); break; case 12: Clear(); WriteLine("\nTìm thành phố có nhiều thuê bao di động nhất"); WriteLine("\nThành phố có nhiều thuê bao di động nhất"); xuLyDuLieuDanhBa.ThanhPhoNhieuThueBaoDiDong(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}, ", x)); break; case 13: Clear(); WriteLine("\nTìm thành phố có ít thuê bao di động nhất"); WriteLine("\nThành phố có ít thuê bao di động nhất"); xuLyDuLieuDanhBa.ThanhPhoItThueBaoDiDong(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}, ", x)); break; case 14: Clear(); WriteLine("\nTìm thuê bao sở hữu nhiều số điện thoại cố định nhất"); WriteLine("\nThuê bao sở hữu nhiều số điện thoại cố định nhất"); xuLyDuLieuDanhBa.ThueBaoNhieuSDTCoDinh(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}", x));; break; case 15: Clear(); WriteLine("\nTìm thuê bao sở hữu ít số điện thoại cố định nhất"); WriteLine("\nThuê bao sở hữu ít số điện thoại cố định nhất"); xuLyDuLieuDanhBa.ThueBaoItSDTCoDinh(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}", x));; break; case 16: Clear(); WriteLine("\nTìm thuê bao sở hữu nhiều số điện thoại di động nhất"); WriteLine("\nThuê bao sở hữu nhiều số điện thoại di động nhất"); xuLyDuLieuDanhBa.ThueBaoNhieuSDTDiDong(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}", x));; break; case 17: Clear(); WriteLine("\nTìm thuê bao sở hữu ít số điện thoại di động nhất"); WriteLine("\nThuê bao sở hữu ít số điện thoại di động nhất"); xuLyDuLieuDanhBa.ThueBaoItSDTDiDong(danhSachDanhBa.thueBao).ForEach(x => Write("{0, 5}", x));; break; case 18: Clear(); WriteLine("\nTìm tháng không có thuê bao nào đăng ký số cố định"); xuLyDuLieuDanhBa.ThangKhongCoDangKyCoDinh(danhSachDanhBa.thueBao).ForEach(x => Write("Tháng {0}, ", x)); break; case 19: Clear(); WriteLine("\nTìm tháng không có thuê bao nào đăng ký số di động"); xuLyDuLieuDanhBa.ThangKhongCoDangKyDiDong(danhSachDanhBa.thueBao).ForEach(x => Write("Tháng {0}, ", x)); break; case 20: Clear(); WriteLine("\nTìm thuê bao di động theo giới tính"); WriteLine("\n Thuê bao cố định theo giới tính Nam"); xuLyDuLieuDanhBa.ThueBaoCoDinhTheoGioiTinh(danhSachDanhBa.thueBao, GioiTinh.Nam).ForEach(x => WriteLine(x)); WriteLine("\n Thuê bao cố định theo giới tính Nữ"); xuLyDuLieuDanhBa.ThueBaoCoDinhTheoGioiTinh(danhSachDanhBa.thueBao, GioiTinh.Nu).ForEach(x => WriteLine(x)); break; case 21: Clear(); WriteLine("\nTìm thuê bao cố định theo giới tính"); WriteLine("\n Thuê bao theo giới tính Nam"); xuLyDuLieuDanhBa.ThueBaoDiDongTheoGioiTinh(danhSachDanhBa.thueBao, GioiTinh.Nam).ForEach(x => WriteLine(x)); WriteLine("\n Thuê bao theo giới tính Nữ"); xuLyDuLieuDanhBa.ThueBaoDiDongTheoGioiTinh(danhSachDanhBa.thueBao, GioiTinh.Nu).ForEach(x => WriteLine(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 thuê bao tăng theo họ tên"); danhSachDanhBa.XuatThongTinThueBao(); WriteLine("\n Danh sách sau khi sắp xếp thuê bao tăng theo họ tên"); xuLyDuLieuDanhBa.TangTheoHoTen(danhSachDanhBa.thueBao); danhSachDanhBa.XuatThongTinThueBao(); break; case 3: Clear(); WriteLine("\nSắp xếp danh sách thuê bao giảm theo họ tên"); danhSachDanhBa.XuatThongTinThueBao(); WriteLine("\n Danh sách sau khi sắp xếp thuê bao giảm theo họ tên"); xuLyDuLieuDanhBa.GiamTheoHoTen(danhSachDanhBa.thueBao); danhSachDanhBa.XuatThongTinThueBao(); break; case 4: Clear(); WriteLine("\nSắp xếp danh sách thuê bao tăng theo số lượng điện thoại sở hữu"); danhSachDanhBa.XuatThongTinThueBao(); WriteLine("\n Danh sách sau khi sắp xếp thuê bao tăng theo số lượng điện thoại sở hữu"); xuLyDuLieuDanhBa.TangTheoSLDT(danhSachDanhBa.thueBao); danhSachDanhBa.XuatThongTinThueBao(); break; case 5: Clear(); WriteLine("\nSắp xếp danh sách thuê bao giảm theo số lượng điện thoại sở hữu"); danhSachDanhBa.XuatThongTinThueBao(); WriteLine("\n Danh sách sau khi sắp xếp thuê bao giảm theo số lượng điện thoại sở hữu"); xuLyDuLieuDanhBa.GiamTheoSLDT(danhSachDanhBa.thueBao); danhSachDanhBa.XuatThongTinThueBao(); break; case 6: Clear(); WriteLine("\nSắp xếp danh sách các thành phố tăng theo số lượng thuê bao"); danhSachDanhBa.XuatThongTinThueBao(); WriteLine("\n Danh sách sau khi sắp xếp danh sách các thành phố tăng theo số lượng thuê bao"); xuLyDuLieuDanhBa.TangThanhPhoTheoSLTB(danhSachDanhBa.thueBao); danhSachDanhBa.XuatThongTinThueBao(); break; case 7: Clear(); WriteLine("\nSắp xếp danh sách các thành phố giảm theo số lượng thuê bao"); danhSachDanhBa.XuatThongTinThueBao(); WriteLine("\n Danh sách sau khi sắp xếp danh sách các thành phố giảm theo số lượng thuê bao"); xuLyDuLieuDanhBa.GiamThanhPhoTheoSLTB(danhSachDanhBa.thueBao); danhSachDanhBa.XuatThongTinThueBao(); 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 thuê bao theo địa chỉ"); danhSachDanhBa.XuatThongTinThueBao(); Write("\n Nhập vào địa chỉ của thuê bao cần xóa >> "); x = ReadLine(); xuLyDuLieuDanhBa.XoaTheoDiaChi(danhSachDanhBa.thueBao, (string)x); WriteLine("\n Danh sách sau khi xóa các thuê bao có địa chỉ {0}", x); danhSachDanhBa.XuatThongTinThueBao(); break; case 3: Clear(); WriteLine("\nXóa thuê bao theo ngày lắp đặt"); danhSachDanhBa.XuatThongTinThueBao(); Write("\n Nhập vào ngày lắp đặt của thuê bao cần xóa >> "); x = int.Parse(ReadLine()); xuLyDuLieuDanhBa.XoaTheoNgayLapDat(danhSachDanhBa.thueBao, (int)x); WriteLine("\n Danh sách sau khi xóa các thuê bao có ngày lắp đặt là {0}", x); danhSachDanhBa.XuatThongTinThueBao(); break; case 4: Clear(); WriteLine("\nXóa thuê bao theo nhà dịch vụ"); danhSachDanhBa.XuatThongTinThueBao(); Write("\n Nhập vào nhà dịch vụ của thuê bao cần xóa >> "); x = ReadLine(); xuLyDuLieuDanhBa.XoaTheoNhaDichVu(danhSachDanhBa.thueBao, (string)x); WriteLine("\n Danh sách sau khi xóa các thuê bao có nhà dịch vụ là {0}", x); danhSachDanhBa.XuatThongTinThueBao(); 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("\nTất cả khách hàng nào sinh tháng 1 thì được tặng thêm một số điện thoại mới có số là số CMND"); danhSachDanhBa.XuatThongTinThueBao(); xuLyDuLieuDanhBa.ThemSDTNeuSinhThang1(danhSachDanhBa.thueBao); danhSachDanhBa.XuatThongTinThueBao(); break; case 3: Clear(); WriteLine(@"Thống kê và hiển thị dữ liệu theo từng tỉnh và mỗi tỉnh hiển thị theo thành phố theo mẫu sau Tỉnh: Lâm Đồng(tổng số thuê bao: 4) Thành Phố: Dalat(tổng số thuê bao: 2) 1) 001, nguyen van a, 01 PDTV, Dalat, Lam Dong, 123 2) 002, nguyen van b, 01 PDTV, Dalat, Lam Dong, 123 Thành phố bảo lộc: (Tổng số thuê bao: 2) ---Hiển thị danh sách thuê bao ở thành phố bảo lộc --- Tỉnh Khánh Hòa(Tổng số….) Thành Phố: Nha Trang(tổng số thuê bao:……) ---Danh sách thuê bao-- - " ); xuLyDuLieuDanhBa.ThongKeDuLieu(danhSachDanhBa.thueBao); break; } break; } ReadLine(); }
public void XuLyChucNang(XuLyMenu.TuyChon tuyChon, int menu, XuLyMangPhanSo xuLyMangPhanSo) { PhanSo phanSo = new PhanSo(); Object x; int location; 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 phân số lớn nhất"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Phân số lớn nhất trong mảng là {0}...", xuLyMangPhanSo.PhanSoDuongMax()); break; case 3: Clear(); WriteLine("\nTìm phân số âm lớn nhất"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Mảng phân số âm..."); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.PhanSoAm()); WriteLine("\n Phân số âm lớn nhất trong mảng là {0}...", xuLyMangPhanSo.PhanSoAmMax()); break; case 4: Clear(); WriteLine("\nTìm phân số âm nhỏ nhất"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Mảng phân số âm..."); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.PhanSoAm()); WriteLine("\n Phân số âm nhỏ nhất trong mảng là {0}...", xuLyMangPhanSo.PhanSoAmMin()); break; case 5: Clear(); WriteLine("\nTìm phân số dương lớn nhất"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Mảng phân số dương..."); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.PhanSoDuong()); WriteLine("\n Phân số dương lớn nhất trong mảng là {0}...", xuLyMangPhanSo.PhanSoDuongMax()); break; case 6: Clear(); WriteLine("\nTìm phân số dương nhỏ nhất"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Mảng phân số dương..."); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.PhanSoDuong()); WriteLine("\n Phân số dương nhỏ nhất trong mảng là {0}...", xuLyMangPhanSo.PhanSoDuongMin()); break; case 7: Clear(); WriteLine("\nTìm tất cả các phân số âm trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Mảng phân số dương..."); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.PhanSoDuong()); break; case 8: Clear(); WriteLine("\nTìm tất cả các phân số dương trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Mảng phân số dương..."); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.PhanSoDuong()); break; case 9: Clear(); WriteLine("\nTìm tất cả vị trí của phân số x trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập vào phân số x:"); phanSo.Nhap(); WriteLine("\n Vị trí của phân số {0}...", phanSo); xuLyMangPhanSo.ViTriPhanSoX(phanSo).ForEach(x => Write("{0, 10}", x)); break; case 10: Clear(); WriteLine("\nTìm tất cả vị trí của phân số âm trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Vị trí của phân số âm"); xuLyMangPhanSo.ViTriPhanSoAm().ForEach(x => Write("{0, 10}", x)); break; case 11: Clear(); WriteLine("\nTìm tất cả vị trí của phân số dương trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Vị trí của phân số dương"); xuLyMangPhanSo.ViTriPhanSoDuong().ForEach(x => Write("{0, 10}", x)); 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 phân số đầu tiên trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); xuLyMangPhanSo.XoaDau(); WriteLine("\n Mảng sau khi xóa phân số đầu tiên"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 3: Clear(); WriteLine("\nXóa phân số cuối cùng trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); xuLyMangPhanSo.XoaCuoi(); WriteLine("\n Mảng sau khi xóa phân số cuối cùng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 4: Clear(); WriteLine("\nXóa phân số x trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập vào phân số:"); phanSo.Nhap(); xuLyMangPhanSo.XoaX(phanSo); WriteLine("\n Mảng sau khi xóa phân số {0}", phanSo); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 5: Clear(); WriteLine("\nXóa tất cả phân số có tử là x"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập vào tử >> "); x = int.Parse(ReadLine()); xuLyMangPhanSo.XoaPhanSoTuX((int)x); WriteLine("\n Mảng sau khi xóa phân số có tử là {0}", x); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 6: Clear(); WriteLine("\nXóa tất cả phân số có mẫu là x"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập vào mẫu >> "); x = int.Parse(ReadLine()); xuLyMangPhanSo.XoaPhanSoMauX((int)x); WriteLine("\n Mảng sau khi xóa phân số có mẫu là {0}", x); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 7: Clear(); WriteLine("\nXóa tất cả phân số chẵn"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); xuLyMangPhanSo.XoaPhanSoChan(); WriteLine("\n Mảng sau khi xóa phân số chẵn"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 8: Clear(); WriteLine("\nXóa tất cả phân số lẻ"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); xuLyMangPhanSo.XoaPhanSoLe(); WriteLine("\n Mảng sau khi xóa phân số lẻ"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 9: Clear(); WriteLine("\nXóa một phân số tại vị trí x trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập vào vị trí >> "); location = int.Parse(ReadLine()); xuLyMangPhanSo.XoaTaiViTri(location); WriteLine("\n Mảng sau khi xóa phân số tại vị trí {0}", location); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 10: Clear(); WriteLine("\nXóa tất cả phân số âm trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); xuLyMangPhanSo.XoaPhanSoAm(); WriteLine("\n Mảng sau khi xóa tất phân số âm"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 11: Clear(); WriteLine("\nXóa tất cả phân số dương trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); xuLyMangPhanSo.XoaPhanSoDuong(); WriteLine("\n Mảng sau khi xóa tất phân số dương"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 12: Clear(); WriteLine("\nXóa tất cả các phân số nhỏ nhất"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Mảng sau khi xóa tất phân số nhỏ nhất {0}", xuLyMangPhanSo.PhanSoAmMin()); xuLyMangPhanSo.XoaPhanSoMin(); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 13: Clear(); WriteLine("\nXóa tất cả các phân số lớn nhất"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Mảng sau khi xóa tất phân số lớn nhất {0}", xuLyMangPhanSo.PhanSoDuongMax()); xuLyMangPhanSo.XoaPhanSoMax(); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 14: Clear(); WriteLine("\nXóa tất cả phân số có giá trị giống phân số đầu tiên trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); xuLyMangPhanSo.XoaPhanSoGiongDau(); WriteLine("\n Mảng sau khi xóa tất phân số có giá trị giống phân số đầu tiên trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 15: Clear(); WriteLine("\nXóa tất cả phân số có giá trị giống phân số cuối cùng trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); xuLyMangPhanSo.XoaPhanSoGiongCuoi(); WriteLine("\n Mảng sau khi xóa tất phân số có giá trị giống phân số cuối cùng trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 16: Clear(); WriteLine("\nXóa các phần tử tại các vị trí (vị trí được lưu trong mảng)"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); List <int> position = xuLyMangPhanSo.XacDinhViTri(); WriteLine("\n Các vị trí được xác định"); position.ForEach(x => Write("{0, 10}", x)); position.Sort(); position.Reverse(); xuLyMangPhanSo.XoaTaiCacViTri(position); WriteLine("\n Mảng sau khi xóa tất phân số có các vị trí được xác định trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; } break; case XuLyMenu.TuyChon.Dem: 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("\nĐếm số phân số âm trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Mảng phân số âm..."); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.PhanSoAm()); WriteLine("\n Có {0} phân số âm trong mảng", xuLyMangPhanSo.DemPhanSoAm()); break; case 3: Clear(); WriteLine("\nĐếm số phân số dương trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Mảng phân số dương..."); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.PhanSoDuong()); WriteLine("\n Có {0} phân số dương trong mảng", xuLyMangPhanSo.DemPhanSoDuong()); break; case 4: Clear(); WriteLine("\nĐếm phân số có tử là x trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập vào tử số để kiểm tra >> "); x = float.Parse(ReadLine()); WriteLine("\n Có {0} phân số có tử số là {1} trong mảng...", xuLyMangPhanSo.DemTuSoX((float)x), x); break; case 5: Clear(); WriteLine("\nĐếm phân số có mẫu là x trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập vào mẫu số để kiểm tra >> "); x = float.Parse(ReadLine()); WriteLine("\n Có {0} phân số có mẫu số là {1} trong mảng...", xuLyMangPhanSo.DemMauSoX((float)x), x); break; } break; case XuLyMenu.TuyChon.Them: 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 phân số đầu tiên trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập phân số cần thêm:"); phanSo.Nhap(); xuLyMangPhanSo.ThemDau(phanSo); WriteLine("\n Danh sách sau khi thêm phân số {0} vào đầu", phanSo); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 3: Clear(); WriteLine("\nThêm phân số cuối cùng trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập phân số cần thêm:"); phanSo.Nhap(); xuLyMangPhanSo.ThemCuoi(phanSo); WriteLine("\n Danh sách sau khi thêm phân số {0} vào cuối", phanSo); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 4: Clear(); WriteLine("\nThêm một phân số tại vị trí trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập phân số cần thêm:"); phanSo.Nhap(); Write("\n Nhập vào vị trí cần thêm >> "); location = int.Parse(ReadLine()); xuLyMangPhanSo.ThemTaiViTri(location, phanSo); WriteLine("\n Danh sách sau khi thêm phân số {0} vào danh sách tại vị trí {1}", phanSo, location); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); 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 phân số theo chiều tăng của tử"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Danh sách sau khi sắp xếp tăng theo chiều tăng của tử"); xuLyMangPhanSo.TangTheoTu(); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 3: Clear(); WriteLine("\nSắp xếp phân số theo chiều tăng của mẫu"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Danh sách sau khi sắp xếp tăng theo chiều tăng của mẫu"); xuLyMangPhanSo.TangTheoMau(); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 4: Clear(); WriteLine("\nSắp xếp phân số theo chiều giảm của mẫu"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Danh sách sau khi sắp xếp giảm theo chiều giảm của tử"); xuLyMangPhanSo.GiamTheoTu(); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; case 5: Clear(); WriteLine("\nSắp xếp phân số theo chiều giảm của mẫu"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Danh sách sau khi sắp xếp giảm theo chiều giảm của mẫu"); xuLyMangPhanSo.GiamTheoMau(); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); break; } break; case XuLyMenu.TuyChon.Tong: 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ổng tất cả các phân số âm trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Tổng tất cả các phân số âm trong mảng là {0}", xuLyMangPhanSo.TongAm()); break; case 3: Clear(); WriteLine("\nTổng tất cả các phân số dương trong mảng"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); WriteLine("\n Tổng tất cả các phân số dương trong mảng là {0}", xuLyMangPhanSo.TongDuong()); break; case 4: Clear(); WriteLine("\nTổng tất cả phân số có tử là x"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập vào tử số >> "); x = int.Parse(ReadLine()); WriteLine("\n Tổng tất cả các phân số có tử là {0} trong mảng là {1}", x, xuLyMangPhanSo.TongTuX((int)x)); break; case 5: Clear(); WriteLine("\nTổng tất cả phân số có mẫu là x"); xuLyMangPhanSo.Xuat(xuLyMangPhanSo.a); Write("\n Nhập vào mẫu số >> "); x = int.Parse(ReadLine()); WriteLine("\n Tổng tất cả các phân số có mẫu là {0} trong mảng là {1}", x, xuLyMangPhanSo.TongMauX((int)x)); break; } 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(); }