Домашнее задание к лекции 1.5 «Практика по использованию циклов, коллекций и функций»

Имеется группа студентов, у каждого из которых есть следующие характеристики: имя, фамилия, пол, предыдущий опыт в программировании (бинарная переменная), 5 оцененных по 10-бальной шкале домашних работ, оценка за экзамен по 10-балльной шкале. Необходимо написать программу, которая в зависимости от запроса пользователя будет выводить:

  1. среднюю оценку за домашние задания и за экзамен по всем группе в следующем виде:
            Средняя оценка за домашние задания по группе: X
            Средняя оценка за экзамен: Y
    где X и Y - вычисляемые значения;
  2. среднеюю оценку за домашние задания и за экзамен по группе в разрезе: а)пола б)наличия опыта в виде:
            Средняя оценка за домашние задания у мужчин: A
            Средняя оценка за экзамен у мужчин: B
            Средняя оценка за домашние задания у женщин: C
            Средняя оценка за экзамен у женщин: D
            
            Средняя оценка за домашние задания у студентов с опытом: E
            Средняя оценка за экзамен у студентов с опытом: F        
            Средняя оценка за домашние задания у студентов без опыта: G
            Средняя оценка за экзамен у студентов без опыта: H
    где A, B, C, D, E, F, G, H - вычисляемые значения;
  3. определять лучшего студента, у которого будет максимальный балл по формуле 0.6 * его средняя оценка за домашние задания + 0.4 * оценка за экзамен в виде:
    Лучший студент: S с интегральной оценкой Z
    если студент один или:
    Лучшие студенты: S... с интегральной оценкой Z
    если студентов несколько, где S - имя/имена студентов, Z - вычисляемое значение.

Студентов должно быть не менее 6.
Код должен быть грамотно декомпозирован (максимально используйте функции).