Advertisement
anon20016

students

Nov 15th, 2019
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. class Student
  2. {
  3. public string Name;
  4. public List<int> Marks;
  5. public int ResultMark;
  6.  
  7. private double average_mark;
  8. private int[,] BetterMarks;
  9. private int sum;
  10.  
  11. // Конструкторы
  12. public Student(string input)
  13. {
  14. var temp = input.Split();
  15. Name = temp[0];
  16. Marks = new List<int>();
  17. for (int i = 1; i < temp.Length; i++)
  18. {
  19. Marks.Add(Int32.Parse(temp[i]));
  20. }
  21. Analyse();
  22. }
  23. public Student(string name, List<int> a)
  24. {
  25. Name = name;
  26. Marks = a;
  27. Analyse();
  28. }
  29.  
  30. // Методы
  31. private void Analyse()
  32. {
  33. sum = 0;
  34. foreach(var i in Marks)
  35. {
  36. sum += i;
  37. }
  38. GetAverageMark();
  39. ResultMark = GetRusultMark(average_mark);
  40. GetBetterMarks();
  41. }
  42.  
  43. private void GetAverageMark()
  44. {
  45. average_mark = 0;
  46. foreach (var i in Marks)
  47. {
  48. average_mark += i;
  49. }
  50. average_mark = GetAverage(average_mark, Marks.Count);
  51. }
  52. private int GetRusultMark(double c)
  53. {
  54. return (int)(c + 0.5);
  55. }
  56. private double GetAverage(double sum, int count) {
  57. return sum / count;
  58. }
  59. private void GetBetterMarks()
  60. {
  61. BetterMarks = new int[6, 6];
  62. for (int i = 0; i < 6; i++)
  63. {
  64. // q - оценка, которой будем улучшать
  65. for (int q = i; q < 6; q++)
  66. {
  67. if (i > ResultMark)
  68. {
  69. int j = 0;
  70. for (j = 0; GetRusultMark(GetAverage(sum + j * q, Marks.Count + j)) != i; j++) ;
  71. BetterMarks[i, q] = j;
  72. }
  73. }
  74. }
  75. }
  76.  
  77. public override string ToString()
  78. {
  79. string result = "Info about student " + Name + "\n" + "Marks: ";
  80. for (int i = 0; i < Marks.Count; i++)
  81. {
  82. result += Marks[i].ToString();
  83. if (i != Marks.Count - 1)
  84. {
  85. result += ", ";
  86. }
  87. }
  88. result += '\n' + "Result mark – " + ResultMark.ToString() + '\n';
  89.  
  90. for (int i = 0; i < 6; i++)
  91. {
  92. for (int j = 0; j < 6; j++)
  93. {
  94. if (BetterMarks[i, j] != 0)
  95. {
  96. result += "To get " + i.ToString() + " you have to get " + BetterMarks[i, j].ToString() + " marks " + j.ToString() + '\n';
  97. }
  98. }
  99. }
  100.  
  101. return result;
  102. }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement