Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовая работа / ГОТОВАЯ КР (Тема Частотный словарь)

.pdf
Скачиваний:
2
Добавлен:
07.12.2024
Размер:
805.25 Кб
Скачать

соответствующий метод, и выводит пользователю сообщение, содержащее слово и его частоту. Если слово не найдено, функция информирует пользователя о том,

что указанное слово отсутствует в словаре. Завершив все проверки, функция возвращается к вызывающему коду.

Блок-схема алгоритма представлена на рисунке 3.9.

Рисунок 3.9 — Алгоритм поиска слова в словаре

3.3.1.9 Алгоритм метода вставки слова в словарь

Начинается с добавления нового слова в вектор, хранящий слова в объекте класса. После этого метод записывает частоту слова, которая по умолчанию равна 1, в связанный вектор, хранящий частоты слов. Метод возвращает индекс добавленного слова в векторе, что позволяет другим частям программы легко идентифицировать и обращаться к этому слову в дальнейшем. Завершив все

24

операции, метод заканчивается и возвращает управление обратно к

вызывающему коду.

Блок-схема алгоритм метода представлена на рисунке 3.10.

Рисунок 3.10 — Алгоритм метода вставки слова в словарь

3.3.1.10 Алгоритм метода вставки слова с заданной частотой в словарь

Начинается с добавления нового слова в вектор, который хранит слова в объекте класса. Затем метод записывает заданную частоту для этого слова в связанный вектор, который хранит частоты слов. После успешного добавления слова и его частоты метод возвращает индекс добавленного слова в векторе, что позволяет другим частям программы легко идентифицировать и обращаться к этому слову в дальнейшем. Завершив все операции, метод возвращает управление обратно к вызывающему коду.

Блок-схема алгоритм метода представлена на рисунке 3.11.

Рисунок 3.11 — Алгоритм метода вставки слова с заданной частотой в словарь

25

3.3.1.11 Алгоритм метода увеличения счетчика слова

Начинается с проверки, находится ли указанный индекс в пределах допустимого диапазона для вектора, хранящего частоты слов. Если индекс действителен, метод увеличивает значение частоты слова по этому индексу на единицу. После успешного увеличения частоты метод возвращает истина,

указывая на то, что операция выполнена успешно. Если индекс оказался недопустимым, метод возвращает ложь, сигнализируя о неудаче в увеличении счетчика. Таким образом, метод завершает работу, возвращая управление обратно к вызывающему коду.

Блок-схема алгоритм метода представлена на рисунке 3.12.

Рисунок 3.12 — Алгоритм метода увеличения счетчика слова

3.3.1.12 Алгоритм метода поиска слова в словаре

Начинает свою работу с перебора вектора, хранящего слова в объекте класса. Для каждого слова метод проверяет, совпадает ли оно с заданным словом,

используя сравнение строк. Если совпадение найдено, метод возвращает индекс этого слова в векторе. Если же слово не найдено после проверки всех элементов,

26

метод возвращает специальное значение. Таким образом, метод завершает свою работу, предоставляя информацию о позиции слова или о его отсутствии.

Блок-схема алгоритм метода представлена на рисунке 3.13.

Рисунок 3.13 — Алгоритм метода поиска слова в словаре

3.3.1.13 Алгоритм метода сортировки и вывода размера словаря

Начинается с определения размера вектора, который хранит слова, и

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

одновременно обновляя соответствующие значения частоты в другом векторе.

После завершения сортировки метод не возвращает никаких значений, так как его целью является изменение состояния объекта (сортировка слов и частот), а

27

также передача актуального размера словаря через переменную size. Таким образом, работа метода завершается, возвращая управление обратно к вызывающему коду.

Блок-схема алгоритм метода представлена на рисунке 3.14.

Рисунок 3.14 –Алгоритм метода сортировки и вывода размера словаря

3.1.3.14 Алгоритм метода получения слова по индексу

Начинается с проверки, находится ли указанный индекс в пределах допустимого диапазона, соответствующего вектору, который хранит слова. Если индекс действителен, метод извлекает слово из вектора по указанному индексу и возвращает его как результат. Если индекс недопустим, метод может вернуть специальное значение или выдавать сообщение об ошибке. Таким образом, этот метод завершает свою работу, возвращая либо слово, либо сигнализируя об

28

ошибке, что позволяет другим частям программы получить доступ к слову по

заданному индексу.

Блок-схема алгоритм метода представлена на рисунке 3.15.

Рисунок 3.15 – Алгоритм метода получения слова по индексу

3.1.3.15 Алгоритм метода получения частоты слова по индексу

Начинается с проверки, находится ли указанный индекс в допустимых пределах для вектора, хранящего частоты слов. Если индекс действителен, метод извлекает частоту слова по этому индексу и возвращает ее как результат. Если индекс недопустим, метод может вернуть специальное значение или выдавать сигнал об ошибке. Таким образом, метод завершает свою работу, предоставляя информацию о частоте слова или уведомляя о недоступности данных, что позволяет другим частям программы запрашивать частоту слова по заданному индексу.

Блок-схема алгоритм метода представлена на рисунке 3.16.

Рисунок 3.16 – Алгоритм метода получения частоты слова по индексу

29

3.3.2 Структура программы с описанием функций составных частей и

связей между ними

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

реализованном в главной функции int main(). Вот основные функции и их назначения:

void menu(dictonary *pDic): Главная функция, которая отображает текстовое меню и обрабатывает выбор пользователя. На основе выбора вызываются соответствующие функции для выполнения различных операций со словарем.

void list_dictionary_files(): Функция, которая выводит на экран доступные текстовые файлы в текущем каталоге, предоставляя пользователю возможность выбрать файл для работы.

void readdictionary(dictonary *pDic): Функция, которая загружает слова и их частоты из выбранного текстового файла и добавляет их в объект словаря.

void viewdictionary(dictonary *pDic): Функция, которая отображает все слова и их частоты, упорядоченные в алфавитном порядке, на экране.

void writedictionary(dictonary *pDic): Функция, которая сохраняет текущее состояние словаря в текстовый файл, позволяя сохранять данные для дальнейшего использования.

void incrementdictionary(dictonary *pDic): Функция, где пользователь может ввести слово, частоту которого нужно увеличить. Если слово существует,

функция увеличивает его счетчик.

void insertdictionary(dictonary *pDic): Функция, которая позволяет пользователю добавить новое слово в словарь, если его там нет.

void findworddictionary(dictonary *pDic): Функция, которая ищет частоту указанного слова в словаре и выводит результат на экран.

Методы для класса dictionary

30

В центре структуры программы находится класс dictionary, который

инкапсулирует данные и методы работы со словарем. Основные методы класса:

int insert(string word): Метод, который добавляет новое слово в словарь с начальной частотой 1 и возвращает индекс добавленного слова.

int insert2(string word, int count): Метод, который добавляет слово с заданной частотой в словарь и возвращает индекс добавленного слова.

bool increment(int index): Метод, который увеличивает счетчик частоты слова по указанному индексу. Возвращает true, если увеличение прошло успешно, и false, если индекс недопустим.

int findword(string word): Метод, который ищет слово в словаре и возвращает его индекс, если оно найдено, или -1, если слово не существует.

void view(int &size): Метод, который сортирует словарь по алфавиту и возвращает размер словаря через переданный параметр.

string word(int index): Метод, который возвращает слово по указанному индексу, либо пустую строку, если индекс недопустим.

int count(int index): Метод, который возвращает частоту слова по указанному индексу, либо 0, если индекс недопустим.

3.4 Технические средства, которые используются при работе

программы

Для запуска программы пользователю необходимо открыть предоставляемый пользователю файл «.exe». Как было отмечено ранее, для корректной работы продукта необходимо наличие графического адаптера и операционной системы Windows.

3.5 Вызов программы

Исходный текстовый файл (Рисунок 3.17):

31

Рисунок 3.17 — Исходный текстовый файл

При запуске программного продукта появляется главное окно приложения

(Рисунок 3.18), содержащие текстовое меню со всеми указанными в техническом задании операциями над частотным словарем. При выборе определенного пункта меню производятся необходимые операции.

Рисунок 3.18 — Главное окно приложения

Далее будет показана работа всех выбранных пунктов меню на рисунках

3.19, 3.20, 3.21, 3.22, 3.23, 3.24, 3.25, а на рисунках 3.26, 3.27, 3.28, 3.29, 3.30, 3.31

представлены примеры все возможные вариации некорректного ввод данных, во всех остальных случая происходит критическая ошибка в программе и моментальное прекращение работы

При выборе первого пункта меню выводится все доступные словари

(Рисунок 3.19).

Рисунок 3.19 – Вывод доступных словарей в каталоге

32

При выборе второго пункта меню выводится слова в алфавитном порядке,

содержащиеся в выбранном словаре (Рисунок 3.20).

Рисунок 3.20 – Просмотр выбранного словаря отсортированного в алфавитном порядке

При выборе пятого пункта меню ввода слов и сохранение в директории

появляется новый словарь с ранее сохранёнными словами (Рисунок 3.21).

Рисунок 3.21 – Добавление нескольких слов и создание из них новый словарь

33