 
        
        Курсовая работа / ГОТОВАЯ КР (Тема Частотный словарь)
.pdf| 
 | СОДЕРЖАНИЕ | 
 | 
| ВВЕДЕНИЕ.................................................................................................................. | 6 | |
| 1 ТЕХНИЧЕСКОЕ ЗАДАНИЕ................................................................................... | 7 | |
| 1.1 | Назначение разработки .................................................................................. | 7 | 
| 1.1.1 | Наименование программы ............................................................................. | 7 | 
| 1.1.2 | Краткая характеристика области применения программы ........................ | 7 | 
| 1.2 | Основание для разработки............................................................................. | 8 | 
| 1.3 | Назначение разработки .................................................................................. | 8 | 
| 1.4 | Требования, предъявляемые к программе ................................................... | 8 | 
| 1.4.1 | Требования к функциональным характеристикам программы ................. | 8 | 
1.4.2Требования к техническим средствам, используемым при работе
| программы.................................................................................................................... | 8 | 
| 1.4.3 Требования к языкам программы и среде разработки програм-мы .......... | 9 | 
1.4.4Требования к информационным структурам на входе и выходе
| программы.................................................................................................................... | 9 | |
| 1.5 | Требования к программной документации.................................................. | 9 | 
| 1.6 | Назначение разработки .................................................................................. | 9 | 
| 2 ОБЗОР СПОСОБОВ ОРГАНИЗАЦИИ ДАННЫХ И ОБОСНОВАНИЕ | ||
| ВЫБОРА СТРУКТУРЫ ДАННЫХ ДЛЯ ЭФФЕКТИВНОГО ВЫПОЛНЕНИЯ | ||
| ОПЕРАЦИЙ ............................................................................................................... | 10 | |
| 2.1 | Массив .................................................................................................................. | 10 | 
| 2.2 | Вектор................................................................................................................... | 10 | 
| 2.3 | Связанные массивы............................................................................................. | 11 | 
| 2.4 | Стек....................................................................................................................... | 11 | 
| 2.5 | Множество ........................................................................................................... | 12 | 
| 2.6 | Выбор структур данных ..................................................................................... | 12 | 
| 3 ОПИСАНИЕ ПРОГРАММЫ ................................................................................ | 13 | |
| 3.1 Общие сведения................................................................................................... | 13 | |
| 3.1.1 Наименование программы .............................................................................. | 13 | |
4
3.1.2Программное обеспечение, необходимое для функционирования
| программы.................................................................................................................. | 13 | |
| 3.2 | Функциональное назначение программы (классы решаемых задач и | |
| функциональные ограничения на применения) ..................................................... | 14 | |
| 3.3 | Описание логической структуры программы .................................................. | 14 | 
| 3.3.1 Алгоритмы, используемые в программе ....................................................... | 15 | |
| 3.3.2 Структура программы с описанием функций составных частей и связей | ||
| между ними ................................................................................................................ | 30 | |
| 3.4 | Технические средства, которые используются при работе программы........ | 31 | 
| 3.5 | Вызов программы................................................................................................ | 31 | 
| 3.6 | Входные данные (организация и предварительная подготовка входных | |
| данных)....................................................................................................................... | 36 | |
| 3.7 | Выходные данные ............................................................................................... | 36 | 
| ЗАКЛЮЧЕНИЕ ......................................................................................................... | 37 | |
| СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ............................................... | 38 | |
| ПРИЛОЖЕНИЕ А ..................................................................................................... | 39 | |
5
ВВЕДЕНИЕ
Частотный словарь представляет собой один из важных инструментов для обработки текстовых данных, позволяющий эффективно организовать и анализировать информацию. Эта структура данных используется для подсчета количества вхождений слов в текстах, что делает ее полезной в различных областях, включая лексический анализ, обработку естественного языка и статистику текстов.
Соревноваться с быстрорастущими информационными технологиями требует от студентов и исследователей умения быстро обрабатывать и анализировать большие объемы текста. Поэтому разработка программы частотного словаря на языке C++ становится актуальной задачей. Данная программа позволяет пользователю вводить текст, загружать данные из файлов и выполнять операции по подсчету частоты слов, что удобно для дальнейшего анализа.
Целью данной работы является создание эффективного приложения для составления частотного словаря с интуитивно понятным интерфейсом и возможностью работы как с консольным вводом, так и с текстовыми файлами.
Задачи, необходимые для достижения поставленной цели, включают:
1.Изучение существующих алгоритмов и методов работы с текстовыми данными для разработки программы.
2.Реализация функций, позволяющих пользователю вводить текст,
сохранять и загружать данные.
3. Проведение тестирования и отладки разработанной программы для обеспечения ее корректной работы.
Важной частью работы является изучение структур данных, подходящих для эффективного хранения и обработки информации в частотном словаре, а
также освоение навыков работы с файлами в C++. Таким образом, данное приложение не только позволяет вести учет частоты слов, но и предоставляет широкий функционал для анализа текстовых данных.
6
1 ТЕХНИЧЕСКОЕ ЗАДАНИЕ
1.1 Назначение разработки
Составленное техническое задание по дисциплине «Алгоритмические основы обработки данных» является документом к курсовой работе, который отражает все этапы разработки программного продукта, а также процесс проектирования и выявление требований, предъявляемых конечному продукту.
1.1.1 Наименование программы
Название данного приложения – «Частотный словарь». Это называние напрямую связывается с темой курсовой работы и отображает основное назначение программы, заключается в обеспечении пользователей инструментами для анализа частоты использования слов в текстах для решения задач по дискретной математике.
1.1.2 Краткая характеристика области применения программы
Программа предназначена для решения задач по дискретной математике и для подсчета слов в текстах. Она нацелена на анализ частоты употребления слов,
что делает её полезной для филологов, лингвистов, студентов и преподавателей,
занимающихся изучением языка. С помощью данной программы пользователи смогут эффективно обрабатывать текстовые данные, выявлять наиболее употребляемые слова и анализировать их частотность. Это позволит не только облегчить исследовательскую работу, но и улучшить навыки написания текстов,
а также проводить статистические исследования в области лексикологии и стилистики.
7
1.2 Основание для разработки
Основанием для разработки является курсовая работа по дисциплине
«Алгоритмические основы обработки данных», предусмотренная учебным планом направления подготовки 09.03.01 «Информатика и вычислительная техника» профиля «Цифровые комплексы, системы и сети».
1.3 Назначение разработки
Приложение предназначена для анализа частоты слов в текстах и решения задач по дискретной математике, что способствует углубленному изучению языка и облегчает исследовательскую работу.
1.4 Требования, предъявляемые к программе
1.4.1 Требования к функциональным характеристикам программы
В приложении должны быть реализованы следующие операции:
▪создание пустого словаря;
▪добавление нового элемента в словарь;
▪увеличение значения счетчика слова в элементе словаря с заданным словом;
▪вывод элементов словаря в алфавитном порядке;
▪поиск элемента словаря по слову.
1.4.2 Требования к техническим средствам, используемым при работе
программы
Персональный компьютер должен оснащён с микропроцессором типа
Pentium, также должна быть установлена OC Windows (не ниже Windows 7).
8
1.4.3 Требования к языкам программы и среде разработки програм-
мы
Для разработки используется язык программирования C++, в качестве среды разработки должна быть использована среда Embarcadero Dev-C++.Для разработки интерфейса пользователя задействован механизм Dev-C++.
1.4.4 Требования к информационным структурам на входе и выходе
программы
В качестве входными данными программы являются текстовые данные,
вводимые с клавиатуры, и данные, считанные из текстового файла.
Выходными данными представляет собой текстовые данные, выводимые на экран и сохраненные в текстовый файл.
1.5 Требования к программной документации
1.Пояснительная записка оформляется в соответствии с ЛНА РТУ МИРЭА.
2.Проектная документация, составленная в соответствии с ГОСТ.
В процессе разработки пользовательского приложения документируется вся информация о проделанной работе и элементы задания. Требования должны быть динамическими, а словарь — сохранённым. Все детали задания, включая возникающие трудности, должны быть отражены в пояснительной записке,
которая прилагается к работе.
1.6 Назначение разработки
1.Обзор способов организации данных и обоснование выбора структуры данных 01.10.2024 – 21.10.2024
2.Разработка программы: 21.10.2024 – 15.11.2024
3.Разработка программной документации: 15.11.2024 – 05.12.2024
4.Оформление пояснительной записки: 05.12.2024 – 20.12.2024
5.Защита курсовой работы: 22.12.2024
9
2 ОБЗОР СПОСОБОВ ОРГАНИЗАЦИИ ДАННЫХ И
ОБОСНОВАНИЕ ВЫБОРА СТРУКТУРЫ ДАННЫХ ДЛЯ
ЭФФЕКТИВНОГО ВЫПОЛНЕНИЯ ОПЕРАЦИЙ
Данные могут быть организованы различными способами. Тип структуры данных в программе оказывает большое влияние на ее производительность. Для того чтобы выбрать наиболее простой и эффективный способ организации данных в программе рассмотрим несколько типов структур данных.
2.1 Массив
Массив — это одна из базовых структур данных, позволяющая хранить элементы одного типа. Они обеспечивают быстрый доступ по индексу, что делает их удобными для операций, требующих частого обращения к элементам.
Однако фиксированный размер массива может стать ограничением, если требуется изменять количество хранящихся значений.
Элементы в массиве имеют свой индекс — номер элемента, по которому можно производить поиск. Существует два типа массивов: одномерные и многомерные. Первые представляют собой простейшие линейные структуры, а
вторые называются вложенными и включают другие массивы. Чаще всего в программировании используются одномерные и двумерные массивы. Также существуют динамические массивы, для выделения работы с ними используются отдельные формы операторов new и delete: new[] и delete[]. Динамическое выделение массива позволяет устанавливать его длину во время выполнения программы.
2.2 Вектор
Вектор является моделью динамического массива. Другими словами,
вектор — это тот же динамический массив, но который может сам управлять
10
выделенной себе памятью. Тем самым можно создавать массивы, длина которых задается во время выполнения, без использования операторов new и delete, то есть без явного указания выделения и освобождения памяти. Использование vector вместо ручного выделения памяти для массива позволит избежать утечек памяти, к тому же облегчит и упростит работу над кодом. Они обеспечивают:
Гибкость: Пользователю не нужно беспокоиться о размере контейнера при добавлении новых элементов. Быстрый доступ: Доступ по индексу сохраняется,
что позволяет быстро извлекать данные. Эффективное использование: Вектора оптимизированы для операций добавления и удаления, особенно в конце контейнера. В коде используется для хранения слов и для соответствующих счетчиков. Это хорошее решение из-за динамичности и простоты использования.
2.3 Связанные массивы
Связный список — это концепция, использующая два или более контейнеров
Связный список структура данных позволяет эффективно хранить и обрабатывать данные, особенно в тех случаях, когда необходима одновременная работа с ключами и значениями. Связанные массивы обеспечивают легкость в добавлении и удалении элементов, поскольку можно просто оптимизировать операции в одном из массивов без необходимости изменять структуру других.
2.4 Стек
Стек — это упорядоченный набор элементов, в котором размещение новых и удаление существующих происходит с одного конца, называемого вершиной стека. Последовательность данных хранится по правилу LIFO (Last In First Out -
«последним пришёл — первым ушёл»). Операция добавления элемента называется «push», удаления — «pop». Они лучше подходят для ситуаций, где требуется управление данными по принципу последнего или первого пришедшего.
11
2.5 Множество
Множество — это структура данных, эквивалентная множествам в математике. Оно состоит из различных элементов заданного типа и поддерживает операции добавления элемента в множество, удаления элемента из множества, проверка принадлежности элемента множеству. Одно и то же значение хранится в множестве только один раз. Множества могут быть полезны для уникальных значений и быстрого поиска, однако, в данной реализации слова могут повторяться, что делает использование множеств менее актуальным.
Программа реализует подсчет частоты слов, что требует, чтобы каждое слово имело свой счетчик.
2.6 Выбор структур данных
В ходе использования программы пользователь вводит в консоль текст,
либо вводит название текстовых файлов, поэтому нужно воспользоваться типом данных string (строковый).
Чтобы реализовать хранение данных в файле, необходимо использовать файловое хранилище fstream для чтения, записи и хранения файла.
Для реализации подсчета частоты слов необходимо использовать множество для того, чтобы каждое слово имело свой счетчик.
Хранение слов и для соответствующих счетчиков используется вектор из-
за того, что это эффективное решение из-за динамичности и простоты использования.
Таким образом, тщательный выбор структуры данных и методов для работы с файлами и строками обеспечивает устойчивую и эффективную реализацию для задач, связанных с вводом, хранением и анализом текстовых данных
12
3 ОПИСАНИЕ ПРОГРАММЫ
3.1 Общие сведения
В ходе выполнения курсовой работы была создана программа с консольным интуитивно понятным интерфейсом для работы с частотными словарями для операционной системы Windows. В ней выполняются все условия,
обозначенные в техническом задании, и содержатся все необходимые компоненты, инструменты для корректной работы.
3.1.1 Наименование программы
Название данного приложения — «Частотный словарь». Данное название напрямую связывается с темой курсовой работы и отражает назначение будущего приложения, заключающееся в выполнение заданных операций создание пустого словаря, чтение существующего, запись в словарь нового элемента, увеличение значение счетчика слова, вывод элементов словаря в алфавитном порядке, поиск элемента словаря по слову. Английский вариант название: «frequency dictionary».
3.1.2 Программное обеспечение, необходимое для функционирования
программы
Для корректного функционирования данного программного продукта необходимо, чтобы на персональном компьютере или ноутбуке пользователя была установлена операционная система от компании Microsoft, а именно
Windows (Windows 10). Также требуется наличие графического адаптера, чтобы устройство могло справляться с обработкой отображения консоли приложения.
Другие требования к устройству пользователя не предусмотрены.
13
