Разработать диалоговое консольное приложение, реализация которого должна быть построена на принципах объектно-ориентированного анализа и проектирования. Диалоговые консольные приложения – консольные программы, работа с которыми ведётся в диалоговом режиме («запрос-ответ»). В качестве запроса может выступать ввод команды, либо выбор пункта меню, выведенного программой в консоль. После получения запроса программа может потребовать ввода необходимых для выполнения запрошенной операции данных. После получения необходимой информации программа осуществляет соответствующее действие, выводит результат работы в консоль и ожидает следующего запроса. В процессе выполнения работы необходимо:
-
понять, какие существуют сущности и процессы в проектируемой системе;
-
выделить основные функции системы;
-
продумать логику работы пользователя с программой: предусмотреть набор действий пользователя и множество состояний программы;
-
реализовать объектно-ориентированную модель в виде программы.
Общие требования к реализации
- Организация дружелюбного пользовательского интерфейса o проверка вводимых пользователем данных o вывод адекватных и понятных пользователю сообщений (в особенности – об ошибках).
- Отсутствие, по возможности, жёстко закодированных значений (например, «зашитых» в код путей к файлам, магических чисел).
- Разработанная программа должна получать все необходимые данные из внешнего источника (например, из консоли, файла, базы данных, от удалённого сервера, и т.д.), то есть при запуске не содержит никакой информации.
- Реализация должна быть выполнена на одном из языков: C#, Java, Kotlin, C++. Другие языки следует согласовать с преподавателем.
- Архитектурно приложение должно быть представлено клиентским и серверным компонентом (по усмотрению, REST API, взаимодействие через RPC). Серверный компонент должен обеспечивать сохранение данных о сеансе использования.
Информация о книге включает название, имя автора, жанры, дату публикации, аннотацию, ISBN. Из главного меню программы пользователь, посредством выбора одного из пронумерованных пунктов, может производить следующие операции:
• добавление книги в каталог
• выборку информации о конкретной книге по:
- названию или его фрагменту
- имени автора
- ISBN
- ключевым словам
• выход.
Поиск по ключевым словам должен возвращать краткие описания книг (без аннотации) в таком порядке, чтобы в начале выборки оказывались книги c наибольшим количеством найденных ключевых слов, а в конце – с наименьшим количеством. Если ключевое слово найдено в аннотации, это должно быть отражено в выборке.