Состав команды: Козлов К.В., Супрун И.С., Легоньких Д.В., Слепнева К.Ю
Описание проекта: Англо-русский словарь. Узел дерева содержит:
Ключ – английское слово Информационная часть – ссылка на список, содержащий переводы английского слова, отсортированные по алфавиту (переводов слова может быть несколько). Взаимодействие с деревом будет осуществлено следующим образом: insert – метод, осуществляющий вставку в дерево английского слова с его переводом search – поиск в дереве перевода заданного английского слова delete – удаление из дерева указанного слова с его переводами
Наша работа имеет следующие этапы:
-
Определение проблемы: Проблема: Обеспечение быстрого и эффективного способа хранения и поиска переводов английских слов на русский язык с помощью структуры данных бинарного дерева поиска.
-
Выработка требований:
-Вставка нового английского слова с его переводом(ами). -Поиск перевода заданного английского слова. -Удаление английского слова вместе с его переводами. -Просмотр всех английских слов в словаре в алфавитном порядке.
- Разработка архитектуры и детальное проектирование:
Диаграмма контекста (Context Diagram): +----------------------------+ | Пользователь | +------------+---------------+ | v +------------+---------------+ | Англо-русский словарь | | (Приложение) | +------------+---------------+ | v +------------+---------------+ | Файл данных (file.txt) | +----------------------------+
Диаграмма контейнеров (Container Diagram): +----------------------------+ | Пользователь | +------------+---------------+ | v +------------+---------------+ | Консольное приложение | | (Англо-русский словарь) | +------------+---------------+ | v +------------+---------------+ | Бинарное дерево поиска | | +------------------------+ | | | Узел: | | | | - Ключ: английское слово| | | - Значение: ссылка на | | | список переводов | | +------------------------+ | +----------------------------+
-
Кодирование и отладка: Написание кода для реализации методов вставки, поиска, удаления и просмотра слов в бинарном дереве поиска.
-
Unit тестирование: Написание и проведение unit тестов для каждого из методов (insert, search, delete) для проверки их корректной работы: // Пример теста для метода insert void testInsert() { Dictionarystd::string dict; dict.INSERTWORD("apple"); assert(dict.SEARCH("apple") != nullptr); }
-
Интеграционное тестирование: Реализация сценариев для проверки пользовательских историй:
Сценарий 1: Добавление нового слова и его переводов, затем проверка их наличия. Сценарий 2: Удаление слова и проверка его отсутствия в словаре.