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

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

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

 

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ..................................................................................................................

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