Exemple #1
0
        public int TimSLSDMinMax <T>(DanhSachMayTinh list, MinMax minMax)
        {
            List <string> dsHang = list.DanhSachHangTheoLoai <T>();

            switch (minMax)
            {
            case MinMax.Min:
                return(dsHang.Min(x => DemTheoHangSX <T>(list, x)));

            case MinMax.Max:
                return(dsHang.Max(x => DemTheoHangSX <T>(list, x)));
            }
            return(0);
        }
Exemple #2
0
        public List <string> DanhSachXHMinMax <T>(DanhSachMayTinh list, MinMax minMax)
        {
            List <string> result = new List <string>();
            List <string> dsHang = list.DanhSachHangTheoLoai <T>();
            int           obj    = TimSLSDMinMax <T>(list, minMax);

            foreach (var item in dsHang)
            {
                if (DemTheoHangSX <T>(list, item) == obj)
                {
                    result.Add(item);
                }
            }
            return(result);
        }
Exemple #3
0
        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();
        }