예제 #1
0
        /// <summary>
        ///     Отобразить хорошего студента с худшей средней оценкой
        /// </summary>
        public void PrintWorstGoodStudent()
        {
            GoodStudent goodStudent = null;

            foreach (var i in student)
            {
                if (i is GoodStudent)
                {
                    if (goodStudent == null || i.Mean < goodStudent.Mean)
                    {
                        goodStudent = (GoodStudent)i;
                    }
                }
            }

            Student stud = student[0];
            var     s    = student.Where(student1 => student1.Rating < stud.Rating).ToList();


            if (goodStudent == null)
            {
                Console.WriteLine("Хороших студентов нет :(");
            }
            else
            {
                Console.WriteLine(goodStudent + "\nСредняя оценка: " + goodStudent.Mean.ToString("F3"));
            }
        }
예제 #2
0
        /// <summary>
        ///     Конструктор студентов
        /// </summary>
        /// <param name="n">Количество студентов</param>
        /// <param name="probability">Вероятность создания хорошего студента</param>
        public StudentList(int n, int probability)
        {
            if (!(1 <= probability && probability <= 100))
            {
                throw new ArgumentOutOfRangeException("probability", "Вероятность должна быть в диапазоне [1; 100]");
            }
            student = new Student[n];
            for (int i = 0; i < n; ++i)
            {
                int[] marks = new int[3 * n];
                for (int j = 0; j < 3 * n; ++j)
                {
                    marks[j] = rnd.Next(0, 10);
                }

                try
                {
                    if (rnd.Next(100) < probability)
                    {
                        student[i] = new GoodStudent(studentNames[rnd.Next(studentNames.Length)],
                                                     studentSurnames[rnd.Next(studentSurnames.Length)],
                                                     rnd.Next(-5, 5 + 1),
                                                     marks,
                                                     GoodStudent.glassesStyles[rnd.Next(GoodStudent.glassesStyles.Length)]);
                    }
                    else
                    {
                        student[i] = new BadStudent(studentNames[rnd.Next(studentNames.Length)],
                                                    studentSurnames[rnd.Next(studentSurnames.Length)],
                                                    rnd.Next(-5, 5 + 1),
                                                    marks,
                                                    BadStudent.hairStyles[rnd.Next(BadStudent.hairStyles.Length)]);
                    }
                }
                catch (Exception ex)
                {
                    // Долгая работа из-за частых ошибок. BadStudent генерируются, но вероятность этого крайне мала.
                    // Console.WriteLine(ex.Message);
                    --i;
                }
            }
        }