Строки и текстовые файлы

Изучение структурной организации, способов доступа к элементам и других особенностей текстовых файлов. Стандартные средства языка C/C++ для работы со строками и текстовыми файлами. Принципы и основные этапы процедурного программирования на данном языке.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 30.05.2016
Размер файла 18,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Отчет о лабораторной работе

Строки и текстовые файлы

Цель лабораторной работы: изучение структурной организации, способов доступа к элементам и других особенностей текстовых файлов; изучение стандартных средств языка C/C++ для работы со строками и текстовыми файлами; совершенствование навыков процедурного программирования на языке C/С++ при решении задач редактирования текстовых файлов.

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

Порядок выполнения работы:

1) Получить у преподавателя индивидуальное задание на обработку строк текстового файла.

2) Построить схему алгоритма решения задачи с использованием функций обработки строки, функции создания, просмотра и редактирования текстового файла.

3) Составить спецификации функций.

4) Составить программу на языке C/С++.

5) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов. Обеспечить одновременный показ на экране исходного и отредактированного файлов.

8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, спецификации функций, текст программы, контрольные примеры.

1) Задание #12:

Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, которые начинаются с прописной буквы.

2) Построим схему алгоритма решения задачи с использованием функций обработки строки, функции создания, просмотра и редактирования текстового файла:

1) Создадим поток записи в файл ofstream из библиотеки <fstream>

2) Откроем файл для записи с помощью метода.open () потока ofstream из стандартной библиотеки <fstream> (Данный метод также создаст пустой файл, если его там нет или затрёт всё его содержимое)

3) Используем объект класса <string> как переменную для хранения вводимых данных

4) Используем метод std:getline() для инициализации экземпляра string

5) Закроем файл методом.close() класса fstream

6) Создадим экземпляр класса ifstream библиотеки <fstream> для изъятия информации из файла

7) Откроем файл для чтения знакомым методом.open()

8) Используем возвращаемое значение метода.eof() чтобы определить конец файла при считывании информации как из потока данных методом std:getline()

9) Результат считывания занесём в экземпляр класса string библиотеки <string.h>

10) Обработаем строку созданной нами функцией findWords()

11) Выведем обработанную строку на экран

3) Спецификации функций

int make_file (char *fname);

 // создание файла

void pro_verka (char *fname, int strCount);

 // чтение и обработка строк файла

bool WhileSK (string s, int k);

 // Условие цикла пересчёта букв в слове

string scanWord (int i, string s);

 // Сканируем слово

string findWords (string s);

 // Ищем в строке нужные словА

Текст программы

#include <stdio.h>

#include <conio.h>

#include <string>

#include <stdlib.h>

#include <iostream>

#include <fstream>

#include <Windows.h>

#include <locale>

#define _ULONGLONG unsigned __int64

программирование текстовый процедурный

 // Этот дефайн нужен для корректной работы метода std:to_string()

using namespace std;

#define FNAME «C:\\stroka.txt» // имя файла объявлено константой

int make_file (char *fname); // создание файла

void pro_verka (char *fname, int strCount); // чтение и обработка строк файла

bool WhileSK (string s, int k); // Условие цикла пересчёта букв в слове

string scanWord (int i, string s); // Сканируем слово

string findWords (string s); // Ищем в строке нужные словА

int main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

system («cls»); // Очищаем экран консоли

char fname[20] = FNAME;

int strCount = make_file(fname); // запуск создания файла

pro_verka (fname, strCount); // запуск обработки файла

system («pause»);

return 0;

}

 // Функция создания текстового файла

int make_file (char *fname)

{

ofstream outS; // Создаём поток

outS.open (FNAME, ios:trunc); // Открываем файл и затираем всё что там есть

int strCount=0; // Опциональное значение количества строк

string st = «»; // исходная строка

printf («\nCreating the file…\n»); // Создаём файл

printf («Press <Enter> after every string.\n»); // нажмите ввод полсе каждой строки

printf («Enter empty string to stop\n»); // Пустая строка для остановки

printf («Enter a string and press <Enter>\n»);

printf(«->»);

getline (cin, st, '\n'); // Ожидаем ввода первой строки

while (st!= «»)

{

cin.sync(); // Очищаем входной поток

outS << st << endl; // Отправляем поток данных в файл

printf («\nEnter a string and press <Enter>\n»);

printf(«->»);

getline (cin, st, '\n'); // Ожидаем ввода других строк

//cout << st; // Выводим строку, чтобы убедиться

// Что наш компилятор не преобразовал

// Её в каракули))

strCount++; // Считаем строчки (Опционально)

}

outS.close(); // закрываем файл

return strCount;

}

// читаем и обрабатываем строки файла

void pro_verka (char *fname, int strCount)

{

_ULONGLONG counter = 0; // Этот тип вместо int

// нужен для метода

//std:to_string() - мы

// преобразуем int в string,

// чтобы прибавить номер строки (int)

// К самой строке с помощью «+»

string inpStr = «»; // » сумма» входных строк

string inp = «»; // Входная строка

string result = «»; // Выходная строка

ifstream input; // Входной поток

input.open(FNAME) ; // Открываем файл

//Check for error

if (input.fail()) // Проверка на валидность

{

cerr << «Error Opening File»;

exit(1);

}

while (! input.eof()) // До тех пор пока не конец файла

{

getline (input, inp); // Берём строку гетлайном

counter++; // Номер нашей строки, мы его выведем.

if (inp!= «») // Помещаем введённую строку в переменную

inpStr += std:to_string(counter) +») «+ inp + «\n»;

if (inp!= «») // Обрабатываем строку нашей f(x)

result += std:to_string(counter) +») «+ findWords(inp);

}

cout << «Исходные строки: \n_________________\n» << inpStr << «\n_________________» << endl;

cout << «\nСлова из Ваших строк, начинающиеся со строчной буквы: \n_________________\n»

<< result << «\n_________________» << endl;

input.close();

}

// Ищем в строке словА

// со строчной буквы

string findWords (string s)

{

string newString = «»; // Результирующая строка.

bool begin = true; // Начало текста или нет.

for (int i = 0; i < s.length(); i++) // Пока символы в строке не кончатся.

{

if (begin? (s[i]!=' '): ((s[i]!=' ')&&(s [i-1]==' ')))

{

begin = false;

newString += scanWord (i, s) + «»;

}

}

return newString + «\n»;

}

// Сканируем слОво на предмет

// Начала со строчной буквы

string scanWord (int i, string s)

{

string theWord = «»; // Результирующее слово

string pr = «АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ»;

for (int l = 0; l < pr.length(); l++)

{

if (s[i]==pr[l])

{

for (unsigned int k = i; WhileSK (s, k); k++)

{

theWord += s[k]; // заносим посимвольно в

// нужное нам слово буквы

}

}

}

return theWord;

}

// Условие цикла пересчёта букв в слове

bool WhileSK (string s, int k)

{

if (k < s.length())

return s[k]!= ' ';

else

return false;

}

Размещено на Allbest.ru

...

Подобные документы

  • Средства языка программирования Delphi. Структурные типы данных. Строковые переменные, массивы, множества, файлы. Механизм классов в C++. Интерфейсный и описательный обзоры классов в Delphi. Работа с текстовыми и бинарными файлами прямого доступа.

    курсовая работа [990,4 K], добавлен 07.08.2012

  • Принципы и порядок работы с файлами на языке Delphi, получение навыков программирования с использованием файлов. Создание каталога продуктов. Страница палитры компонентов, настраиваемые компоненты и их значения. Текст программы и ее тестирование.

    лабораторная работа [243,9 K], добавлен 09.01.2009

  • Теоретическое изучение и практическое применение приёмов работы с файлами в операционной системе Windows 95. Файлы и папки: основные понятия и правила формирования имен файлов в Windows. Характеристика и анализ особенностей операций с файлами и папками.

    контрольная работа [139,9 K], добавлен 09.03.2011

  • Файл - именованная область внешней памяти ПК. Процедуры и функции языка Pascal для работы с файлами прямого и последовательного доступа. Классификация файлов по типу доступа к элементам. Обоснование выбора средств программной реализации блоков.

    лабораторная работа [10,4 K], добавлен 13.02.2009

  • Создание приложения Windows, позволяющего автоматизировать процесс обработки информации студентов университета. Организация работы с физическими файлами в языках программирования. Изучение средств IDE Delphi для организации работы с текстовыми файлами.

    курсовая работа [1,5 M], добавлен 08.11.2011

  • Файл - именованная область памяти на магнитном носителе. Программирование доступа к файлу в языке Turbo Pascal. Описание файловой переменной. Виды файлов в зависимости от способа описания: текстовые, двоичные или типизированные и нетипизированные.

    реферат [14,8 K], добавлен 19.01.2009

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

    дипломная работа [2,8 M], добавлен 21.07.2013

  • Изучение основных конструкций и способов написания программ на языке Паскаль. Обзор принципов работы и интерфейса написанной программы. Обработка и модификация двумерных массивов. Файловые структуры данных. Текстовые файлы. Элементы машинной графики.

    курсовая работа [761,7 K], добавлен 11.03.2015

  • Цели и задачи дисциплины "Технология программирования". Программные средства ПК. Состав системы программирования и элементы языка. Введение в систему программирования и операторы языка Си. Организация работы с файлами. Особенности программирования на С++.

    методичка [126,3 K], добавлен 07.12.2011

  • Разработка программы автоматизации процесса проверки знаний учащихся. Использование языка программирования Borland Delphi 7.0, его свойства, компоненты для работы со строками. Создание обучающих тестов на знание лексики и грамматики английского языка.

    курсовая работа [521,0 K], добавлен 06.03.2016

  • Методы работы с файлами на языке Си. Принципы модульного программирования. Реализация программы с дружелюбным интерфейсом для комфорта пользователя и организацией высокоэффективной работы по изучению лексики английского языка. Подпрограммы, их функции.

    курсовая работа [1,6 M], добавлен 27.02.2015

  • Возникновение, эволюция и особенности языка программирования С++. Разработка программы, которая содержит текущую информацию о книгах в библиотеке с использованием средства объектно-ориентированного программирования среды C++. Спецификация и тестирование.

    курсовая работа [159,1 K], добавлен 20.01.2013

  • Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.

    курсовая работа [19,5 K], добавлен 19.05.2011

  • История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.

    курсовая работа [795,9 K], добавлен 14.12.2012

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

  • Изучение функций и возможностей среды разработки языка программирования Pascal. Рассмотрение работы с одномерными и двумерными массивами, со строками и числами. Математическая формулировка задач. Разработка алгоритмов, описание структуры программ.

    курсовая работа [879,8 K], добавлен 11.02.2016

  • Строгая типизация и наличие средств структурного (процедурного) программирования императивного языка Pascal. Структура программы, выражения, строки. Правила и описание типов, процедур и функций, операторов ввода - вывода, модулей и подпрограмм.

    курсовая работа [37,3 K], добавлен 28.06.2008

  • Специальные клавиши на клавиатуре. Составление шаблонов имен при поиске файлов. Описание и функции объекта "Мой компьютер". Способы выделения группы файлов. Этапы настройки часов. Средства работы с буфером обмена. Основные функции электронной почты.

    контрольная работа [578,8 K], добавлен 14.04.2013

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Характеристика объектно-ориентированного, процедурного, функционального программирования. Выбор языка программирования для создания программного обеспечения для управления справочником "Спортсмены". Алгоритм работы приложения, пользовательский интерфейс.

    курсовая работа [1,6 M], добавлен 23.02.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.