Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая по Основам Программирования.doc
Скачиваний:
5
Добавлен:
20.09.2019
Размер:
359.42 Кб
Скачать

1.2 Ход решения

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

2 Алгоритм решения

Объявляются переменные, массив для записи в него строк из файлов. Для нужного выравнивания по центру, необходимо в начало строк, меньших по количеству символов в длинной строке, вставлять пробелы. Объявляем переменную для пробелов. Пользователем вводится имя входного файла, для считывания из него строк. Файл открывается для чтения. После обработки текстового файла в строковый массив записывается самая длинная строка из текста. Затем, используя циклический оператор, находим количество символов этой длинной строки. В случае неверного ввода пользователем требуемого файла, выходит сообщение, повествующее о том, что указанный файл не найден. Далее ведется обработка текстового файла на считку символов остальных строк. Выполняется действие, по которому от максимального количества длинной строки отнимаются количество символов остальных строк. После этого действия определенной переменной присваивается значение(пробелы) необходимые вставлять в начало строк отличных от длинной строки. Все строки над которыми выполнялись действия выводятся на консоль, с начала текст начального вида и центрированный текст. Затем открывается выходной файл для записи в него строк, которые были выравнены по центру. Закрываем файл. В конце, после успешного выполнения операции, память, выделенная для выполнения вычислений, очищается.

2.1 Руководство пользователя

Открывается приложение work with files.exе двойным щелчком по иконке. Запускается приложение. Пользователю выдается сообщение о предложении ввести имя входного файла (имя файла необходимо вводить с расширением). Пользователь вводит имя файла, нажимает Enter. Затем пользователю необходимо будет ввести имя второго файла (так же указывая расширение).После ввода данных на консоль будет выведено результат работы.

2.2 Примеры работы программы

Ввод имен файлов, входного и выходного:

  1. В вод имени начального файла

Рис. 1 Предложение ввести имя файла

Рис. 1.2 При нахождении первого файла программой, просьбы ввести имя второго файла

Рис. 1.3 При успешном выполнении операции, выводится результат работы

Как видно на рисунке, после вводы имен файлов, следует вывод начального вида строк в первом текстовом файле. Затем вывод вида строк, которые были выравнены по центру.

  1. Р езультат работы в текстовых файлах:

Рис. 2.1 Начальный вид текста в первом текстовом файле

Рис. 2.2 Требуемый результат, центрированный текст

во втором текстовом файле

  1. В случае неправильного ввода файла с требуемым расширением, или не нахождения файла:

Рис. 3.1 Неправильный ввод

Рис. 3.2 Файл не найден

3 Анализ работы

Программа работает исправно и выполняет все действия указанные в поставленной задаче. Была разработка алгоритмического и программного обеспечения для работы с текстовыми файлами.

ЛИСТИНГ ПРОГРАММЫ

#include <fstream.h>

#include <conio.h>

#include <iostream.h>

#include <vcl.h>

void main(void)

{

char *pr = new char[100];//строка из файла

string str;

string spc;//строка добавляемых пробелов

char *name1=new char[80];//имена файлов

char *name2=new char[80];

int i,//счетчик

n, //количество добавляемых пробелов

max;//максимальная длина строки файла

SetConsoleCP(1251);//установка поддержки русских букв

SetConsoleOutputCP(1251);

cout << "Vvedite imya vhodnogo faila : ";

cin >> name1;

ifstream f;

f.open(name1,fmOpenRead);//открываем файл для чтения

if (f.fail()) //если файла нет

{

cout << "Fail ne nayden\n";

getch();

return;

}

cout << "Vvedite imya vahodnogo faila : ";

cin >> name2;

ofstream g(name2);//открыли файл для записи

max=0;//максимальная длина строки начальная

cout << "Ishodnyy tekst" << "\n";

while (! f.eof()) //пока не конец файла

{

f.getline(pr,100);//читаем строку

str=pr;

cout << str << "\n";//вывод на экран

if (str.length()>max) max=str.length();//если длина строки больше, переопределяем максимум

}

f.close();//закрыли файл

f.clear(0);//очистили буфер

f.open(name1,fmOpenRead); //вновь открыли для чтения

cout << "Centrirovannyy tekst" << "\n";

while (! f.eof()) //пока не конец файла

{

f.getline(pr,100);//читаем строку

str=pr;

n=(max-str.length())/2;//определяем количество пробелов

spc=" ";//формирование строки пробелов

for (i=1;i<=n;i++)

spc=spc+" ";//добавляем пробел

str=spc+str;//добавляем пробелы в начало строки

cout << str << "\n";//вывод на экран

str=str+"\n";

g.write(str.c_str(),str.length());//запись в файл

}

f.close();//закрыли файлы

g.close();

getch();

}

ЗАКЛЮЧЕНИЕ

Программа полностью реализована для работ с файлами, и работы с содержанием самого файла, которое выводится в консоль С++ Builder 6. Подробно изучил навыки работы с файлами, функции ввода и вывода на экран, функции считывания и записи данных в файлы. В составлении программы были использованы циклические операторы, операторы условия и другие. Использована функция для нахождения длины строки length. Программа читает текст из разбитого на строки текстового файла, и записывает в выходной файл считанный раннее текст с выравниванием по центру.

СПИСОК ЛИТЕРАТУРЫ

  1. Джаррод Холингворт, Боб Сворт, Марк Кэшмэн, Поль Густавсон Borland C++ Builder 6. Руководство разработчика = Borland C++ Builder 6 Developer’s Guide. — М.: «Вильямс», 2004. — С. 976

  2. Страуструп Б. Программирование: принципы и практика использования C++, исправленное издание = Programming: Principles and Practice Using C++. — М.: «Вильямс», 2011. — С. 1248

  3. Керниган Б., Ритчи Д. Язык программирования Си = The C programming language. — 2-е изд. — М.: Вильямс, 2007. — С. 304. 

  4. Герберт Шилдт. C: полное руководство, классическое издание = C: The Complete Reference, 4th Edition. — М.: Вильямс, 2010. — С. 704.

  5. Кочан С. Программирование на языке Си = Programming in C. — 3-е изд. — М.: Вильямс, 2006. — С. 496. 

20