Строки и текстовые файлы
Изучение структурной организации, способов доступа к элементам и других особенностей текстовых файлов. Стандартные средства языка 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