Лабораторная работа 7. Динамические списки. В данной

advertisement
Лабораторная работа 7. Динамические списки.
В данной лабораторной работе необходимо создать динамический список (в
зависимости от варианта на основе стека, очереди или двусвязного списка).
Список содержит информацию о студентах: фамилия, имя, отчество, дата
рождения, номер группы (строка из букв и цифр), средний балл за
контрольный срок и пол студента. Информация о студентах вводится
последовательно
и
завершается
строкой
«end»
без
кавычек.
Пример:
Ivanov Ivan Ivanovich 23.08.1995 1.4 male
Perova Elena Igorevna 09.03.1996 1.9 female
end
Для ввода данных необходимо реализовать функцию добавления студента в
список, функцию удаления студента по номеру, функцию поиска студента в
списке по фамилии, имени и номеру группы, которая возвращает номер
студента в списке, либо число -1, если такой студент не найден. Кроме того,
необходимо реализовать функцию вывода списка студентов на экран и
дополнительную функцию, которая дана в варианте.
1. Стек. Функция редактирования информации о студенте по его номеру в
списке.
2. Очередь. Функция сортировки списка студентов по фамилии и имени.
3. Двусвязный список. Функция, которая сортирует студентов по номеру
группы, а внутри группы по фамилии.
4. Стек. Функция, в которой вводится текущая дата и которая определяет
студентов, с днями рождения в ближайшие три дня.
5. Очередь. Функция, в которой задаётся некоторая строка из символов и
выводится список всех студентов, у которых фамилия содержит
введённую строку в качестве подстроки.
6. Двусвязный список. Функция, которая выводит список студентов,
подлежащих призыву.
7. Стек. Функция, которая позволяет расформировать введённую группу
и распределить студентов из этой группы по остальным таким образом,
чтобы в первую очередь студенты переходили в ту группу, где меньше
всего людей.
8. Очередь. Функция для отчисления всех студентов, чей контрольный
срок ниже введённого значения.
9. Двусвязный список. Функция для подсчёта среднего балла в каждой
группе.
Download