Для решения данной задачи на языке Python можно использовать модуль csv для работы с CSV-файлами и функции для разделения логики на отдельные блоки кода.
Шаги решения задачи:
1. Создаем функцию для чтения данных из CSV-файла. Функция должна принимать путь к файлу и возвращать список словарей, где каждый словарь представляет собой одну запись в справочнике.
2. Создаем функцию для записи данных в CSV-файл. Функция должна принимать путь к файлу и список словарей, и записывать данные в указанный файл.
3. Создаем функцию для вывода данных из справочника. Функция должна принимать список словарей и выводить на экран все записи в удобном формате.
4. Создаем функцию для добавления новых записей в справочник. Функция должна принимать список словарей и запрашивать у пользователя данные для новой записи, затем добавлять ее в справочник.
5. Создаем функцию для удаления записей из справочника. Функция должна принимать список словарей и фамилию человека, записи о котором нужно удалить, затем удалять соответствующие записи из справочника.
6. Создаем главную функцию, которая будет предоставлять пользователю интерфейс для взаимодействия с справочником. В этой функции можно использовать цикл, в котором запрашивать у пользователя команду (например, “вывести на экран данные”, “добавить новую запись”, “удалить запись” и т.д.), и в зависимости от выбранной команды вызывать соответствующую функцию.
7. Внутри главной функции можно использовать переменную, содержащую текущий список записей справочника, и вносить изменения в этот список при добавлении или удалении записей.
8. В начале работы программы можно импортировать данные из CSV-файлов с помощью функции для чтения данных.
9. В конце работы программы можно экспортировать данные в CSV-файлы с помощью функции для записи данных.
Таким образом, решение задачи будет состоять из объединения функций для работы с CSV-файлами и функций для работы со справочником в одной программе.