Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.29 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. using System.IO;
  7. namespace Bonus
  8. {
  9. class Program
  10. {
  11. public const string fileData = "Data.txt";
  12. public const string fileResults = "Results.txt";
  13. public const int CMax = 100;
  14.  
  15. static void Main(string[] args)
  16. {
  17. ResearcherList Researchers = new ResearcherList();
  18. string[] bankList;
  19. int bankListLength;
  20. Read(ref Researchers, fileData);
  21. double[] totalContributions = AllContributions(Researchers);
  22. SeperateBonuses(ref Researchers, totalContributions);
  23. TotalBonus(ref Researchers);
  24. bool[] LowPaidID = BellowAverageList(Researchers);
  25. AllBanks(Researchers, out bankList, out bankListLength);
  26. Print(Researchers, fileResults);
  27. BankTransactionPrint(Researchers, bankList, bankListLength, fileResults);
  28. LowPaidPrint(Researchers, LowPaidID);
  29. Console.WriteLine("All of the information is stored within the Results.txt file");
  30. Console.ReadKey();
  31. }
  32.  
  33. private static void Read(ref ResearcherList _Researchers, string filePath)
  34. {
  35. using (StreamReader reader = new StreamReader(filePath))
  36. {
  37. string line;
  38. int[] bonus = new int[4];
  39. string[] values;
  40. line = reader.ReadLine();
  41. values = line.Split(';');
  42. bonus[0] = int.Parse(values[0]);
  43. bonus[1] = int.Parse(values[1]);
  44. bonus[2] = int.Parse(values[2]);
  45. bonus[3] = int.Parse(values[3]);
  46.  
  47. _Researchers = new ResearcherList(bonus);
  48.  
  49. while ((line = reader.ReadLine()) != null)
  50. {
  51.  
  52. values = line.Split(';');
  53. string surname = values[0];
  54. string name = values[1];
  55. string bankName = values[2];
  56.  
  57. int bankAccount = int.Parse(values[3]);
  58. double[] contribution = new double[4];
  59. for (int i = 0; i < 4; i++)
  60. {
  61. contribution[i] = double.Parse(values[i + 4]);
  62. }
  63. Researcher _Researcher = new Researcher(surname, name, bankName, bankAccount, contribution, 0);
  64. _Researchers.Append(_Researcher);
  65. }
  66. }
  67. }
  68.  
  69. private static double[] AllContributions(ResearcherList _Researchers)
  70. {
  71. double[] totalContributions = new double[4];
  72. totalContributions[0] = 0;
  73. totalContributions[1] = 0;
  74. totalContributions[2] = 0;
  75. totalContributions[3] = 0;
  76. for (int j = 0; j < 4; j++)
  77. {
  78. for (int i = 0; i < _Researchers.Count; i++)
  79. {
  80. totalContributions[j] += _Researchers.Researchers[i].ResearchContribution[j];
  81. }
  82. }
  83. return totalContributions;
  84. }
  85.  
  86. private static void SeperateBonuses(ref ResearcherList _Researchers, double[] totalContributions)
  87. {
  88.  
  89. for (int i = 0; i < _Researchers.Count; i++)
  90. {
  91. for (int j = 0; j < 4; j++)
  92. {
  93. _Researchers.Researchers[i].Bonus[j] = ((_Researchers.Bonus[j] / totalContributions[j]) * _Researchers.Researchers[i].ResearchContribution[j]);
  94. }
  95. }
  96. }
  97.  
  98. private static void TotalBonus(ref ResearcherList _Researchers)
  99. {
  100. double completeBonus;
  101. for (int i = 0; i < _Researchers.Count; i++)
  102. {
  103. completeBonus = 0;
  104. for (int j = 0; j < 4; j++)
  105. {
  106. completeBonus += _Researchers.Researchers[i].Bonus[j];
  107. }
  108. _Researchers.Researchers[i].TotalBonus = completeBonus;
  109. }
  110. }
  111.  
  112. private static bool[] BellowAverageList(ResearcherList _Researchers)
  113. {
  114. bool[] LowPaidID = new bool[100];
  115. double averageBonus = (_Researchers.Bonus[0] + _Researchers.Bonus[1] + _Researchers.Bonus[2] + _Researchers.Bonus[3]) / _Researchers.Count;
  116. for(int i = 0; i < _Researchers.Count; i++)
  117. {
  118. if (averageBonus > _Researchers.Researchers[i].TotalBonus)
  119. LowPaidID[i] = true;
  120. else
  121. LowPaidID[i] = false;
  122. }
  123. return LowPaidID;
  124. }
  125.  
  126. private static void AllBanks(ResearcherList _Researchers, out string[] bankList, out int bankListLength)
  127. {
  128. bankList = new string[100];
  129. bankList[0] = _Researchers.Researchers[0].BankName;
  130. bankListLength = 1;
  131. for (int i = 0; i < _Researchers.Count; i++)
  132. {
  133. int pos = Array.IndexOf(bankList, _Researchers.Researchers[i].BankName);
  134. if(pos < 0)
  135. {
  136. bankList[bankListLength++] = _Researchers.Researchers[i].BankName;
  137. }
  138. }
  139. }
  140.  
  141. private static void Print(ResearcherList _Researchers, string fileResult)
  142. {
  143. _Researchers.Sort();
  144. using (StreamWriter writer = new StreamWriter(fileResult))
  145. {
  146. writer.WriteLine("Print");
  147. for(int i = 0; i < _Researchers.Count; i++)
  148. {
  149. writer.WriteLine(_Researchers.Researchers[i].ToString());
  150. }
  151.  
  152. }
  153. }
  154. private static void BankTransactionPrint(ResearcherList _Researchers, string[] bankList, int bankListLength, string fileResult)
  155. {
  156. using (StreamWriter writer = new StreamWriter(fileResult, true))
  157. {
  158. writer.WriteLine("--------------------------------------------------------");
  159. writer.WriteLine("Print By Bank");
  160. for (int i = 0; i < bankListLength; i++)
  161. {
  162. writer.WriteLine("------------------------" + bankList[i] + "----------------------------");
  163. for (int j = 0; j < _Researchers.Count; j++)
  164. {
  165. if (_Researchers.Researchers[j].BankName == bankList[i])
  166. writer.WriteLine(_Researchers.Researchers[j].ToString());
  167.  
  168. }
  169.  
  170.  
  171. }
  172. writer.WriteLine("--------------------------------------------------------");
  173. }
  174. }
  175. private static void LowPaidPrint(ResearcherList _Researchers, bool[] LowPaidID)
  176. {
  177. using (StreamWriter writer = new StreamWriter(fileResults, true))
  178. {
  179. writer.WriteLine("Bellow average payment employees");
  180. for(int i = 0; i < _Researchers.Count; i++)
  181. {
  182. if (LowPaidID[i])
  183. writer.WriteLine(_Researchers.Researchers[i].ToString());
  184. }
  185. }
  186. }
  187. }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement