/// <summary> /// наполняем жулнал оценками /// </summary> /// <param name="subject">предмет</param> public static void InitSubject(ISubject subject) { //минимальное и максимальное количество оценок по предмету const int MINCOUNTMARKS = 7; const int MAXCOUNTMARKS = 10; //генерируем количество оценок int marksCount = randomCount.Next(MINCOUNTMARKS, MAXCOUNTMARKS); //минимальная и максимальная оценка const int MINMARK = 3; const int MAXMARK = 12; //добавляем оценку for (int i = 0; i < marksCount; i++) { subject.AddMark(randomMark.Next(MINMARK, MAXMARK)); } }
/// <summary> /// добавить оценку /// </summary> /// <param name="subject"></param> public static void AddMark(IStudent student, ISubject subject, int i) { //минимальное количество оценок для вызова делегата-80% int minCountMarks = subject.Marks.Length * 80 / 100; int mark = EnterData("Enter mark: "); try { subject.AddMark(mark); } catch (MarkException exception) { WriteLine(exception.Message); } //вызов делегатов if (subject.Count >= minCountMarks) { student.Subjects[i].MarkSubjects?.Invoke(subject); student.Subjects[i].StudentGoNext?.Invoke(subject); } }