Показать сообщение отдельно
  #1 (permalink)  
Старый 19.03.2022, 12:02
Новичок на форуме
Отправить личное сообщение для kihodo9t Посмотреть профиль Найти все сообщения от kihodo9t
 
Регистрация: 19.03.2022
Сообщений: 2

Создание панели управления студентами
Помогите решить задачу:
Создайте панель управления студентами, на которой будут располагаться

таблица со студентами с фильтрами и сортировкой
форма добавления нового студента
Студенты должны храниться в массиве. Каждый студент - объект, содержащий следующие данные:

имя
фамилия
отчество
дата рождения (объект Date)
год начала обучения
факультет (строка)
Для добавления студентов на странице должна выводиться форма с полями, соответствующими данным студента. Форма должна проходить валидацию по следующим правилам:

все поля обязательны для заполнения после применения к значению метода trim()
дата рождения находится в диапазоне от 01.01.1900 до текущей даты
год начала обучения находится в диапазоне от 2000-го до текущего года
Валидация должна происходить после нажатия на кнопку "добавить студента", расположенную под полями для ввода. Если валидация прошла успешно, то все поля очищаются, а новый студент добавляется в таблицу. В противном случае над кнопкой нужно вывести сообщения с описанием ошибок для пользователя. Тексты сообщений остаются на ваше усмотрение, но должны дать достаточно информации, чтобы понять какие ошибки в каких полях были допущены.

Данные из массива должны выводиться в табличном виде. Каждая строка таблицы содержит информацию об одном студенте. Колонки таблицы:

ФИО студента
Факультет
Дата рождения и возраст в формате "31.12.2000 (20 лет)". Возраст должен быть вычислен из даты рождения.
Годы обучения и номер курса в формате "2019-2023 (2 курс)". Считается, что все студенты учатся 4 года, то есть диапазон с годами обучения выводится как {год начала обучения}-{+4 года}. Если сентябрь года окончания обучения уже прошёл, в скобках вместо указания курса нужно должно выводиться "закончил".
Первая строка таблицы - заголовочная, в ней указываются заголовки колонок (ФИО, Факультет, ДР и возраст, Годы обучения). При нажатии на ячейку заголовочной строки должна происходить сортировка по соответствующим полям студентов:

ФИО сортирует по соединённой строке из фамилии, имени и отчества по алфавиту по возрастанию
Факультет - по факультету по алфавиту по возрастанию
ДР и возраст - по дате рождения по возрастанию
Годы обучения - по году начала обучения
Перед таблицей также нужно вывести фильтры, состоящие из полей:

ФИО для поиска подстроки в фамилии, имени или отчестве
Факультет для поиска подстроки в названии факультета
Год начала обучения (точное совпадение)
Год окончания обучения (точное совпадение)
При любых изменениях в полях для фильтрации содержимое таблицы должно измениться в соответствии с указанными фильтрами. Если указано несколько фильтров, то все они применяются к массиву студентов по очереди.
Ответить с цитированием