База данных

Выполнен
Заказ
5480496
Раздел
Программирование
Предмет
C/C++
Антиплагиат
Не указан
Срок сдачи
13 Июн 2023 в 23:55
Цена
Договорная
Блокировка
10 дней
Размещен
7 Июн 2023 в 14:55
Просмотров
56
Описание работы

Разработать программу на чистом С (VS 2019) с оптимальным хранением в памяти с использованием АВЛ (AVL) дерева/деревьев. Программа реализует простую базу данных, которая хранит набор книг из онлайн-библиотеки и предоставляет пользователю удобный консольный интерфейс взаимодействия.


Каждая книга описывается следующими полями:

  1. Название книги.
  2. Автор/Авторы.
  3. Год выпуска.
  4. Издательство.
  5. Оценка читателей.
  6. Цена книги.

Допускается использование различных служебных полей (к примеру, внутреннего идентификатора книги).


Программа должна поддерживать ряд операций, а именно:

  1. Добавление книги.
  2. Удаление книги.
  3. Редактирование книги (всех полей целиком или выборочно).
  4. Поиск по любому из полей (за исключением краткого описания) по всей базе данных.
  5. Сортировка по любому из полей (за исключением краткого описания) по всей базе данных.
  6. Сохранение БД в файл (формат хранение выбрать самостоятельно).
  7. Загрузка БД из файла.
  8. Вывод информации о книгах.

Требования:

  1. Книги могут описаны как на русском языке, так и на английском.
  2. Использование наиболее оптимального дерева для реализации программы с комментариями.
  3. В случае отсутствия ключей запуска "-a/--add, -f/--find, -s/--sort, -r/--remove, -e/--edit, -p/--print" программа запускает интерактивный режим работы, который выводит соответствующее меню с поддерживаемыми операциями.
  4. В случае отсутствия ключа --output сохранение происходит во входной файл.
  5. В случае некорректного ввода программа выводит справку.
  6. Максимальный объем входного файла — 64 Мб.
  7. Ключи могут задаваться в разном порядке.
  8. При компиляции программы не должно быть никаких предупреждений от компилятора (для удобства можно использовать ключи компиляции /Wall, /WX для Visual Studio; -Wall -pedantic для GCC).
  9. Программа может запускаться из консоли и поддерживать обработку ключей:

а. -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%
Время выполнения заказа:
6 дней 13 часов 59 минут
Выполнен
Отзыв о выполненном заказе
Отзыв эксперта о заказе
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир