Beispiel #1
0
        public DanhSachMayTinh DanhSachMayTinhTheoGia <T>(DanhSachMayTinh list, MinMax minMax)
        {
            DanhSachMayTinh result = new DanhSachMayTinh();

            result.listMayTinh = list.listMayTinh.Where(x => x.GiaTheoLoai <T>() == TinhGia <T>(list, minMax)).ToList();
            return(result);
        }
Beispiel #2
0
 public void CapNhapMayTinhTheoThuocTinh <T>(DanhSachMayTinh danhSachMayTinh, MayTinh.Tinh tinh, float obj, float obj2)
 {
     foreach (var item in danhSachMayTinh.listMayTinh)
     {
         if (item.IsEquipment <T>())
         {
             item.CapNhapThuocTinhThietBi <T>(tinh, obj, obj2);
         }
     }
 }
Beispiel #3
0
        public void GhiFile(DanhSachMayTinh danhSachMayTinh)
        {
            string result = "\n\n\t\t\tDANH SACH MAY TINH";

            foreach (var item in danhSachMayTinh.listMayTinh)
            {
                result += item;
            }
            using (StreamWriter file = new StreamWriter("maytinhsiucap.txt", append: false))
                file.Write(result);
        }
Beispiel #4
0
        private float MinMaxTongThuocTinhThietBi <T>(DanhSachMayTinh danhSachMayTinh, MayTinh.Tinh tinh, MinMax minMax)
        {
            switch (minMax)
            {
            case MinMax.Min:
                return(danhSachMayTinh.listMayTinh.Min(x => x.TinhTongThuocTinh <T>(tinh)));

            case MinMax.Max:
                return(danhSachMayTinh.listMayTinh.Max(x => x.TinhTongThuocTinh <T>(tinh)));
            }
            return(0);
        }
Beispiel #5
0
        public float MinMaxThuocTinhThietBi <T>(DanhSachMayTinh danhSachMayTinh, MayTinh.Tinh tinh, MinMax minMax)
        {
            switch (minMax)
            {
            case MinMax.Min:
                return(danhSachMayTinh.listMayTinh.Min(x => x.TruyXuatThuocTinhThietBi(tinh)));

            case MinMax.Max:
                return(danhSachMayTinh.listMayTinh.Max(x => x.TruyXuatThuocTinhThietBi(tinh)));
            }
            return(0);
        }
Beispiel #6
0
        public void XoaMayTinhTheoThuocTinh <T>(DanhSachMayTinh danhSachMayTinh, MayTinh.Tinh tinh, float obj)
        {
            List <MayTinh> reList = new List <MayTinh>(danhSachMayTinh.listMayTinh);

            foreach (var item in reList)
            {
                if (item.TruyXuatThuocTinhThietBi(tinh) == obj)
                {
                    danhSachMayTinh.listMayTinh.Remove(item);
                }
            }
        }
Beispiel #7
0
 public void CapNhapMayTinh(DanhSachMayTinh list)
 {
     //foreach (var item in list.listMayTinh)
     //	foreach (var ss in item.list)
     //		if (ss is CPU && ss.HangSX.CompareTo("Intel") == 0)
     //			ss.Gia = 700;
     list.listMayTinh.ForEach(item => item.list.ForEach(ss => { if (ss.HangSX.CompareTo("Intel") == 0)
                                                                {
                                                                    ss.Gia = 700;
                                                                }
                                                        }));
 }
Beispiel #8
0
        public void SapXepTheoKieuGoi <T>(DanhSachMayTinh danhSachMayTinh, MayTinh.Tinh tinh, UpDown upDown)
        {
            switch (upDown)
            {
            case UpDown.Up:
                danhSachMayTinh.listMayTinh = danhSachMayTinh.listMayTinh.OrderBy(x => x.TinhTongThuocTinh <T>(tinh)).ToList();
                return;

            case UpDown.Down:
                danhSachMayTinh.listMayTinh = danhSachMayTinh.listMayTinh.OrderByDescending(x => x.TinhTongThuocTinh <T>(tinh)).ToList();
                return;
            }
        }
Beispiel #9
0
        public List <string> DanhSachHangTheoThietBi <T>(DanhSachMayTinh danhSachMayTinh)
        {
            List <string> result = new List <string>();

            foreach (var item in danhSachMayTinh.listMayTinh)
            {
                if (!result.Contains(item.TruyXuatHangCuaThietBi <T>()))
                {
                    result.Add(item.TruyXuatHangCuaThietBi <T>());
                }
            }
            return(result);
        }
Beispiel #10
0
        public List <float> DanhSachThuocTinhTheoThietBi <T>(DanhSachMayTinh danhSachMayTinh, MayTinh.Tinh tinh)
        {
            List <float> result = new List <float>();

            foreach (var item in danhSachMayTinh.listMayTinh)
            {
                if (!result.Contains(item.TruyXuatThuocTinhThietBi(tinh)))
                {
                    result.Add(item.TruyXuatThuocTinhThietBi(tinh));
                }
            }
            return(result);
        }
Beispiel #11
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);
        }
Beispiel #12
0
        public void XoaMayTinhTheoHangCPU(DanhSachMayTinh list, string hangSX)
        {
            List <MayTinh> reList = new List <MayTinh>(list.listMayTinh);

            //foreach (var item in reList)
            //	foreach (var ss in item.DanhSachHangTheoLoai<CPU>())
            //		if (ss.CompareTo(hangSX) == 0)
            //			listMayTinh.Remove(item);
            reList.ForEach(item => item.DanhSachHangTheoLoai <CPU>().ForEach(ss => { if (ss.CompareTo(hangSX) == 0)
                                                                                     {
                                                                                         list.listMayTinh.Remove(item);
                                                                                     }
                                                                             }));
        }
Beispiel #13
0
        public void XuLyTuyChon(TuyChon tuyChon, DanhSachMayTinh danhSachMayTinh)
        {
            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, danhSachMayTinh);
                } 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, danhSachMayTinh);
                } 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, danhSachMayTinh);
                } while (menu > 0);
                break;
            }
            ReadLine();
        }
Beispiel #14
0
        public DanhSachMayTinh TimDSMayTinhByInput(DanhSachMayTinh list, string hangSX)
        {
            DanhSachMayTinh result = new DanhSachMayTinh();

            //foreach (var item in list.listMayTinh)
            //	foreach (var ss in item.DanhSachHang())
            //		if (ss.CompareTo(hangSX) == 0)
            //			result.Them(item);
            list.listMayTinh.ForEach(item => item.DanhSachHang().ForEach(ss => { if (ss.CompareTo(hangSX) == 0)
                                                                                 {
                                                                                     result.Them(item);
                                                                                 }
                                                                         }));
            return(result);
        }
Beispiel #15
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);
        }
Beispiel #16
0
        public float TinhGia <T>(DanhSachMayTinh list, MinMax minMax)
        {
            switch (minMax)
            {
            case MinMax.Min:
                return(list.listMayTinh.Min(x => x.GiaTheoLoai <T>()));

            case MinMax.Max:
                return(list.listMayTinh.Max(x => x.GiaTheoLoai <T>()));

            case MinMax.All:
                return(list.listMayTinh.Sum(x => x.TongGia()));
            }
            return(0);
        }
Beispiel #17
0
        public DanhSachMayTinh SortTheoLoai <T>(DanhSachMayTinh list, SortBy sortBy)
        {
            DanhSachMayTinh result = new DanhSachMayTinh();

            switch (sortBy)
            {
            case SortBy.SLThietBi:
                result.listMayTinh = list.listMayTinh.OrderBy(x => x.DemThietBiTheoLoai <T>()).ToList();
                return(result);

            case SortBy.GiaThietBi:
                result.listMayTinh = list.listMayTinh.OrderBy(x => x.GiaTheoLoai <T>()).ToList();
                return(result);
            }
            return(null);
        }
Beispiel #18
0
        public List <string> DanhSachHangMinMaxThuocTinh <T>(DanhSachMayTinh danhSachMayTinh, MayTinh.Tinh tinh, MinMax minMax)
        {
            List <string> result = new List <string>();

            foreach (var item in danhSachMayTinh.listMayTinh)
            {
                if (item.TruyXuatThuocTinhThietBi(tinh) == MinMaxThuocTinhThietBi <T>(danhSachMayTinh, tinh, minMax))
                {
                    if (!result.Contains(item.TruyXuatHangCuaThietBi <T>()))
                    {
                        result.Add(item.TruyXuatHangCuaThietBi <T>());
                    }
                }
            }
            return(result);
        }
Beispiel #19
0
 public int DemTheoHangSX <T>(DanhSachMayTinh list, string hangSX) => list.listMayTinh.Sum(x => x.DemTheoHangSX <T>(hangSX));
Beispiel #20
0
 public List <MayTinh> DanhSachMayTinhMinMaxTheoThuocTinh <T>(DanhSachMayTinh danhSachMayTinh, MayTinh.Tinh tinh, MinMax minMax)
 => danhSachMayTinh.listMayTinh.Where(x => x.TinhTongThuocTinh <T>(tinh) == MinMaxTongThuocTinhThietBi <T>(danhSachMayTinh, tinh, minMax)).ToList();
Beispiel #21
0
 public List <MayTinh> DSMTTheoThuocTinh_Hang <T>(DanhSachMayTinh danhSachMayTinh, MayTinh.Tinh tinh, float obj, string hangSX)
 => danhSachMayTinh.listMayTinh.FindAll(item => item.TruyXuatThuocTinhThietBi(tinh) == obj &&
                                        String.Compare(item.TruyXuatHangCuaThietBi <T>(), hangSX, true) == 0);
Beispiel #22
0
        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();
        }
Beispiel #23
0
 public List <MayTinh> DSMTThuocTinhLonHonX <T>(DanhSachMayTinh danhSachMayTinh, MayTinh.Tinh tinh, float x)
 => danhSachMayTinh.listMayTinh.FindAll(item => item.TruyXuatThuocTinhThietBi(tinh) > x);