Example #1
0
        public static void SortUniver()
        {
            Teacher[]      teachers = UniverBase.GetTeachers;
            List <Student> students = UniverBase.GetStudents;

            Group[] groups = UniverBase.GetGroups;

            for (int i = 0; i < groups.Length; i++)
            {
                int   limitStudents = 0;
                Group newGroup      = new Group();
                newGroup.GroupName = groups[i].GroupName;

                Teacher newTeacher = teachers[i];
                newGroup.TeacherName = newTeacher.TeacherName;
                newGroup.TeacherType = newTeacher.TeacherType;

                int sudentsCount = students.Count;

                for (int s = 0; s < sudentsCount; s++)
                {
                    if (newTeacher.TeacherType == "Professor Assistant" && limitStudents >= 20)
                    {
                        Console.WriteLine($"Professor Assistant: не может принять больше {assistantProfessorLimit} студентов");
                        break;
                    }
                    else if (newTeacher.TeacherType == "Teacher" && limitStudents >= 15)
                    {
                        Console.WriteLine($"Teacher: не может принять больше {teacherLimit} студентов");
                        break;
                    }
                    else if (newTeacher.TeacherType == "Teaching Assistant" && limitStudents >= 5)
                    {
                        Console.WriteLine($"Teaching Assistant: не может принять больше {teachingAssistant} студентов");
                        break;
                    }

                    _randomStudents = rndStudents.Next(0, UniverBase.GetStudentsCount());
                    Student newStudent = students[_randomStudents];
                    students.RemoveAt(_randomStudents);

                    newGroup.AddStudentToGroup(newStudent);
                    limitStudents++;
                }

                UniverBase.AddWholeGroup(newGroup);

                Console.WriteLine($"Группа: \"{newGroup.GroupName}\" c преподователем \"{newGroup.TeacherName}\" приняла {newGroup.GetCountStudents()} студентов.");
                Console.WriteLine(new string('-', 50));
            }

            Console.WriteLine($"Университет был переполнен и не смог добрать {students.Count} студентов");
            Console.WriteLine(new string('-', 50));
        }
Example #2
0
        private static int _randomStudents;  // че _randomStudents с подчеркивания а остальные нет? в чем ее особенность?
                                             // Ответ: private поля с _ следует указывать, исправил.

        public static void SortUniver()
        {
            Teacher[]      teachers = UniverBase.GetTeachers;
            List <Student> students = UniverBase.GetStudents;

            Group[] groups = UniverBase.GetGroups;

            for (int i = 0; i < groups.Length; i++)
            {
                int   limitStudents = 0;
                Group newGroup      = new Group();
                newGroup.GroupName = groups[i].GroupName;

                Teacher newTeacher = teachers[i];
                newGroup.TeacherName = newTeacher.TeacherName;
                newGroup.TeacherType = newTeacher.TeacherType;

                int sudentsCount = students.Count;

                for (int s = 0; s < sudentsCount; s++)
                {
                    //я бы переделал это на switch и для TeacherType использовал Enum
                    // для себя попробую
                    // 20, 15, 5 это магические числа должны быть где то в сеттингах иди просто в переменых с самодокументируемым названием.
                    // Не понял

                    if (newTeacher.TeacherType == "Professor Assistant" && limitStudents >= 20)
                    {
                        Console.WriteLine($"Professor Assistant: не может принять больше {_assistantProfessorLimit} студентов");
                        break;
                    }
                    else if (newTeacher.TeacherType == "Teacher" && limitStudents >= 15)
                    {
                        Console.WriteLine($"Teacher: не может принять больше {_teacherLimit} студентов");
                        break;
                    }
                    else if (newTeacher.TeacherType == "Teaching Assistant" && limitStudents >= 5)
                    {
                        Console.WriteLine($"Teaching Assistant: не может принять больше {_teachingAssistant} студентов");
                        break;
                    }

                    // а что ты делаешь в строчках ниже ?
                    // Ответ: Случайно выбираю студента из списка, а не по порядку. Затем удаляю из общего списка этих студентов, чтобы они не повторялись.

                    _randomStudents = rndStudents.Next(0, UniverBase.GetStudentsCount());
                    Student newStudent = students[_randomStudents];
                    students.RemoveAt(_randomStudents);

                    newGroup.AddStudentToGroup(newStudent);
                    limitStudents++;
                }

                UniverBase.AddWholeGroup(newGroup);

                Console.WriteLine($"Группа: \"{newGroup.GroupName}\" c преподователем \"{newGroup.TeacherName}\" приняла {newGroup.GetCountStudents()} студентов.");

                // почему ты решил использовать new string ?
                // удобнее, чем писать 50 дефисов
                Console.WriteLine(new string('-', 50));
            }

            Console.WriteLine($"Университет был переполнен и не смог добрать {students.Count} студентов");
            Console.WriteLine(new string('-', 50));
        }