Advertisement
Guest User

Untitled

a guest
May 23rd, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.89 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace TeamWorkProjects
  8. {
  9. class TeamWorkProjects
  10. {
  11. static void Main(string[] args)
  12. {
  13. int numberOfTeams = int.Parse(Console.ReadLine());
  14.  
  15. List<Team> teamList = new List<Team>();
  16.  
  17. ReadTeams(numberOfTeams, teamList);
  18.  
  19. ReadMembers(teamList);
  20.  
  21. List<string> disbandedTeams = new List<string>();
  22.  
  23. DisbandEmptyTeams(teamList, disbandedTeams);
  24.  
  25. teamList = teamList.OrderBy(x => x.TeamName).ToList();
  26.  
  27. teamList = teamList.OrderByDescending(x => x.Members.Count).ToList();
  28.  
  29. //SortTeamsByMemberNames(teamList);
  30.  
  31. PrintTeams(teamList);
  32.  
  33. PrintDisbanded(disbandedTeams);
  34. }
  35.  
  36. private static void SortTeamsByMemberNames(List<Team> teamList)
  37. {
  38. foreach (Team tm in teamList)
  39. {
  40. tm.Members.Sort();
  41. }
  42. }
  43.  
  44. private static void PrintDisbanded(List<string> disbandedTeams)
  45. {
  46. Console.WriteLine("Teams to disband:");
  47. foreach (string dt in disbandedTeams)
  48. {
  49. Console.WriteLine("{0}", dt);
  50. }
  51. }
  52.  
  53. private static void DisbandEmptyTeams(List<Team> teamList, List<string> disbandedList)
  54. {
  55. for (int i = 0; i < teamList.Count; i++)
  56. {
  57. if (teamList[i].Members.Count == 1)
  58. {
  59. disbandedList.Add(teamList[i].TeamName);
  60. teamList.Remove(teamList[i]);
  61. }
  62. }
  63. }
  64.  
  65. private static void ReadMembers(List<Team> teamList)
  66. {
  67. while (true)
  68. {
  69. string input = Console.ReadLine();
  70. if (input == "end of assignment")
  71. {
  72. break;
  73. }
  74.  
  75. string[] inputArr = input.Split('-');
  76. string member = inputArr[0];
  77. string team = inputArr[1];
  78. team = team.Remove(0, 1);
  79. bool teamExist = false;
  80. foreach (Team tm in teamList)
  81. {
  82. if (tm.TeamName == team)
  83. {
  84. teamExist = true;
  85. }
  86. }
  87.  
  88. if (!teamExist)
  89. {
  90. Console.WriteLine("Team {0} does not exist!", team);
  91. }
  92. else
  93. {
  94. bool alredyMember = false;
  95. foreach (Team tm in teamList)
  96. {
  97. if (tm.Members.Contains(member))
  98. {
  99. Console.WriteLine($"Member {member} cannot join team {tm.TeamName}!");
  100. alredyMember = true;
  101. break;
  102. }
  103. }
  104.  
  105. if (!alredyMember)
  106. {
  107. foreach (Team tm in teamList)
  108. {
  109. if (tm.TeamName == team)
  110. {
  111. tm.Members.Add(member);
  112. break;
  113. }
  114. }
  115. }
  116. }
  117.  
  118. }
  119. }
  120.  
  121. private static void PrintTeams(List<Team> teamList)
  122. {
  123. foreach (Team tm in teamList)
  124. {
  125. Console.WriteLine("{0}", tm.TeamName);
  126. foreach (string member in tm.Members)
  127. {
  128. if (member == tm.CreatorsName)
  129. {
  130. Console.WriteLine("- {0}", member);
  131. }
  132. else
  133. {
  134. Console.WriteLine("-- {0}", member);
  135. }
  136. }
  137. }
  138. }
  139.  
  140. private static void ReadTeams(int numberOfTeams, List<Team>teamList)
  141. {
  142. for (int i = 0; i < numberOfTeams; i++)
  143. {
  144. string[] input = Console.ReadLine().Split('-').ToArray();
  145. string creatorName = input[0];
  146. string teamName = input[1];
  147. Team currentTeam = new Team(teamName, creatorName);
  148. currentTeam.Members.Add(creatorName);
  149. bool teamExist = false;
  150. foreach (Team tm in teamList)
  151. {
  152. if (tm.TeamName == currentTeam.TeamName)
  153. {
  154. Console.WriteLine($"Team {currentTeam.TeamName} was already created!");
  155. teamExist = true;
  156. break;
  157. }
  158. else if (tm.CreatorsName == currentTeam.CreatorsName)
  159. {
  160. Console.WriteLine($"{currentTeam.CreatorsName} cannot create another team!");
  161. teamExist = true;
  162. break;
  163. }
  164. }
  165.  
  166. if (!teamExist)
  167. {
  168. //currentTeam.CreatorsName = creatorName;
  169. teamList.Add(currentTeam);
  170. Console.WriteLine("Team {0} has been created by {1}!", currentTeam.TeamName, currentTeam.CreatorsName);
  171. }
  172. }
  173. }
  174. }
  175.  
  176. class Team
  177. {
  178. public Team(string teamName, string creatorsName)
  179. {
  180. TeamName = teamName;
  181. CreatorsName = creatorsName;
  182. }
  183. public string TeamName { get; set; }
  184.  
  185. public string CreatorsName { get; set; }
  186.  
  187. public List<string> Members = new List<string>();
  188. }
  189. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement