Программирование: работа с текстом. Курсовая работа (т). Информационное обеспечение, программирование.

Программирование: работа с текстом. Курсовая работа (т). Информационное обеспечение, программирование.




💣 👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻


























































Информационное обеспечение, программирование

Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

Похожие работы на - Программирование: работа с текстом

Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе

Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

на
тему: «Программирование:
Работа с текстом»









.       Иерархическая
структура программы


Получить практические навыки работы с
символьными строками. Научить выполнять основные операции с символьными
строками.


Разработать алгоритм и написать программу исходя
из индивидуального задания


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


В программе должно быть использовано простейшее
меню. Выполнение программы должно быть многократным по желанию пользователя. В
программе должны быть использованы функции ввода, вывода текста и формирования
нового текста. Все данные вводятся с клавиатуры. Для перехода к следующей
строке использовать <>. Ввести можно только одно слово.









Контрольные примеры представлены в таблице 1.




Погиб
поэт! - невольник чести- Пал, оклеветанный молвой,

Живой
поэт! - невольник чести- Пал, оклеветанный молвой,

Пять,
шесть, семь восемь, сто один.

Описание переменных представлено в таблице 2




Указатель
на адрес первого элемента введённого текста

Указатель
на адрес первого элемента сформированного текста

Указатель
на адрес первого элемента введённого слова

Указатель
на адрес первого элемента введённого слова для текста

Переменная
для организации меню и цикла

Вспомогательная
переменная для проверки выбора 1-го пункта меню

Вспомогательная
переменная для проверки ввода слова

Вспомогательная
переменная для проверки выбора 4-го пункта меню

Шаг 2. Выбор пользователем пункта меню. Вначале
пользователь должен выбрать только пункт 1 меню, иначе вывод сообщения об
ошибке с просьбой выбрать пункт 1 меню, также пользователь может ввести слово
для проверки текста и слово для замены, посмотреть справку пользователя и выйти
из программы


«1», то вызывается функция free1,
которая освобождает память, если был введён текст до этого, далее вызывается
функция vvod, в которой
производится вывод сообщения на экран для пользователя с просьбой ввести текст.
После этого происходит ввод текста. После переход к шагу 1.


«2», то вызывается функция vivod,
которая производит контрольный вывод текста на экран. После этого переход к
шагу 1.


«3», то вызывается функция free1,
которая освобождает память, если до этого было введено слово, далее вызывается
функция vvod_slova1, которая выводит сообщение с просьбой ввести слово для
проверки текста и происходит ввод пользователем слова для проверки текста.
После переход к шагу 1.


«4», то вызывается функция free1,
которая освобождает память, если до этого было введено слово, далее вызывается
функция vvod_slova, которая выводит сообщение с просьбой ввести слово для
замены и происходит ввод пользователем слова для замены. После переход к шагу
1.


«5», то вызывается функция free1,
которая освобождает память, если до этого был сформирован текст, далее
вызывается функция zamena,
которая производит формирование нового текста и вывод сообщения с
подтверждением операции, После этого переход к шагу 1.


«6», то вызывается функция vivod,
которая выводит сформированный текст, если текст не сформирован, то выводится
сообщение с указанием причины, почему текст не сформирован (или потому что,
пользователь не сформировал текст (т.е. не выбрал 5-ый пункт меню), или потому,
что текст не может быть сформирован). После этого переход к шагу 1.


«7», то вызывается функция help,
которая выводит помощь пользователю, далее выводится сообщение «Для выхода в
меню нажмите любую клавишу». После этого переход к шагу 1.


«8», то вызывается функция free1,
которая освобождает память, далее выводится сообщение «Для выхода нажмите любую
клавишу» и конец алгоритма.


Если другое значение, то выводится сообщение
«Ошибка, введите номер операции». После этого переход к шагу 1.


Блок-схема главной функции представлена на
рисунке 5.









Прототип: char** vvod(int *stroki), переменные
представлены в таблице 3


Функция vvod используется для ввода исходного
текста пользователем. Результатом вызова функции является сохранение в памяти
компьютера текста, ввёденного пользователем с клавиатуры.


Пример вызова: text =
vvod(&kolstrok), переменные представлены в таблице 3


Описание переменных функции представлено в
таблице 3.




Таблица 3. Описание переменных функции vvod


Указатель
на переменную количества строк текста

Указатель
на адрес первого элемента текста

Переменная
для организации перехода на следующую строку

Переменная
для организации выхода из набора текста

Блок-схема функции представлена на рисунке 1











Прототип: void vivod (char ** massiv, int
stroki), переменные представлены в таблице 4.


Функция vivod используется для вывода исходного
и преобразованного текста. Результатом вызова функции является вывод на экран
текста.


Пример вызова: vivod(text,
kolstrok), переменные представлены в таблице 4


Описание переменных функции представлено в
таблице 4.




Таблица 4. Описание переменных функции vivod


Указатель
на переменную количества строк текста

Указатель
на адрес первого элемента текста

Блок-схема функции представлена на рисунке 2









Рисунок 2. Блок-схема функции vivod




4.3 Функция освобождения
динамической памяти free1




Прототип: char** free1(char** massiv, int
kolstrok), переменные представлены в таблице 5


Функция free1
используется для освобождения динамической памяти после её выделения.


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


Пример вызова:
.free1(newtxt, kolstrok)


Описание переменных функции представлено в
таблице 5.




Таблица 5. Описание переменных функции free


Указатель
на переменную количества строк текста

Указатель
на адрес первого элемента текста

Функция menu
используется для вывода меню на экран компьютера.


Результатом вызова функции является
вывод на экран меню программы.


4.5 Функция вывода помощи пользователю
menu




Функция help
используется для вывода помощи пользователю на экран компьютера.


Результатом вызова функции является
вывод на экран помощи пользователю программы.


4.6 Функция формирования текста zamena




Прототип: char** zamena(char** text, char*
slovo, int kolstrok), переменные представлены в таблице 4.


Функция zamena используется
для формирования нового текста.


Результатом вызова функции является формирование
нового текста в памяти компьютера.


Пример вызова: newtxt =
zamena(text, slovo, kolstrok), переменные представлены в таблице 6.


Описание переменных функции представлено в
таблице 6.




Таблица 6. Описание переменных функции zamena


Указатель
на адрес первого элемента введённого текста

Указатель
на адрес первого элемента введённого слова

Указатель
на адрес первого элемента сформированного текста

Cчётчик
по символу первоначальной строки

Длина
копированного слова из первоначальной строки

Блок-схема функции представлена на рисунке 3











Рисунок 3. Блок-схема функции zamena









Прототип: char* vvod_slova(), переменные
представлены в таблице 7


Функция vvod_slova используется для ввода слова
для замены пользователем. Результатом вызова функции является сохранение в
памяти компьютера слова для замены, ввёденного пользователем с клавиатуры.


Пример вызова: slovo =
vvod_slova(), переменные представлены в таблице 7


Описание переменных функции представлено в
таблице 7.




Таблица 7. Описание переменных функции vvod_slova


Указатель
на адрес первого элемента двумерного массива

Переменная
для организации выхода из набора текста

Блок-схема функции представлена на рисунке 4




Рисунок 4. Блок-схема функции vvod_slova







Прототип: char* vvod_slova1(), переменные
представлены в таблице 7


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


Пример вызова: slovo1 =
vvod_slova1(), переменные представлены в таблице 8


Описание переменных функции представлено в
таблице 8.




Таблица 8. Описание переменных функции
vvod_slova1


Указатель
на адрес первого элемента двумерного массива

Переменная
для организации выхода из набора текста

Рисунок 5. Блок-схема функции vvod_slova1







Рисунок 6. Блок-схема главной функции









Сообщения, использованные в блок-схемах


Сообщение 3 Программа для работы с текстом


Сообщение 4 Ошибка, введите первый пункт меню


Если вы хотите изменить данное слово, нажмите
<1>, в противном случае любую другую клавишу


Ошибка, не было введено слово, выберите 4-ий
пункт меню


Новый текст не был сформирован. Так как не был
выбран 5-ый пункт меню


Для выхода в меню нажмите любую клавишу


Для выхода из программы нажмите любую клавишу


Ошибка, не было введено слово для текста,
выберите 3-и пункт меню.







5.     Иерархическая структура
программы




Иерархическая структура программы представлена
на рисунке 7.
































Рисунок 7.
Иерархическая структура программы









//Курсовая работа. Выполнил студент группы №1307
Орлов Викторmenu(); //функция менюhelp(); //помошь пользователю


char** vvod(int*
kolstrok); //ввод текста


void vivod(char** massiv, int
stroki); //вывод текста


char* vvod_slova1(); //ввод слова для текста*
vvod_slova(); //ввод слова для замены** free1(char**massiv, int koltrok);
//освобождение динамической памяти


char** zamena(char** text, char*
slovo1,char* slovo, int kolstrok); //замена
слов


{kolstrok = 0; //количество строкf, z = 0, h, g
= 0; //переменные для организации интерфейса**text = NULL; //указатель на
введённый текст**newtxt = NULL; //указатель на сформированный текст*slovo1 =
NULL; //указатель на введённое слово для текста*slovo = NULL; //указатель на
введённое слово("Программа для работы с текстом \n");


{(); //вывод меню("%d", &f);
//выбор пользователем пункта меню(stdin); //очистка буфера("cls");


{1:(text!= NULL)(text, kolstrok);=
1;= 0;= vvod(&kolstrok);;2:(z == 0)("\nОшибка,
введите
первый
пункт
меню\n");


{("\nКонтрольный вывод текста\n");(text,
kolstrok); //вывод текста


puts(slovo1);("\nЕсли
вы хотите изменить данное слово, нажмите <1>, в противном случае любую
другую клавишу\n");
puts(slovo);("\nЕсли
вы хотите изменить данное слово, нажмите <1>, в противном случае любую
другую клавишу\n");


};5:(z == 0)("\nОшибка,
введите
первый
пункт
меню\n");


{(newtxt != NULL)(newtxt,
kolstrok);= 1;((slovo != NULL)&&(slovo1 != NULL))


{= zamena(text, slovo1, slovo, kolstrok);("\nЗамена
слов проведена успешно\n");


}("\nОшибка, не было введено слово,
выберите 3-ий пункт меню\n");


};6:(z == 0)("\nОшибка, введите первый
пункт меню\n");


{("\n Новый
текст:
\n\n\n");(newtxt, kolstrok);


}("\nНовый
текст
не
был
сформирован.
Так
как не был выбран 4-ый пункт меню\n");


};7:();("\nДля выхода в меню нажмите любую
клавишу\n");


getch();;8:(text!= NULL)(text,
kolstrok);(newtxt != NULL)(newtxt, kolstrok);(slovo1 != NULL)(slovo1);(slovo !=
NULL)(slovo);("\nДля
выхода из программы нажмите любую клавишу\n");();;:("\nОшибка,
введите номер операции: \n");


"3.Введите слово которое должно встречаться
в тексте;\n"


"5.Замена первых слов, строк содержащих
введённое слово для текста;\n"


"\n\n\n\n\n\nВведите номер
операции\n");


//.помощьhelp()("\nПомощь
пользователю\n"


"\n1. Для того, чтобы ввести текст,
необходимо выбрать 1-ый пункт меню\n"


"\n2. Текст может содержать произвольно
количество строк\n"


"\n3. Для перехода на следующую строку
используется клавиша ENTER\n"


"\n4. Для прекращения ввода текста
необходимо нажать два раза клавишу ENTER\n"


"\n5. Если необходимы пустые строки в
тексте, то необходимо использовать один раз"


"\nENTER и один раз ПРОБЕЛ на каждой
строке\n"


"\n6. Для вывода введённого текста на экран
используется 2-ой пункт меню\n"


"\n7. Для того, чтобы ввести слово, на
которое будут заменяться слова, содержащие"


"\nцифры, необходимо выбрать 3-ий пункт
меню, ввод слова прекращается после нажатия клавиши ПРОБЕЛ"


"\nВвести можно только одно слово.\n"


"\n8. Для замены слов, содержащие цифры, на
введённое слово, необходимо использовать 4-ый пункт меню\n"


"\n9. Для вывода нового текста необходимо
использовать 5-ый пункт меню\n"


"\n10. Для вызова справки необходимо
использовать 6-ой пункт меню\n"


"\n11. Для выхода необходимо использовать
7-ой пункт меню\n\n"


"\nРазработчик: студент группы №1307
Ляховец Вадим");


{** text = NULL; //Массив указатель(текст)i, j;
//счётчик по строкам и счётчик по символамw, v = 0; //переменные для
организации перехода на следующую строку и выхода из набора текстаs[81];
//вводимая строка


s[j]
= getchar(); //ввод
символа(s[j] == '\n') //переход на следующую строку


}(s[0] == '\0') //конец набора текста= 1;(j ==
79) //переход на следующую строку


}= (char **)
realloc(text,(i+1)*sizeof(char*)); //выделение
памяти
для
строк[i]
= (char *) malloc((strlen(s)+1)*sizeof(char));


strcpy(text[i], s); //копирование введённой
строки в массив указателей


for(j = 0; j < strlen(s); j ++)
//обнуление
строки[j]
= 0;


*stroki = i; //количество
строкtext;


Вывод текстаvivod(char**
massiv, int stroki)


{(j = 0; j < strlen(*(massiv+i));
j ++)


printf("%c", *(*(massiv+i)+j));
//вывод посимвольно(*(*(massiv+i)+80) != '\0'||*(*(massiv+i)+1) == '\0')
//переход на следующую строку("\n");


Ввод слова для текста* vvod_slova1()


{* slovo1 = NULL; //указатель вводимое словоn =
0; //счётчик символовw = 0; //переменная для организации выхода из набора словаkey;
//вводимый символ


slovo1 =(char*)realloc(slovo1,
(n+1)*sizeof(char));
//выделение памяти под символ вводимой строки


key = getch(); //ввод
символа("%c",
key);


*(slovo1+n) = key; //копирование символа в
строку(*(slovo1+n) == ' ') //конец ввода слова


Ввод слова для замены* vvod_slova()


{* slovo = NULL; //указатель вводимое словоj =
0; //счётчик символовw = 0; //переменная для организации выхода из набора
словаkey; //вводимый символ("\nВведите слово\n");(j = 0; w != 1; j
++)


{=(char*)realloc(slovo, (j+1)*sizeof(char));
//выделение памяти под символ вводимой строки


key = getch(); //ввод
символа("%c",
key);


*(slovo+j) = key; //копирование символа в
строку(*(slovo+j) == ' ') //конец ввода слова


char** free1(char** massiv, int
stroki)


{i; //счётчик
по
строкам(i
= 0; i < stroki; i ++)(massiv[i]); //освобождение
памяти(massiv);=
NULL; //обнуление
массиваNULL;


Замена первых слов, в строках содержащих
заданное слово


char** zamena(char** text, char*
slovo1, char* slovo, int kolstrok)


{r; //переменная для организации циклаp;
//переменная для организации циклаs1; //длинна первого словаf; //флажок для
заменыn; //счётчик по символу заданного слова для текстаi; //переменная для
организации циклаj; //счётчик по символу первоначальной строкиy; //флажок для
заменыs; //длина копированного слова из первоначальной строкиe; //переменная
для организации циклаq; //счётчик по символу новой строки** newtxt = NULL;
//указатель на новый текст* t1 = NULL; //указатель на первоначальная строка* t2
= NULL; //указатель на новая строка(i = 0; i < kolstrok; i ++) //пока не
конец текста


{ p = 0;= 0;= 0;(j = 0; j < strlen(*(text+i));
j ++) //копирование строки в строку t1


{=(char*)realloc(t1, (j+1)*sizeof(char));
//выделение памяти посимвольно


*(t1+j) = *(*(text+i)+j); //посимвольное
копирование


}=(char*)realloc(t1, (j+1)*sizeof(char));
//выделение памяти под признак конца строки


*(t1+j) = '\0';= 0;(*(t1+j) != '\0')
//пока не конец строки


{(*(t1+j) == ' '||*(t1+j) == '.'||*(t1+j) ==
','||*(t1+j) == '!'||*(t1+j) == '?'||*(t1+j) == ':'||*(t1+j) == ';') //если
разделитель


{=(char*)realloc(t2, (q+1)*sizeof(char));
//выделение памяти для новой строки посимвольно


*(t2+q) = *(t1+j); //копирование
разделителей++;++;


while((*(t1+j) != '
')&&(*(t1+j) != '\0')&&(*(t1+j) != '.')&&(*(t1+j) !=
',')&&(*(t1+j) != '!')&&(*(t1+j)
!= '?')&&(*(t1+j)
!= ':')&&(*(t1+j) != ';'))


{=0;(e = 0; e < strlen(slovo); e ++)
//копирование введённого слова в новую строку


{=(char*)realloc(t2,
(q+1)*sizeof(char));


}= strlen(t1+i);
= r-s1;=p+s1;//смещение
индекса(e = 0; e < r; e ++) //копирование остальных слов строки


{=(char*)realloc(t2,
(q+1)*sizeof(char));


q = 0;(e = 0; e < strlen(t1+i); e ++)
//копирование строки в строку t2


{=(char*)realloc(t2,
(q+1)*sizeof(char));


}=(char*)realloc(t2,
(q+1)*sizeof(char)); //выделение
памяти
под
признак
конца
строки


*(t2+q) = '\0';= (char **)
realloc(newtxt,(i+1)*sizeof(char*)); //выделение
памяти
под
новый
текст[i]
= (char *) malloc((q+1)*sizeof(char));


strcpy(newtxt[i], t2); //копирование строки t2 в
новый текст(t1); //освобождение памяти строки t1= NULL; //обнуление строки
t1(t2); //освобождение памяти строки t2= NULL; //обнуление строки t2


Проверка программы выполняется с помощью тестов.
Тестирование - проверка определенной части программы, сравнение результатов,
выданных программой для специально выбранных исходных данных, с ожидаемыми
результатами. Тест 1. Проверка правильности работы всей программы


Вводим контрольные примеры из таблицы 1, и
получаем результаты, полностью совпадающие с ожидаемыми значениями из таблицы.


Тест 2. Проверка правильности работы функции
вывода текста


Пытаемся выполнить контрольный вывод исходного
текста, не введя исходный, и получаем предупреждение «Ошибка, введите первый
пункт меню». Тест 3. Проверка правильности работы функции вывода текста.


Пытаемся выполнить вывод нового текста, не
сформировав его, и получаем предупреждение «Новый текст не был сформирован. Так
как не был выбран 5-ый пункт меню».


Тест 4. Проверка правильности работы функции
формирования нового текста Пытаемся сформировать текст, не введя слово для
текста, и получаем предупреждение «Ошибка, не было введено слово для текста,
выберите 3-ий пункт меню».


Тест 5. Проверка правильности работы функции
формирования нового текста Пытаемся сформировать текст, не введя слово для
замены, и получаем предупреждение «Ошибка, не было введено слово, выберите 4-ий
пункт меню».


Тест 6. Проверка правильности работы функции
формирования нового текст Пытаемся сформировать текст, не введя исходный, и
получаем предупреждение «Ошибка, введите первый пункт меню».


Тест 7. Проверка правильности работы функции
ввода слова


Пытаемся ввести несколько слов для замены, но
после нажатия клавиши «пробел» ввод заканчивается







При выполнении программы были получены
результаты, совпадающие со значениями, приведенными в таблице 1. Ошибки не
обнаружены.


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


Для того, чтобы ввести текст, необходимо выбрать
1-ый пункт меню.


Текст может содержать произвольно количество
строк.


Для перехода на следующую строку используется
клавиша ENTER.


Для прекращения ввода текста необходимо нажать
два раза клавишу ENTER.


Если необходимы пустые строки в тексте, то
необходимо использовать один раз ENTER и один раз ПРОБЕЛ на каждой строке.


Для вывода введённого текста на экран
используется 2-ой пункт меню.


Для того, чтобы ввести слово для текста
необходимо выбрать 3-ий пункт меню.


Для того, чтобы ввести слово, на которое будут
заменяться первые слова строк, содержащие заданное слово, необходимо выбрать
4-ий пункт меню, ввод слова прекращается после нажатия клавиши ПРОБЕЛ. Ввести
можно только одно слово.


Для замены первых слов строк, содержащих
заданное слово, на введённое слово, необходимо использовать 5-ый пункт меню.


Для вывода нового текста необходимо использовать
6-ый пункт меню.


Для вызова справки необходимо использовать 7-ой
пункт меню.


Для выхода необходимо использовать 8-ой пункт
меню.









В.
Фаронов - Программирование и алгоритмизация 2003г.


.       Боб
Виллариал Программирование Access в примерах 2012г.


.       С.
Бобровский DELPHI 7 учебный
курс 2008г.


.       Проектирование
и реализация баз данных Microsoft SQL Server 2009. Учебный курс MCA


.       Михаил
Фленов- Библия DELPHI
2012г.






Похожие работы на - Программирование: работа с текстом Курсовая работа (т). Информационное обеспечение, программирование.
Курсовая работа: Уровень и качество жизни населения в России и за рубежом
Реферат: Искажение информации. Проблемы делового общения.
Реферат: Is Freedom Of Choice A Right Or
Автореферат Диссертации Литовченко Владимир Анатольевич
Реферат по теме Роль сообществ (community) в городских процессах «Сообщество»: проблемы определения дефиниции
Сущность и структура дошкольного образования
Титульный Лист Реферата Медицинского Колледжа
Эссе На Тему Распад Ссср
Реферат по теме Кинезиотерапия и рекомендуемые средства физической культуры при остеохондрозе поясничного отдела позвоночника
Курсовая Работа Моделирование Процессов Автомобильного Бизнеса
Контрольная работа по теме Организация эксперимента в химической промышленности
Курсовая работа по теме Экономическое регулирование предпринимательской деятельности в природопользовании
Разрешающая Способность Оптических Приборов Реферат
Урок Сочинение По Картине
Реферат Здоровый Образ Жизни И Здоровое Питание
Скачать Дипломную Работу На Тему Пожарная Сигнализация
Лирический Герой В Поэзии Есенина Сочинение
Популярные Языки Программирования Реферат
Лабораторная Работа 5
Основные Функции Управления Реферат
Похожие работы на - "Регион" в политической науке. Регионализм в современной России
Похожие работы на - Мамы разные нужны
Похожие работы на - Производство туристического продукта в современных условиях

Report Page