By GokiSoft.com| 09:32 28/10/2021|
C Sharp

[Share Code] Chương trình quản lý Mèo C# (C Sharp) | Chương trình quản lý Cat C# (C Sharp) - C2009G

Bài tập - Chương trình quản lý Mèo C# (C Sharp) | Chương trình quản lý Cat C# (C Sharp)

ColorManager:
Red 	=> 0
Blue 	=> 1
White 	=> 2
Yellow	=> 3

D/s
A1 -> Blue -> index: 1
A2 -> White -> index: 2
A3 -> Red -> index: 0

Sort theo mau:
A1
A3
A2

Sort theo index mau trong ColorManager
A3
A1
A2

Solution???




#Program.cs


using System;
using System.Collections.Generic;

namespace BT2483
{
    delegate void SwitchOption();

    class Program
    {
        static void Main(string[] args)
        {
            SwitchOption[] options = { InputColor, InputCat, DisplayCat,
                SortCatByColor, SearchCatByLoai, SortCatByColorIndex, ExitProgram };
            int choose;

            do
            {
                ShowMenu();
                choose = int.Parse(Console.ReadLine());

                if(choose > 0 && choose <= options.Length)
                {
                    options[choose - 1]();
                } else
                {
                    Console.WriteLine("Nhap sai!!!");
                }
            } while (choose != options.Length);
        }

        private static void InputColor()
        {
            ColorManager.GetInstance().Nhap();
        }

        private static void InputCat()
        {
            ManagerCat.GetInstance().Nhap();
        }

        private static void DisplayCat()
        {
            ManagerCat.GetInstance().HienThi();
        }

        private static void SortCatByColor()
        {
            ManagerCat.GetInstance().SortByColor();
            ManagerCat.GetInstance().HienThi();
        }

        private static void SearchCatByLoai()
        {
            Console.WriteLine("Nhap loai can tim: ");
            string loai = Console.ReadLine();

            int count = 0;

            List<CatDetail> CatList = ManagerCat.GetInstance().CatList;
            foreach(CatDetail cat in CatList)
            {
                if(cat.Loai == loai)
                {
                    cat.HienThi();
                    count++;
                }
            }

            if(count > 0)
            {
                Console.WriteLine("So meo tim thay: {0}", count);
            } else
            {
                Console.WriteLine("Khong tim thay meo nao thuoc loai: {0}", loai);
            }
        }

        private static void SortCatByColorIndex()
        {
            ManagerCat.GetInstance().SortByColorIndex();
            ManagerCat.GetInstance().HienThi();
        }

        private static void ExitProgram()
        {
            Console.WriteLine("Thoat chuong trinh!!!");
        }

        static void ShowMenu()
        {
            Console.WriteLine("1. Nhap d/s ma mau");
            Console.WriteLine("2. Nhap d/s meo");
            Console.WriteLine("3. Hien thi thong d/s meo");
            Console.WriteLine("4. Sap xep d/s meo theo mau");
            Console.WriteLine("5. Tim kiem meo theo loai");
            Console.WriteLine("6. Dap xep d/s meo theo bang mau ColorManager");
            Console.WriteLine("7. Thoat");
            Console.WriteLine("Chon: ");
        }
    }
}


#ICat.cs


using System;
namespace BT2483
{
    public interface ICat
    {
        void Nhap();
        void HienThi();
    }
}


#CatDetail.cs


using System;
namespace BT2483
{
    public class CatDetail : ICat
    {
        public string Loai { get; set; }
        public string Mau { get; set; }
        public string NoiSong { get; set; }
        public int ColorIndex { get; set; }

        public CatDetail()
        {
        }

        public void HienThi()
        {
            Console.WriteLine("Loai: {0}, mau: {1}, noi song: {2}", Loai, Mau, NoiSong);
        }

        public void Nhap()
        {
            Console.WriteLine("=============================");
            Console.WriteLine("Nhap loai: ");
            Loai = Console.ReadLine();

            Mau = ColorManager.GetInstance().ReadColor();
            ColorIndex = ColorManager.GetInstance().GetColorIndex(Mau);

            Console.WriteLine("Nhap noi song: ");
            NoiSong = Console.ReadLine();
        }
    }
}


#ColorManager.cs


using System;
using System.Collections.Generic;

namespace BT2483
{
    public class ColorManager : ICat
    {
        public List<string> ColorList { get; set; }

        private static ColorManager _instance = null;

        private ColorManager()
        {
            ColorList = new List<string>();
        }

        public static ColorManager GetInstance()
        {
            if(_instance == null)
            {
                _instance = new ColorManager();
            }
            return _instance;
        }

        public void Nhap()
        {
            string choose;

            do
            {
                Console.WriteLine("Nhap ma mau can them: ");
                choose = Console.ReadLine();
                if(!ColorList.Contains(choose))
                {
                    ColorList.Add(choose);
                }
                Console.WriteLine("Ban co tiep tuc nua ko Y/n?");
                choose = Console.ReadLine().ToUpper();
            } while (choose != "N");
        }

        public int GetColorIndex(string mau)
        {
            for(int i=0;i<ColorList.Count;i++)
            {
                if(ColorList[i] == mau)
                {
                    return i;
                }
            }
            return -1;
        }

        public void HienThi()
        {
            Console.WriteLine("Danh sach ma mau: ");
            for(int i=0;i<ColorList.Count;i++)
            {
                Console.WriteLine("{0}. {1}", i + 1, ColorList[i]);
            }
        }

        public string ReadColor()
        {
            if(ColorList.Count == 0)
            {
                return "";
            }

            string color;

            HienThi();

            Console.WriteLine("Nhap ma mau: ");
            while(true)
            {
                color = Console.ReadLine();
                if(ColorList.Contains(color))
                {
                    return color;
                }
                Console.WriteLine("Nhap lai!!!");
            }
        }
    }
}


#ManagerCat.cs


using System;
using System.Collections.Generic;

namespace BT2483
{
    public class ManagerCat : ICat
    {
        public List<CatDetail> CatList { get; set; }

        private static ManagerCat _instance = null;

        private ManagerCat()
        {
            CatList = new List<CatDetail>();
        }

        public static ManagerCat GetInstance()
        {
            if(_instance == null)
            {
                _instance = new ManagerCat();
            }
            return _instance;
        }

        public void Nhap()
        {
            Console.WriteLine("Nhap N con meo can them: ");
            int n = int.Parse(Console.ReadLine());

            for(int i=0;i<n;i++)
            {
                CatDetail cat = new CatDetail();
                cat.Nhap();

                CatList.Add(cat);
            }
        }

        public void HienThi()
        {
            Console.WriteLine("D/s meo: ");
            foreach(CatDetail cat in CatList)
            {
                cat.HienThi();
            }
        }

        public void SortByColor()
        {
            CatList.Sort((c1, c2) => {
                return c1.Mau.CompareTo(c2.Mau);
            });
        }

        public void SortByColorIndex()
        {
            CatList.Sort((c1, c2) => {
                if(c1.ColorIndex > c2.ColorIndex)
                {
                    return 1;
                }
                return -1;
            });
        }
    }
}


Tags:

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)