10 June 2016

Assignment C# Fpt Aptech 2016 - Programming Assignment






Class Program
Assignment C# fpt aptech 2016 - Programming Assignment C# 2016
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Assignment
{
        // _______________ 
        //< Duong Huu Dai >
        // ---------------
        //        \   ^__^
        //         \  (oo)\_______
        //            (__)\       )\/\
        //                ||--WWW |
        //                ||     ||
    class Program
    {
        //===========Khỏi tạo đối tượng list=========//
        List<Doi> listdoi = new List<Doi>();
        List<Lichthi> listlt = new List<Lichthi>();
        List<Ketqua> listkq = new List<Ketqua>();
        List<Ketqua> listthang = new List<Ketqua>();
        List<Ketqua> listthua = new List<Ketqua>();
        List<Ketqua> listhoa = new List<Ketqua>();

        //===============Quản lý danh sách===========//
        public void danhSach(List<Doi> list)
        {
            int n;
            do
            {
                Console.WriteLine("\n=================================");
                Console.WriteLine("- 1. Xem danh sach doi bong.");
                Console.WriteLine("- 2. Cap nhat danh sach doi bong.");
                Console.WriteLine("- 3. Them moi mot doi bong.");
                Console.WriteLine("- 0. Tro ve menu chinh.");

                n = int.Parse(Console.ReadLine());
                switch (n)
                {
                    case 0:
                        break;
                    case 1:
                        xemDanhSach(list);
                        break;
                    case 2:
                        capNhatDanhSach(list);
                        break;
                    case 3:
                        themMoi(list);
                        break;
                    default:
                        Console.WriteLine("Vui long chon lai!");
                        break;
                }
            } while (n.CompareTo(0) != 0);
        }          //-Menu danh sách
        public List<Doi> themMoi(List<Doi> list)
        {
            string answer = "";
            do
            {
                Console.WriteLine("======Them moi mot doi bong=====");
                Console.Write("- Nhap ma doi: ");
                string maDoi = Console.ReadLine();
                Console.Write("- Nhap ten doi: ");
                string tenDoi = Console.ReadLine();
                Console.Write("- Nhap ten huan luyen vien: ");
                string tenHLV = Console.ReadLine();
                list.Add(new Doi(maDoi, tenDoi, tenHLV));
                Console.WriteLine("- Ban co muon tiep tuc? [Y/N]");
                answer = Console.ReadLine();
                answer = answer.ToLower();
            } while (answer.CompareTo("y") == 0);
            return list;
        }      //-Thêm mới đội
        public void capNhatDanhSach(List<Doi> list)
        {
            string answer = "";
            do
            {
                Console.WriteLine("======Cap nhat thong tin doi bong=====");
                Console.Write("- Nhap ma doi: ");
                string maDoi = Console.ReadLine();
                Console.Write("- Sua ten doi: ");
                string tenDoi = Console.ReadLine();
                Console.Write("- Sua ten huan luyen vien: ");
                string tenHLV = Console.ReadLine();
                Console.WriteLine("- Ban co muon cap nhat thong tin? [Y/N]");
                string update = Console.ReadLine();
                update = update.ToLower();
                //Update một item trong list
                if (update == "y")
                {
                    try
                    {
                        //Lấy vị trí của item trong list
                        int index = list.FindIndex(delegate(Doi dsd1)
                        {
                            return dsd1.Madoi.Equals(maDoi);
                        });
                        //Xóa item ở vị trí vừa tìm được
                        list.RemoveAt(index);
                        //Thêm vào list một item mới
                        list.Add(new Doi(maDoi, tenDoi, tenHLV));
                        Console.WriteLine("- Thong tin da duoc cap nhat thanh cong!");

                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("- Cap nhat khong thanh cong!");
                    }
                }

                Console.WriteLine("- Ban co muon tiep tuc? [Y/N]");
                answer = Console.ReadLine();
                answer = answer.ToLower();

            } while (answer.CompareTo("y") == 0);
            //Cap nhat xong hien thi Menu danh sach 2
            if (answer == "n")
            {
                danhSach2(list);
            }
        }   //-Cập nhật đội - hiển thị DS 2
        public void danhSach2(List<Doi> list)
        {
            int n;
            do
            {
                Console.WriteLine("\n=================================");
                Console.WriteLine("- 1. Xem danh sach doi bong.");
                Console.WriteLine("- 2. Cap nhat danh sach doi bong.");
                Console.WriteLine("- 3. Them moi mot doi bong.");
                Console.WriteLine("- 4. Xem danh sach theo thu tu ma doi."); //Sort theo mã
                Console.WriteLine("- 5. Xem danh sach doi bong theo ten doi."); //Sort theo tên
                Console.WriteLine("- 0. Tro ve menu chinh.");

                n = int.Parse(Console.ReadLine());
                switch (n)
                {
                    case 0:
                        break;
                    case 1:
                        xemDanhSach(list);
                        break;
                    case 2:
                        capNhatDanhSach(list);
                        break;
                    case 3:
                        themMoi(list);
                        break;
                    case 4:
                        xemTheoMa(list);
                        break;
                    case 5:
                        xemTheoTen(list);
                        break;
                    default:
                        Console.WriteLine("Vui long chon lai!");
                        break;
                }
            } while (n.CompareTo(0) != 0); //CompareTo return 0 and 1
        }         //-DS 2
        public void xemDanhSach(List<Doi> list)
        {
            Console.WriteLine("================================================");
            Console.WriteLine("|   Ma doi   |   Ten doi   |  Huan luyen vien  |");
            Console.WriteLine("================================================");
            foreach (Doi dsd in list)
            {
                Console.WriteLine("\n   {0}    \t {1}   \t {2} ", dsd.Madoi, dsd.Tendoi, dsd.HLV);
            }
            Console.WriteLine("\n================================================");

        }       //-Xem đội
        public void xemTheoMa(List<Doi> list)
        {
            Console.WriteLine("================================================");
            Console.WriteLine("|   Ma doi   |   Ten doi   |  Huan luyen vien  |");
            Console.WriteLine("================================================");
            list.Sort(new CompareMaDoi());
            foreach (Doi dsd in list)
            {
                Console.WriteLine("\n   {0}    \t {1}   \t {2} ", dsd.Madoi, dsd.Tendoi, dsd.HLV);
            }
            Console.WriteLine("\n================================================");
        }         //-Sort theo mã - DS2
        public void xemTheoTen(List<Doi> list)
        {
            Console.WriteLine("================================================");
            Console.WriteLine("|   Ma doi   |   Ten doi   |  Huan luyen vien  |");
            Console.WriteLine("================================================");
            list.Sort(new CompareTenDoi());
            foreach (Doi dsd in list)
            {
                Console.WriteLine("\n   {0}    \t {1}   \t {2} ", dsd.Madoi, dsd.Tendoi, dsd.HLV);
            }
            Console.WriteLine("\n================================================");
        }        //-Sort theo tên - DS2
        
        //=============Quản lý lịch thi đấu===========//
        public void lichThi(List<Lichthi> list)
        {
            int n;
            do
            {
                Console.WriteLine("\n=================================");
                Console.WriteLine("- 1. Xem lich thi dau.");
                Console.WriteLine("- 2. Cap nhat lich thi dau.");
                Console.WriteLine("- 3. Tao lich thi dau.");
                Console.WriteLine("- 0. Tro ve menu chinh.");

                n = int.Parse(Console.ReadLine());
                switch (n)
                {
                    case 0:
                        break;
                    case 1:
                        xemLich(list);
                        break;
                    case 2:
                        capNhat(list,listkq);
                        break;
                    case 3:
                        taoLich(list);
                        break;
                    default:
                        Console.WriteLine("Vui long chon lai!");
                        break;
                }
            } while (n.CompareTo(0) != 0); //CompareTo return 0 and 1
        }       //-Menu lịch thi
        public void taoLich(List<Lichthi> list)
        {
            int i = 1;
            String n;
            foreach (Lichthi dslt in list)
            {
                Console.WriteLine("- {0}. Tran: {1} vs {2}", i++, dslt.Doia, dslt.Doib);
            }
            do
            {
                string doia = "", doib="";

                Console.WriteLine("===============================");
                Console.Write("- Chon: ");
                int index = int.Parse(Console.ReadLine());
                index = index - 1;
                //Lấy ra vị trí trận đấu trong list lịch thi
                for (int j = 0; j < list.Count; j++)
                {
                    Lichthi values = list[j];
                    if (index == j)
                    {
                        list.RemoveAt(index); //Xóa item tại vị trí chọn
                        Console.WriteLine("- Tran: {0} vs {1}",values.Doia, values.Doib); //in ra màn hình tên trận đấu vừa chọn
                        doia = values.Doia;
                        doib = values.Doib;// Gán trận đấu trong list lịch thi vào biến tạm doia doib
                        break; // Bắt đầu xóa item nhưng đã gán vào biến tạm
                    }
                }

                Console.Write("- Ngay thi dau: ");
                string ngayThi = Console.ReadLine();
                Console.Write("- Gio thi dau: ");
                string gioThi = Console.ReadLine();
                Console.Write("- San thi dau: ");
                string sanThi = Console.ReadLine();
                //Lưu mới vào list khi đã đầy đủ thông tin
                list.Insert(index, new Lichthi() { Doia = doia, Doib = doib, Ngaythi = ngayThi, Giothi = gioThi, Santhi = sanThi });

                Console.WriteLine("Ban co muon tiep tuc? [Y/N]");
                n = Console.ReadLine();
                n = n.ToLower();
            } while (n.CompareTo("y") == 0);
        }       //-Thêm mứi lịch
        public void capNhat(List<Lichthi> listlt, List<Ketqua> listkq)
        {
            string n;
            int i = 1;
            do
            {
                Console.Write("- Tran {0}: ", i++);
                string doia = Console.ReadLine();
                Console.Write(" vs ");
                string doib = Console.ReadLine();

                Console.WriteLine("Ban co muon tiep tuc? [Y/N]");
                n = Console.ReadLine();
                n = n.ToLower();
                listlt.Add(new Lichthi() { Doia = doia, Doib = doib });
                listkq.Add(new Ketqua() { Doia=doia, Doib =doib});
            } while (n.CompareTo("y") == 0); //CompareTo return 0 and 1
        }       //-Cập nhật lịch
        public void xemLich(List<Lichthi> list)
        {
            Console.WriteLine("\n===========Lich Thi Dau==========");
            foreach (Lichthi dslt in list)
            {
                Console.WriteLine("\n| Tran: {0} vs {1}",dslt.Doia,dslt.Doib);
                Console.WriteLine("| Ngay thi dau: " + dslt.Ngaythi);
                Console.WriteLine("| gio thi: " + dslt.Giothi);
                Console.WriteLine("| San thi: " + dslt.Santhi);

            }
        }       //-Xem lịch
        
        //===========Quản lý kết quả thi đấu==========//
        public void ketQua(List<Ketqua> listkq)
        {
            int i = 1, exit;
            string answer, a="", b="";
            Console.WriteLine("==========Ket qua thi dau========");
            foreach (Ketqua kq in listkq)
            {
                Console.WriteLine("- {0}. {1} vs {2}",i++, kq.Doia, kq.Doib);
            }
            Console.WriteLine("- 0. Tro ve menu chinh");
            do{
                Console.WriteLine("Chon: ");
                int index = int.Parse(Console.ReadLine());
                     exit = index; //Nếu chọn 0 thì thoát vòng lặp
                     if (exit != 0) //Nếu chọn khác 0 thì nhập kết quả trận đấu
                     {
                         index = index - 1;
                         //Lấy ra vị trí trong list kết quả
                         for (int j = 0; j < listkq.Count; j++)
                         {
                             Ketqua values = listkq[j];
                             if (index == j)
                             {
                                 listkq.RemoveAt(index); //Xóa item tại vị trí chọn
                                 Console.WriteLine("- Tran: {0} vs {1}", values.Doia, values.Doib); //in ra màn hình tên trận đấu vừa chọn
                                 a = values.Doia;
                                 b = values.Doib;// Gán trận đấu vừa chọn vào biến tạm a b.
                                 break; // Bắt đầu xóa item nhưng đã lưu trận đấu
                             }
                         }

                         Console.Write("- Ket qua {0}: ", a);
                         String kq1 = Console.ReadLine();
                         Console.Write("- Ket qua {0}: ", b);
                         String kq2 = Console.ReadLine();
                         if (int.Parse(kq1) > int.Parse(kq2)) //Nếu 1 > 2 thì a thắng b thua
                         {
                             listthang.Add(new Ketqua() { Thang = 1, Doia = a });
                             listthua.Add(new Ketqua() { Thua = 1, Doib = b });
                         }
                         else if (int.Parse(kq1) < int.Parse(kq2)) // Nếu 1 < 2 thì a thua b thắng
                         {
                             listthang.Add(new Ketqua() { Thang = 1, Doia = b });
                             listthua.Add(new Ketqua() { Thua = 1, Doib = a });
                         }
                         else //  Nếu 1 = 2 thì a = b hòa
                         {
                             listhoa.Add(new Ketqua() { Hoa = 1, Doia = a, Doib = b });
                         }
                         listkq.Add(new Ketqua(a, b, kq1, kq2));
                         Console.WriteLine("Ban co muon tiep tuc? [Y/N]");
                         answer = Console.ReadLine();
                         answer = answer.ToLower();
                         if (answer != "y") //Nếu chọn y thì thóat vòng lặp
                         {
                             exit = 0;
                         }
                     }
            } while (exit.CompareTo(0) != 0);

        }
        public void thongKe(List<Doi> listdoi, List<Lichthi> listlt, List<Ketqua> listkq)
        {
            int diema=0, diemb=0, diemc=0;
            int  i=0, j=0;
                Console.WriteLine("=====================================================================");
                Console.WriteLine("| Ma doi | Ten doi           | Tran | Thang |  Hoa  |  Thua  | Diem |");
                Console.WriteLine("=====================================================================");
                
                foreach (Doi d in listdoi)
                {
                    i = i++;
                    if (listlt[i].Doia.Equals(d.Tendoi))
                    {

                        int tran1 = (from n2 in listlt where n2.Doib == d.Tendoi select n2).Count();
                        int tran2 = (from n1 in listlt where n1.Doia == d.Tendoi select n1).Count();
                        int tempTran = tran1 + tran2; //Trận
                        int thang1 = (from n2 in listthang where n2.Doib == d.Tendoi select n2).Count();
                        int thang2 = (from n1 in listthang where n1.Doia == d.Tendoi select n1).Count();
                        int tempThang = thang1 + thang2; //Thắng
                        int hoa1 = (from n2 in listhoa where n2.Doib == d.Tendoi select n2).Count();
                        int hoa2 = (from n1 in listhoa where n1.Doia == d.Tendoi select n1).Count();
                        int tempHoa = hoa1 + hoa2; //Hòa
                        int thua1 = (from n2 in listthua where n2.Doib == d.Tendoi select n2).Count();
                        int thua2 = (from n1 in listthua where n1.Doia == d.Tendoi select n1).Count();
                        int tempThua = thua1 + thua2; //Thua
                        int diem1 = (from n2 in listkq where n2.Doib == d.Tendoi select n2).Sum(item => int.Parse(item.kqB));
                        int diem2 = (from n1 in listkq where n1.Doia == d.Tendoi select n1).Sum(item => int.Parse(item.kqA));
                        int tempDiem = diem1 + diem2; //Diem
  
                        Console.WriteLine("  {0}\t  {1}\t\t{2}\t{3}\t{4}\t{5}\t{6}", d.Madoi, d.Tendoi, tempTran, tempThang, tempHoa, tempThua, tempDiem);
                    } 
                    else if (listlt[i].Doib.Equals(d.Tendoi))
                        {
                            int tran1 = (from n2 in listlt where n2.Doib == d.Tendoi select n2).Count();
                            int tran2 = (from n1 in listlt where n1.Doia == d.Tendoi select n1).Count();
                            int tempTran = tran1 + tran2; //Trận
                            int thang1 = (from n2 in listthang where n2.Doib == d.Tendoi select n2).Count();
                            int thang2 = (from n1 in listthang where n1.Doia == d.Tendoi select n1).Count();
                            int tempThang = thang1 + thang2; //Thắng
                            int hoa1 = (from n2 in listhoa where n2.Doib == d.Tendoi select n2).Count();
                            int hoa2 = (from n1 in listhoa where n1.Doia == d.Tendoi select n1).Count();
                            int tempHoa = hoa1 + hoa2; //Hòa
                            int thua1 = (from n2 in listthua where n2.Doib == d.Tendoi select n2).Count();
                            int thua2 = (from n1 in listthua where n1.Doia == d.Tendoi select n1).Count();
                            int tempThua = thua1 + thua2; //Thua
                            int diem1 = (from n2 in listkq where n2.Doib == d.Tendoi select n2).Sum(item => int.Parse(item.kqB));
                            int diem2 = (from n1 in listkq where n1.Doia == d.Tendoi select n1).Sum(item => int.Parse(item.kqA));
                            int tempDiem = diem1 + diem2; //Diem
                            Console.WriteLine("  {0}\t  {1}\t\t{2}\t{3}\t{4}\t{5}\t{6}", d.Madoi, d.Tendoi, tempTran, tempThang, tempHoa, tempThua, tempDiem);

                    }
                    else
                    {
                        int tran1 = (from n2 in listlt where n2.Doib == d.Tendoi select n2).Count();
                        int tran2 = (from n1 in listlt where n1.Doia == d.Tendoi select n1).Count();
                        int tempTran = tran1 + tran2; //Trận
                        int thang1 = (from n2 in listthang where n2.Doib == d.Tendoi select n2).Count();
                        int thang2 = (from n1 in listthang where n1.Doia == d.Tendoi select n1).Count();
                        int tempThang = thang1 + thang2; //Thắng
                        int hoa1 = (from n2 in listhoa where n2.Doib == d.Tendoi select n2).Count();
                        int hoa2 = (from n1 in listhoa where n1.Doia == d.Tendoi select n1).Count();
                        int tempHoa = hoa1 + hoa2; //Hòa
                        int thua1 = (from n2 in listthua where n2.Doib == d.Tendoi select n2).Count();
                        int thua2 = (from n1 in listthua where n1.Doia == d.Tendoi select n1).Count();
                        int tempThua = thua1 + thua2; //Thua
                        int diem1 = (from n2 in listkq where n2.Doib == d.Tendoi select n2).Sum(item => int.Parse(item.kqB));
                        int diem2 = (from n1 in listkq where n1.Doia == d.Tendoi select n1).Sum(item => int.Parse(item.kqA));
                        int tempDiem = diem1 + diem2; //Diem
                        Console.WriteLine("  {0}\t  {1}\t\t{2}\t{3}\t{4}\t{5}\t{6}", d.Madoi, d.Tendoi, tempTran, tempThang, tempHoa, tempThua, tempDiem);

                    }
                }
                Console.WriteLine("=====================================================================");
        }

        //==============Menu điều khiển chương trình và Main run====//
        public void menu()
        {
            int n;
            do
            {
                Console.WriteLine("\n--Chao mung den voi V-League 2016--");
                Console.WriteLine("- 1. Quan ly danh sach doi bong.");
                Console.WriteLine("- 2. Quan ly lich thi dau.");
                Console.WriteLine("- 3. Quan ly ket qua thi dau.");
                Console.WriteLine("- 4. Thong ke.");
                Console.WriteLine("- 0. Thoat.");

                n = int.Parse(Console.ReadLine());
                switch (n)
                {
                    case 0:
                        Console.WriteLine("Da thoat khoi chuong trinh!");
                        break;
                    case 1:
                        danhSach(listdoi);
                        break;
                    case 2:
                        lichThi(listlt);
                        break;
                    case 3:
                        ketQua(listkq);
                        break;
                    case 4:
                        thongKe(listdoi, listlt, listkq);
                        break;
                    default:
                        Console.WriteLine("Vui long chon lai");
                        break;
                }
            } while (n.Equals(0) != true); //Equals return true and false
        }
        static void Main(string[] args)
        {
            Program p = new Program();
            p.menu();
            Console.Read();
        }
    }
}
Class Doi (set - get - constructor)
Class Doi C# 2016
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Assignment
{
    class Doi : IComparable<Doi>
    {
        public string Madoi { set; get; }
        public string Tendoi { set; get; }
        public string HLV { set; get; }


        public Doi(string madoi, string tendoi, string hlv)
        {
            Madoi = madoi;
            Tendoi = tendoi;
            HLV = hlv;
        }

        public Doi() { }
        int IComparable<Doi>.CompareTo(Doi tother)
        {
            throw new NotImplementedException();
        }

    }
}
Class Lichthi (set - get - constructor)
Class Lichthi C# 2016
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Assignment
{
    class Lichthi
    {
        public string Doia { set; get; }
        public string Doib { set; get; }
        public string Ngaythi { set; get; }
        public string Giothi { set; get; }
        public string Santhi { set; get; }

        public Lichthi(string doia, string doib, string ngaythi, string giothi, string santhi)
        {
            Doia = doia;
            Doib = doib;
            Ngaythi = ngaythi;
            Giothi = giothi;
            Santhi = santhi;
        }
        public Lichthi() { }
    }
}
Class Ketqua (set - get - constructor)
Class Ketqua C# 2016
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Assignment
{
    class Ketqua
    {
        public string Doia { set; get; }
        public string Doib { set; get; }
        public string kqA { set; get; }
        public string kqB { set; get; }

        public int Thang { set; get; }
        public int Thua { set; get; }
        public int Hoa { set; get; }

        public Ketqua() { }
        public Ketqua(string doia, string doib, string kqa, string kqb)
        {
            Doia = doia;
            Doib = doib;
            kqA = kqa;
            kqB = kqb;
        }

    }
}
Class Sắp xếp theo tên đội list.Sort(new CompareTenDoi())
Class CompareTenDoi C# 2016
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Assignment
{
    class CompareTenDoi : IComparer<Doi>
    {
        int IComparer<Doi>.Compare(Doi x, Doi y)
        {
            if (x == null || x.Tendoi == null)
            {
                return -1;
            }
            if (y == null || y.Tendoi == null)
            {
                return 1;
            }
            if (x.Tendoi == y.Tendoi)
            {
                return 0;
            }
            return x.Tendoi.CompareTo(y.Tendoi);
            throw new NotImplementedException();
        }
    }
}
Class Sắp xếp theo mã đội list.Sort(new CompareMaDoi())
Class CompareMaDoi C# 2016
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Assignment
{
    class CompareMaDoi : IComparer<Doi>
    {
        int IComparer<Doi>.Compare(Doi x, Doi y)
        {
            if (x == null || x.Madoi == null)
            {
                return -1;
            }
            if (y == null || y.Madoi == null)
            {
                return 1;
            }
            if (x.Madoi == y.Madoi)
            {
                return 0;
            }
            return x.Madoi.CompareTo(y.Madoi);
            throw new NotImplementedException();
        }
    }
}

0 nhận xét:

Post a Comment

 

BACK TO TOP

Xuống cuối trang