9. Ввод, сортировка и двоичный поиск в массиве структур
Алиас: словарь.
Цель работы
При выполнении лабораторной работы изучить следующие вопросы:
- использование структур для хранения данных;
- создание и включение файлов заголовков;
- декомпозирование задач при разработке и отображение их на структуры программы.
Задание
Англо-русский словарь построен в виде массива структур Dictionary. Структура содержит английское слово и соответствующее ему русское слово. Для хранения записей словаря необходимо использовать динамический массив.
Разработать программу, которая:
- обеспечивает формирование словаря (добавление и удаление записей);
- записывает словарь, отсортированный по английским значениям слов, в файл;
- обеспечивает просмотр словаря;
- выполняет перевод слов с английского на русский, используя для поиска слова в словаре метод двоичного поиска в отсортированном массиве;
- выполняет перевод слов с русского на английский, используя для поиска слов в словаре метод перебора.
Для реализации поиска по словарю запрещено использовать функции из стандартной библиотеки string.h.
Программа должна обеспечивать диалог с помощью меню.
Программа должна иметь два режима запуска: демонстрационный и интерактивный:
- В демонстрационном режиме необходимо продемонстрировать в консоли все доступные функции работы со словарем с комментариями к отображаемым данным. В данном режиме не должно быть никакого пользовательского ввода. Исполнитель задания самостоятельно определяет какие параметры передаются в качестве аргументов в функции работы со словарем. Конечный вид данного режима определяет исполнитель задания.
- В интерактивном режиме обеспечить интерактивное взаимодействие с пользователем для управления словарем.
Режим запуска определять по переданным аргументам командной строки. По умолчанию программу запускать в демонстрационном режиме.
Начальное число слов в словаре равно 10.
Для исключения проблем, связанных с вводом кириллицы, вводите русские слова латинскими буквами, например:
kot-cat;sobaka-dog.
Весь функционал, обеспечивающий работу с Dictionary, необходимо выделить в самостоятельный модуль, состоящий из заголовочного файла mdict.h и файла реализации mdict.c или mdict.cpp в зависимости от используемого языка программирования. Структуру Dictionary необходимо объявить в mdict.h.
Для того, чтобы понять как создать модуль для Dictionary, рекомендуется обратить внимание на CMakeLists.txt, mprinter.c и mprinter.h из лабораторной работы №8.