ЗадачаПрограммированиеГод: 2025НИУ ЮУрГУ: Южно-Уральский государственный университет
👁 18💼 0

Готовая задача: Обработка текстового файла на C++

Загружена: 19.02.2026 14:15

Программа на C++ для анализа текстового файла: определяется максимальная длина строки и выводятся все строки такой длины, подсчитываются пробелы и общее количество слов. Включены разделение на функции, листинг с заголовками <iostream>, <fstream>, <sstream>, блок‑схемы и пример вывода — удобно для практической сдачи и включения в лабораторные задания.

Содержание

КОНТРОЛЬНАЯ РАБОТА 1

Задание
Создать программу на языке С++, обеспечивающую обработку текстового файла в соответствии с вариантом 6: найти максимальную длину строки в текстовом файле и вывести на экран все строки файла, имеющие такую длину. Подсчитать количество пробелов в тексте файла. Подсчитать количество слов в тексте. Все результаты записать в конце текстового файла. Решение каждой подзадачи оформить в виде отдельной функции. Отобразить алгоритм выполнения данной программы в виде блок-схемы.

Подробное описание

📘 О чем эта работа

Контрольная работа представляет реализацию на языке C++ утилиты для построчного анализа текстового файла. Объектом является текстовый файл (в листинге — 'example.txt'), предмет — программные процедуры, которые: находят максимальную длину строки, выводят все строки этой длины, подсчитывают количество пробелов и общее число слов, а затем записывают результаты в конец файла.

📚 Что внутри

В работе приведён полный листинг программы с необходимыми заголовками (#include <iostream>, <fstream>, <string>, <sstream>, <vector>) и подробным разделением логики на функции. Конкретно реализованы и документированы следующие функции:

  • readFile(const string& filename, vector<string>& lines) — чтение файла построчно с сохранением строк в вектор;
  • findMaxLength(const vector<string>& lines) — поиск максимальной длины строки путем перебора всех строк;
  • countSpaces(const vector<string>& lines) — подсчёт символов пробела во всём тексте;
  • countWords(const vector<string>& lines) — подсчёт слов в каждой строке с помощью istringstream (учитываются стандартные разделители пробелами);
  • writeResultsToFile(const string& filename, int maxLength, int spaceCount, int wordCount) — дозапись результатов в конец текстового файла (ofstream с ios::app).

Кроме листинга показаны блок‑схемы выполнения (рисунки 1–6): общая схема программы и схемы каждой функции, что облегчает понимание алгоритма. На рисунках 7 и 8 приведён пример запуска программы и содержимое текстового файла после дозаписи результатов.

📊 Для кого подходит

Материал полезен студентам технических специальностей и начинающим программистам, изучающим работу с файловыми потоками в C++ и базовые приёмы текстовой обработки. Подходит для выполнения контрольных и лабораторных работ по дисциплине 'Основы программирования'.

✨ Особенности

Работа оформлена в виде отдельных функций, что упрощает модульное тестирование и адаптацию. Преимущества:

  • Чёткая структура: чтение → анализ → подсчёты → запись результатов;
  • Использование стандартных средств C++: ifstream/ofstream, istringstream, vector — нет зависимости от внешних библиотек;
  • Демонстрация реального примера: имя файла 'example.txt', показан пример вывода и финального состояния файла;
  • Блок‑схемы для каждой функции, пригодные для отчёта и защиты работы.

В тексте также указаны практические замечания: результаты дозаписываются в файл, что полезно для ведения отчётности; возможны простые улучшения — учёт табуляций, обработка нескольких разделителей, поддержка кодировок UTF‑8 и корректный учёт слов с пунктуацией.

❓ Частые вопросы

Подойдет ли для моего ВУЗа?
Структура и оформление соответствуют требованиям контрольной/контрольной‑работы: титульные данные, задание, листинг, блок‑схемы и результаты.

Можно адаптировать?
Да. Код разделён на функции, поэтому легко заменяются правила подсчёта слов, добавляется фильтрация символов или считывание нескольких файлов. Дозапись результатов в файл реализована через ios::app — при необходимости можно изменить формат вывода.

Практическая ценность: готовый рабочий пример для изучения работы с файлами и строковыми потоками в C++, подробные блок‑схемы для отчёта и образец вывода, который демонстрирует правильность выполнения задач: поиск максимальной длины строки, перечисление строк такой длины, подсчёт пробелов и слов и запись итогов в файл.