Лабораторная работа 8 для студентов курса “Основы программирования” 1 курса кафедры ИУ5 МГТУ им Н.Э. Баумана.
Работа со структурами и массивами структур. Закрепление полученных навыков программирования на С++
Зайдите в свою локальную директорию с репозиторием для выполнения лабораторных работ. Заберите ветку с соответствующей лабораторной работой из общего репозитория (в лабораторной работе 0 был отмечен меткой upstream):
git pull upstream
или
git pull upstream lab_8
Переключитесь на ветку с текущей лабораторной работой:
git checkout lab_8
Свяжите ветку локального репозитория с вашим удаленным репозиторием:
git push --set-upstream origin lab_8
Англо-русский словарь построен в виде массива структур Dictionary
. Структура содержит английское слово и соответствующее ему русское слово. Для хранения записей словаря необходимо использовать динамический массив.
Разработать программу, которая:
Начальное число слов в словаре равно 10.
Для исключения проблем, связанных с вводом кириллицы, вводите русские слова латинскими буквами, например: kot (cat)
, sobaka(dog)
и т.п.
I. Определение состава и способа представления исходных данных, результатов и промежуточных данных
Pазмер словаря неограничен. Вам необходимо использовать динамический массив для хранения записей словаря. Также на длину слова не устанавливается ограничений. Поэтому для хранения записей словаря в оперативной памяти (ОП) можно использовать структуру Dictionary
:
struct Dictionary {
char *engl; // слово по-английски
char *rus; // слово по-русски
};
Словарь хранится в текстовом файле. Элементы массива структур Dictionary будем записывать в файл последовательно, начиная с нулевого. При этом поля структуры записываются в виде отдельных строк, т.е. каждое слово должно заканчиваться символом \0
.
II. Разработка алгоритма решения задачи
При программировании этой задачи уделим дополнительное внимание разбиению на функции и спецификации их интерфейсов. Например, логично оформить в виде функции каждую операцию со словарем (формирование, поиск, добавление и удаление элемента), поскольку они представляют собой законченные действия.
Будем исходить из того, что все функции должны быть независимы, чтобы изменения в одной функции не могли влиять на поведение другой. Для этого всё, что функциям необходимо получать извне, будем передавать им через параметры.
Прежде всего определим интерфейс нашей программы. В соответствии с заданием, кажется логичным предоставить пользователю следующие возможности:
III. Кодирование и тестовые примеры
В этой работе удобно использовать технологию создания программы "сверху вниз": сначала отладить главную функцию, а затем постепенно добавлять к ней остальные. На месте еще не добавленных функций обычно ставятся так называемые "заглушки" (функции без реализации). Данные функции для отладки могут отображать в консоли информационное сообщение о том, что эти функции были вызваны.