Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Student
- {
- public string Name;
- public List<int> Marks;
- public int ResultMark;
- private double average_mark;
- private int[,] BetterMarks;
- private int sum;
- // Конструкторы
- public Student(string input)
- {
- var temp = input.Split();
- Name = temp[0];
- Marks = new List<int>();
- for (int i = 1; i < temp.Length; i++)
- {
- Marks.Add(Int32.Parse(temp[i]));
- }
- Analyse();
- }
- public Student(string name, List<int> a)
- {
- Name = name;
- Marks = a;
- Analyse();
- }
- // Методы
- private void Analyse()
- {
- sum = 0;
- foreach(var i in Marks)
- {
- sum += i;
- }
- GetAverageMark();
- ResultMark = GetRusultMark(average_mark);
- GetBetterMarks();
- }
- private void GetAverageMark()
- {
- average_mark = 0;
- foreach (var i in Marks)
- {
- average_mark += i;
- }
- average_mark = GetAverage(average_mark, Marks.Count);
- }
- private int GetRusultMark(double c)
- {
- return (int)(c + 0.5);
- }
- private double GetAverage(double sum, int count) {
- return sum / count;
- }
- private void GetBetterMarks()
- {
- BetterMarks = new int[6, 6];
- for (int i = 0; i < 6; i++)
- {
- // q - оценка, которой будем улучшать
- for (int q = i; q < 6; q++)
- {
- if (i > ResultMark)
- {
- int j = 0;
- for (j = 0; GetRusultMark(GetAverage(sum + j * q, Marks.Count + j)) != i; j++) ;
- BetterMarks[i, q] = j;
- }
- }
- }
- }
- public override string ToString()
- {
- string result = "Info about student " + Name + "\n" + "Marks: ";
- for (int i = 0; i < Marks.Count; i++)
- {
- result += Marks[i].ToString();
- if (i != Marks.Count - 1)
- {
- result += ", ";
- }
- }
- result += '\n' + "Result mark – " + ResultMark.ToString() + '\n';
- for (int i = 0; i < 6; i++)
- {
- for (int j = 0; j < 6; j++)
- {
- if (BetterMarks[i, j] != 0)
- {
- result += "To get " + i.ToString() + " you have to get " + BetterMarks[i, j].ToString() + " marks " + j.ToString() + '\n';
- }
- }
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement