Beispiel #1
0
        /* Выполнение задачи
         * Входные данные: массив студентов, объект класса Marks */
        static void Task(Student[] student, Marks marks)
        {
            foreach (var item in student)
            {
                Console.WriteLine(" Имя студента: {0}", item.GetFullName(item));
                Console.WriteLine(" Возраст: {0}", item.GetAge(item));
                Console.WriteLine(" Средний балл: {0:0.###}", item.GetAverageScore(item));
                Console.WriteLine(" Группа: {0}", item.GetGroup(item));
                Console.WriteLine("____________________________________________");
            }

            for (int i = 0; i < marks.Subjects.Length; i++)
            {
                Console.WriteLine(" Средний балл по предмету {0} = {1:0.###}", marks.Subjects[i], student[i].GetAverageScoreForSubject(student, i));
            }
            Console.WriteLine("____________________________________________");

            List<string> univerityGroups = student[0].GetAllUniversutyGroup(student);

            foreach (var item in univerityGroups)
            {
                Console.WriteLine(" Средний балл группы {0} = {1:0.###}", item, student[0].GetAverageScoreGroup(student, item));
                Console.WriteLine(" Средний возраст группы {0} = {1:0.##}", item, student[0].GetAverageAgeGroup(student, item));
                Console.WriteLine("____________________________________________");
            }

            student[0].EditGroupStudent(student[0], univerityGroups.Last());
            student[0].EditScores(student[3], new int[] { 4, 5, 4 });
        }
Beispiel #2
0
        /* Начальная инициализация
         * Выходные данные: массив студентов */
        static Student[] Initialization()
        {
            Student[] student = new Student[4];
            DataOfBirth dataOfBirth;
            UniversityGroup universityGroup;
            Marks marks;

            /* 1-ый студент */
            dataOfBirth = new DataOfBirth { Year = 1995, Month = 3, Day = 28, Town = "Запорожье" };
            universityGroup = new UniversityGroup { Name = "PZ10" };
            marks = new Marks { Scores = new int[] { 5, 5, 5} };
            student[0] = new Student("Жеваго", "Александр", dataOfBirth, universityGroup, marks);

            /* 2-ой студент */
            dataOfBirth = new DataOfBirth { Year = 1973, Month = 2, Day = 3, Town = "Житомир" };
            universityGroup = new UniversityGroup { Name = "PZ10" };
            marks = new Marks { Scores = new int[] { 5, 5, 5 } };
            student[1] = new Student("Жеваго", "Елена", dataOfBirth, universityGroup, marks);

            /* 3-ий студент */
            dataOfBirth = new DataOfBirth { Year = 1995, Month = 7, Day = 20, Town = "Самара" };
            universityGroup = new UniversityGroup { Name = "PZ12" };
            marks = new Marks { Scores = new int[] { 5, 5, 5 } };
            student[2] = new Student("Беляев", "Виталий", dataOfBirth, universityGroup, marks);

            /* 4-ый студент */
            dataOfBirth = new DataOfBirth { Year = 1994, Month = 12, Day = 13, Town = "Днепропетровск" };
            universityGroup = new UniversityGroup { Name = "PZ12" };
            marks = new Marks { Scores = new int[] { 5, 5, 5 } };
            student[3] = new Student("Файфер", "Сергей", dataOfBirth, universityGroup, marks);

            return student;
        }
Beispiel #3
0
        /* Метод рассчета возраста
           Входные данные: информация о студенте
           Выходные данные: возраст студента
        */
        public int GetAge(Student student)
        {
            int age = 0;
            if (student.dataOfBirth.Year == DateTime.Today.Year) // если родился в этом году
            {
                return 0;
            }
            else if (student.dataOfBirth.Year > DateTime.Today.Year) // если еще не родился
            {
                return -1;
            }
            else
            {
                age = DateTime.Today.Year - student.dataOfBirth.Year;

                if (student.dataOfBirth.Month == DateTime.Today.Month) // если родился в текущем месяце
                {
                    if (student.dataOfBirth.Day <= DateTime.Today.Day) // если день рождения уже прошел
                    {
                        return age;
                    }
                    else
                    {
                        return age - 1;
                    }
                }
                else if (student.dataOfBirth.Month < DateTime.Today.Month) // если родился в месяце который уже прошел
                {
                    return age;
                }
                else
                {
                    return age - 1;
                }
            }
        }
Beispiel #4
0
 /* Метод который возвращает список групп
    Входные данные: массив студентов
    Выходные данные: список групп
 */
 public List<string> GetAllUniversutyGroup(Student[] student)
 {
     List<string> listUniversityGroup = new List<string>();
     foreach (var item in student)
     {
         if (!listUniversityGroup.Contains(item.universityGroup.Name))
         {
             listUniversityGroup.Add(item.universityGroup.Name);
         }
     }
     return listUniversityGroup;
 }
Beispiel #5
0
 /* Метод который изменяет оценки студента
    Входные данные: информация о студенте, перечень оценок студента
 */
 public void EditScores(Student student, int[] scores)
 {
     student.marks.Scores = scores;
 }
Beispiel #6
0
 /* Метод который изменяет группу в которой учится студент
    Входные данные: информация о студенте, имя новой группы
 */
 public void EditGroupStudent(Student student, string nameNewGroup)
 {
     student.universityGroup.Name = nameNewGroup;
 }
Beispiel #7
0
 /* Метод который возвращает группу студента
    Входные данные: информация о студенте
    Выходные данные: группа студента
 */
 public string GetGroup(Student student)
 {
     return student.universityGroup.Name;
 }
Beispiel #8
0
 /* Метод который возвращает полное имя студента
    Входные данные: информация о студенте
    Выходные данные: полное имя студента
 */
 public string GetFullName(Student student)
 {
     return student.lastName + " " + student.firstName;
 }
Beispiel #9
0
        /* Метод который возвращает средний балл группы
           Входные данные: массив студентов, имя группы
           Выходные данные: средний балл группы
        */
        public double GetAverageScoreGroup(Student[] student, string groupName)
        {
            int countStudents = 0;
            double averageScoreGroup = 0.0;

            foreach (var item in student)
            {
                if (item.universityGroup.Name.Equals(groupName))
                {
                    averageScoreGroup += GetAverageScore(item);
                    countStudents++;
                }
            }
            return averageScoreGroup / countStudents;
        }
Beispiel #10
0
        /* Метод который возвращает средний балл студентов по предмету
           Входные данные: массив студентов, id предмета
           Выходные данные: средний балл студентов по предмету
        */
        public double GetAverageScoreForSubject(Student[] student, int idSubject)
        {
            double averageScore = 0.0;
            foreach (var item in student)
            {
                averageScore += item.marks.Scores[idSubject];
            }

            return averageScore / student.Length;
        }
Beispiel #11
0
 /* Метод который возвращает средний балл студента
    Входные данные: информация о студенте
    Выходные данные: средний балл
 */
 public double GetAverageScore(Student student)
 {
     double averageScore = student.marks.Scores.Sum() / student.marks.Scores.Length;
     return averageScore;
 }