Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Обработка текстовой информации

Автор:   •  Декабрь 10, 2023  •  Курсовая работа  •  8,924 Слов (36 Страниц)  •  47 Просмотры

Страница 1 из 36

     

МИНОБРНАУКИ РОССИИ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)

Кафедра Вычислительной техники

Курсовая работа

по дисциплине "Программирование"

Тема: Обработка текстовой информации 

Студентка гр. 2308

Преподаватель

Подклетнов С.Г.

Санкт-Петербург

2022


Введение

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

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

Постановка задачи и описание решения

Необходимо написать программу, в которой соблюдены следующие требования:

  • Систематическое использование функций как средства абстракции и структуризации;
  • Способ передачи данных между функциями - через параметры;
  • Использование рекомендуемых правил оформления кода;
  • Наличие комментариев для ключевых фрагментов программы, заголовочных комментариев функций(внешние спецификации);
  • Сочетание консоли и файлов для организации ввода исходных данных и вывода результатов;
  • Обоснование проектных решений, в т.ч. с точки зрения эффективности разработанных алгоритмов;
  • Формирование в ходе работы программы выходных данных, демонстрирующих как результат ее работы, так и порождаемый ею вычислительный процесс.

Описание функций:

Выбор функции ClearScreen() для своей системы

int read_file(char text[MAXLEN][MAXLEN]) - считывает текст из файла input.txt в массив text, подсчитывает и возвращает количество строк в тексте strcount.

void write_file(char res[MAXLEN][MAXLEN], int strcount) - записывает содержимое массива res в файл output.txt.

int is_vowel(char symbol) - возвращает 1, если symbol является гласной буквой, 0 в противном случае.

int is_separator(char symbol) - возвращает 1, если symbol является разделителем, 0 в противном случае.

void ShowMenu() - вывод меню в консоль.

Структура вызова функций:

[pic 1]

Описание решения:

После инициализации переменных, программа очищает консоль функцией ClearScreen(), чтобы программа отображалась корректно во всех средах разработки(например, VScode, где консоль открыта всешда и не очищается после закрытия предыдущей программы). Далее программа выводит приветствие и ожидает нажатия пользователем клавиши Enter. После программа выводит на экран меню. Выбор в меню программа получает функцией fgets(menuchoice, 16, stdin) в переменную menuchoice, впоследствии menuchoice переводится в число функцией atoi(menuchoice) и начинается цикл, который не закончится, пока пользователь не выберет пункт меню 7 (выход). Программа ожидает ввода пользователем своего выбора, после чего производит определение действия.

Если пользователь выбрал пункт 1 - Input text, программа предлагает выбор: 1 - получить текст из файла input/txt или 2 - вывести текст с клавиатуры. Программа обнуляет переменную strcount, ответственную за количество строк в тексте, для корректной работы программы в случае, если пользователь решит ввести текст несколько раз. Далее, программа получает выбор пользователя функцией fgets() в переменную choice. Она конвертируется в число таким же образом, как и menuchoice . Если пользователь выбирает пункт 1 меню, то выполняется функция read_file(text), значение которой присваивается переменной strcount (количество строк в тексте). После данной операции элементу массива text[strcount-1][strlen(text[strcount-1])+1] (последний элемента текста +1) присваивается значение ‘\0’, обозначающее конец текста. В случае выбора пользователем пункта 2 (ручной ввод), программа запрашивает ввод специального символа,  который будет символизировать конец текста (например, #), очищает консоль и считывает строки текста до тех пор, пока последним символом введенной строки не будет полученный специальный символ, а также увеличивает счетчик количества строк при каждом вводе. После работы цикла элементу text[strcount-1][strlen(text[strcount-1])-2] присваивается значение ‘\0’ (заменяет специальный символ, обозначающий конец текст). Если пользователь ошибается при выборе варианта ввода, программа уведомляет пользователя об ошибке. Очищается консоль, выводится сообщение “Press ENTER to return to the menu”.

...

Скачать:   txt (32.9 Kb)   pdf (826.8 Kb)   docx (848.8 Kb)  
Продолжить читать еще 35 страниц(ы) »
Доступно только на Essays.club