C# - C Sharp: Football Management System

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

File IPlayer.cs

namespace Solution_Practical6_Exercise2
{
  interface IPlayer
  {
    string Name { get; set; }
    int Age { get; set; }
    int Attack { get; set; }
    int Defense { get; set; }
    int Stamina { get; set; }
    int Speed { get; set; }
    int Power { get; set; }
  
    void GetInfo();
  }
}

File Player.cs

using System;

namespace Solution_Practical6_Exercise2
{
  class Player : IPlayer
  {
    string name;
    public string Name { get { return name; } set { name = value; } }
    int age;
    public int Age { get { return age; } set { age = value; } }
    int attack;
    public int Attack { get { return attack; } set { attack = value; } }
    int defense;
    public int Defense { get { return defense; } set { defense = value; } }
    int stamina;
    public int Stamina { get { return stamina; } set { stamina = value; } }
    int speed;
    public int Speed { get { return speed; } set { speed = value; } }
    int power;
    public int Power { get { return power; } set { power = value; } }
  
    public void GetInfo()
    {
      Console.WriteLine("Name: " + Name);
      Console.WriteLine("Age: " + Age);
      Console.WriteLine("Average point: " + (Attack + Defense + Stamina + Speed + Power) / 5.0f);
    }
  }
}

File Club.cs

using System;
using System.Collections;
using System.Collections.Generic;

namespace Solution_Practical6_Exercise2
{
  public delegate void ActionDelegate();
  class Club<T> : IEnumerable<T> where T : IPlayer
  {
    event ActionDelegate AttackEvent;
    event ActionDelegate DefenseEvent;
    public Dictionary<int, T> PlayerList = new Dictionary<int, T>();

    public void Add(T t)
    {
      Console.Write("Input name: ");
      t.Name = Console.ReadLine();
      while (true)
      {
        Console.Write("Input age: ");
        try
        {
          t.Age = int.Parse(Console.ReadLine());
          break;
        }
        catch (Exception ex) { Console.WriteLine("Wrong format!"); }
      }
      while (true)
      {
        Console.Write("Input attack: ");
        try
        {
          t.Attack = int.Parse(Console.ReadLine());
          break;
        }
        catch (Exception ex) { Console.WriteLine("Wrong format!"); }
      }
      while (true)
      {
        Console.Write("Input defense: ");
        try
        {
          t.Defense = int.Parse(Console.ReadLine());
          break;
        }
        catch (Exception ex) { Console.WriteLine("Wrong format!"); }
      }
      while (true)
      {
        Console.Write("Input stamina: ");
        try
        {
          t.Stamina = int.Parse(Console.ReadLine());
          break;
        }
        catch (Exception ex) { Console.WriteLine("Wrong format!"); }
      }
      while (true)
      {
        Console.Write("Input speed: ");
        try
        {
          t.Speed = int.Parse(Console.ReadLine());
          break;
        }
        catch (Exception ex) { Console.WriteLine("Wrong format!"); }
      }
      while (true)
      {
        Console.Write("Input power: ");
        try
        {
          t.Power = int.Parse(Console.ReadLine());
          break;
        }
        catch (Exception ex) { Console.WriteLine("Wrong format!"); }
      }
      PlayerList.Add(PlayerList.Count + 1, t);
      float avePoint = (t.Attack + t.Defense + t.Power + t.Speed + t.Stamina) / 5.0f;
      if (avePoint >= 80)
      {
        AttackEvent += new ActionDelegate(t.GetInfo);
      }
      else if (60 <= avePoint && avePoint < 80)
      {
        DefenseEvent += new ActionDelegate(t.GetInfo);
      }
    }

    public IEnumerator<T> GetEnumerator()
    {
      foreach (T t in PlayerList.Values)
      {
        yield return t;
      }
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
      foreach (T t in PlayerList.Values)
      {
        yield return t;
      }
    }

    public void RaiseAttackEvent()
    {
      if (AttackEvent != null)
      {
        AttackEvent();
      }
      else
      {
        Console.WriteLine("No players");
      }
    }

    public void RaiseDefenseEvent()
    {
      if (DefenseEvent != null)
      {
        DefenseEvent();
      }
      else
      {
        Console.WriteLine("No players");
      }
    }
  }
}

File Program.cs

using System;

namespace Solution_Practical6_Exercise2
{
  class Program
  {
    static void Menu()
    {
      Console.WriteLine("1. Create new Player");
      Console.WriteLine("2. List of players");
      Console.WriteLine("3. Search player by name");
      Console.WriteLine("4. Raise attack event");
      Console.WriteLine("5. Raise defense event");
      Console.WriteLine("6. Exit");
    }
    static void Main(string[] args)
    {
      Club<IPlayer> club = new Club<IPlayer>();
      Menu();
      while (true)
      {
        Console.Write("Please choose an option: ");
        switch (int.Parse(Console.ReadLine()))
        {
          case 1:
            Player player = new Player();
            club.Add(player);
            break;
          case 2:
            Console.WriteLine("List of players:");
            if (club.PlayerList.Count == 0)
            {
              Console.WriteLine("No players!");
            }
            else
            {
              foreach(IPlayer player1 in club)
              {
                player1.GetInfo();
              }
            }
            break;
          case 3:
            if (club.PlayerList.Count == 0)
            {
              Console.WriteLine("No players!");
            }
            else
            {
              Console.Write("Input player name you want to search: ");
              string name = Console.ReadLine();
              bool found = false;
              foreach (IPlayer player1 in club)
              {
                if (name.Equals(player1.Name))
                {
                  player1.GetInfo();
                  found = true;
                }
              }
              if (!found)
              {
                Console.WriteLine("The name {0} is not found!", name);
              }
            }
            break;
          case 4:
            club.RaiseAttackEvent();
            break;
          case 5:
            club.RaiseDefenseEvent();
            break;
          case 6:return;
        }
      }
    }
  }
}
» Tiếp: Mảng răng cưa
« Trước: Students Management System
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!