Вариант: library. Задание состоит из 6-ти частей: 1. Определить структуру S. - read - чтение с клавиатуры - write - вывод на экран - compare - сравнение двух элементов - check - проверка на соответствие элемента условиям ещё одна особая функция. Book: название, автор, аннотация, имя файла с книгой, тип файла - open - открыть файл с книгой 2. Определить связный список L элементов из S. Определить функции для работы со списком: - init - инициализировать список - add - добавить элемент в конец списка - read - прочитать список из файла - write - вывести список на экран - clear - очистить память после окончания работы со списком. 3. Преобразовать структуру S в класс. Методы класса: read, write, compare, check, специальный метод для каждого варианта. 4. Определить для класса S конструктор по умолчанию, а также, если надо, конструктор копирования и деструктор. Превратить список L в класс Определить методы: - конструктор по умолчанию - деструктор - конструктор копирования - add - добавить в конец - sort - отсортировать - addSort - добавить в середину отсортированного списка - find - найти элемент по условиям - write - вывести элементы, удовлетворяющие условиям - remove - удалить элементы, удовлетворяющие условиям И специальный метод: getSize - определяет суммарный размер всех книг 5. Определить для класса S: - перегруженный оператор = - перегруженные операторы сравнения <, > и == на основе compare (при желании - <=, >= и !=) - перегруженные операторы >> и << для ввода-вывода. 6. Перегрузить для L оператор =. Добавить метод addList, сливающий вместе 2 объекта. Рекомендуется использовать в L стандартный контейнерный класс list. Определить в функции main интерпретатор командной строки, реализующий команды: - clear - очистить список - load - добавить список из файла - save - сохранить список в файле - add (переходит в режим ввода, начинающийся с ">") - добавить элемент - sort - отсортировать - find <условия> - вывести на экран элементы, удовлетворяющие условиям - delete <условия> - удалить элементы, удовлетворяющие условиям - exit - завершить работу и выйти.