C# - C Sharp: Football Management System
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; } } } } }
Giải phóng thời gian, khai phóng năng lực