
Курсовая работа / ГОТОВАЯ КР (Тема Частотный словарь)
.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