Разработать программу на чистом С (VS 2019) с оптимальным хранением в памяти с использованием АВЛ (AVL) дерева/деревьев. Программа реализует простую базу данных, которая хранит набор книг из онлайн-библиотеки и предоставляет пользователю удобный консольный интерфейс взаимодействия.
Каждая книга описывается следующими полями:
Допускается использование различных служебных полей (к примеру, внутреннего идентификатора книги).
Программа должна поддерживать ряд операций, а именно:
Требования:
а. -h/--help — ключ для вывода справки.
b. -i/--input — ключ для передачи пути к файлу базы данных.
c. -p/--print — ключ для вывода информации книгах, после вывода программа завершает работу.
d. -a/--add — ключ для добавления книги.
e. -r/--remove — ключ для удаления книги.
f. -e/--edit — ключ редактирования книги.
g. -f/--find — ключ для поиска книги по заданному критерию.
h. -s/--sort — ключ для сортировки по заданному полю.
i. -o/--output — ключ для передачи пути к выходному файлу базы данных.
Количество ключей в консоли может быть сразу несколько, один или вообще не быть. Если ключи есть, то должен присутствовать ключь --input. В файле input каждое поле книги начинается с новой строки.
Отсортированные деревья должны запоминаться и при выводе их (например, в файл) выводиться в последнем отсортированном виде.
Внутренний идентификаторы книги должны меняться при удалении книги (то есть, были id 1,2,3,4,5. Удалив книгу с id 4, id оставшихся: 1,2,3,4). Также должна быть реализована несложная проверка входных данных: 1) проверка того, что рейтинг лежит в пределах от 0 до 5. 2) проверка того, что год выпуска - неотрицательное число, и которое не больше 2023. 3) цена - неотрицательное число
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |