Программирование: работа с текстом

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 17.07.2014
Размер файла 1,9 M

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

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

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

КУРСОВая РАБОТА

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

Содержание

Введение

1. Контрольные примеры

2. Описание переменных

3. Описание алгоритма

4. Функции

4.1 Функция vvod

4.2 Функция vivod

4.3 Функция free1

4.4 Функция menu

4.5 Функция help

4.6 Функция zamena

4.7 Функция vvod_slova

4.8 Функция vvod_slova1

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

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

7. Набор тестов

Заключение

Литература

Введение

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

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

Индивидуальное задание:

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

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

1. Контрольные примеры

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

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

Введённый текст

Слово для проверки текста

Слово для замены

Вывод изменённого текста

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

поэт

Живой

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

За окном идёт снег.

Бежать

дом

За окном идёт снег.

Трус не ирает в хоккей!

Не

Трус

Трус не ирает в хоккей!

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

восемь

семь

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

Кто ты?

Где ты?

Как ты?

ты

Что

Что ты?

Что ты?

Что ты?

2. Описание переменных

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

Таблица 2. Описание переменных

Имя переменной

Тип переменной

Назначение переменной

text

char**

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

newtxt

char**

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

slovo

char*

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

slovo1

char*

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

kolstrok

int

Количество строк в тексте

f

int

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

z

int

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

h

int

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

g

int

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

3. Описание алгоритма

Шаг 1. Вывод меню на экран.

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

Шаг 3. Если пользователь ввёл:

«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.

4. Функции

4.1 Функция ввода vvod

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

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

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

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

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

Формальные переменные

Имя переменной

Тип переменной

Назначение переменной

stroki

int*

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

Локальные переменные

text

char**

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

s

char

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

i

int

Счётчик по строкам

j

int

Счётчик по символам

w

int

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

v

int

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

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

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

4.2 Функция вывода vivod

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

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

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

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

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

Формальные переменные

Имя переменной

Тип переменной

Назначение переменной

stroki

int*

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

massiv

char**

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

текста

Локальные переменные

i

int

Счётчик по строкам

j

int

Счётчик по символу

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

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

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

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

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

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

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

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

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

Формальные переменные

Имя переменной

Тип переменной

Назначение переменной

stroki

int*

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

massiv

char**

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

текста

Локальные переменные

i

int

Счётчик строк

4.4 Функция вывода меню menu

Прототип: void menu().

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

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

Пример вызова: menu().

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

Прототип: void help().

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

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

Пример вызова: help().

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

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

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

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

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

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

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

Формальные переменные

Имя переменной

Тип переменной

Назначение переменной

text

char**

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

slovo

char*

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

kolstrok

int

Количество строк в тексте

Локальные переменные

newtxt

char**

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

t1

char*

Первоначальная строка

t2

char*

Новая строка

i

int

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

j

int

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

y

int

Флажок для замены

s

int

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

e

int

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

q

int

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

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

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

4.7 Функция ввода vvod_slova

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

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

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

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

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

Локальные переменные

slovo

char*

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

j

int

Счётчик по символам

w

int

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

key

char

Вводимый символ

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

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

4.8 Функция ввода vvod_slova1

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

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

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

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

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

Локальные переменные

Slovo1

char*

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

n

int

Счётчик по символам

w

int

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

key

char

Вводимый символ

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

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

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

Сообщение 1 Введите текст

Сообщение 2 Введите слово

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

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

Сообщение 5

Контрольный вывод текста

Сообщение 6

Введённое вами слово -

Сообщение 7

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

Сообщение 8

Замена слов проведена успешно

Сообщение 9

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

Сообщение 10

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

Сообщение 11

Новый текст:

Сообщение 12

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

Сообщение 13

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

Сообщение 14

Ошибка, введите номер операции:

Сообщение 15

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

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

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

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

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

#include <stdio.h>

#include <conio.h>

#include <cstdlib>

#include <stdlib.h>

#include <string.h>

//Курсовая работа. Выполнил студент группы №1307 Орлов Виктор

void menu(); //функция меню

void help(); //помошь пользователю

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

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

char* vvod_slova1(); //ввод слова для текста

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

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

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

int main() //главная функция

{

int kolstrok = 0; //количество строк

int f, z = 0, h, g = 0; //переменные для организации интерфейса

char **text = NULL; //указатель на введённый текст

char **newtxt = NULL; //указатель на сформированный текст

char *slovo1 = NULL; //указатель на введённое слово для текста

char *slovo = NULL; //указатель на введённое слово

printf("Программа для работы с текстом \n");

do

{

menu(); //вывод меню

scanf("%d", &f); //выбор пользователем пункта меню

fflush(stdin); //очистка буфера

system("cls");

switch(f)

{

case 1:

if (text!= NULL)

free1(text, kolstrok);

z = 1;

g = 0;

text = vvod(&kolstrok);

break;

case 2:

if (z == 0)

printf("\nОшибка, введите первый пункт меню\n");

else

{

printf("\nКонтрольный вывод текста\n");

vivod(text, kolstrok); //вывод текста

}

break;

case 3:

g = 0;

if (slovo1 != NULL)

{

printf("Введённое вами слово - ");

puts(slovo1);

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

scanf("%d", &h);

fflush(stdin);

}

if ((slovo1 == NULL)||(h == 1))

{

if(h == 1)

{

free (slovo1);

slovo1 = NULL;

}

slovo1 = vvod_slova1();

}

break;

case 4:

g = 0;

if (slovo != NULL)

{

printf("Введённое вами слово - ");

puts(slovo);

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

scanf("%d", &h);

fflush(stdin);

}

if ((slovo == NULL)||(h == 1))

{

if(h == 1)

{

free (slovo);

slovo = NULL;

}

slovo = vvod_slova();

}

break;

case 5:

if (z == 0)

printf("\nОшибка, введите первый пункт меню\n");

else

{

if (newtxt != NULL)

free1(newtxt, kolstrok);

g = 1;

if ((slovo != NULL)&&(slovo1 != NULL))

{

newtxt = zamena(text, slovo1, slovo, kolstrok);

printf("\nЗамена слов проведена успешно\n");

}

else

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

}

break;

case 6:

if (z == 0)

printf("\nОшибка, введите первый пункт меню\n");

else

{

if(g == 1)

{

printf("\n Новый текст: \n\n\n");

vivod(newtxt, kolstrok);

}

else

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

}

break;

case 7:

help();

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

getch();

break;

case 8:

if (text!= NULL)

free1(text, kolstrok);

if (newtxt != NULL)

free1(newtxt, kolstrok);

if (slovo1 != NULL)

free (slovo1);

if (slovo != NULL)

free (slovo);

printf("\nДля выхода из программы нажмите любую клавишу\n");

getch();

break;

default:

printf("\nОшибка, введите номер операции: \n");

}

}

while(f != 8);

}

//меню

void menu()

{

printf("\nМЕНЮ\n\n"

"1.Ввод текста;\n"

"2.Контрольный вывод текста;\n"

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

"4.Ввод слова для замены;\n"

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

"6.Вывод изменённого текста;\n"

"7.Помощь пользователю;\n"

"8.Выход из программы;\n"

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

}

//.помощь

void help()

printf("\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 Ляховец Вадим");

}

Ввод текста

char** vvod(int* stroki)

{

char** text = NULL; //Массив указатель(текст)

int i, j; //счётчик по строкам и счётчик по символам

int w, v = 0; //переменные для организации перехода на следующую строку и выхода из набора текста

char s[81]; //вводимая строка

printf("\nВведите текст\n");

for(i = 0; v != 1; i ++)

{

w = 0;

for(j = 0; w != 1; j ++)

{

s[j] = getchar(); //ввод символа

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

{

w = 1;

s[j] = '\0';

}

if(s[0] == '\0') //конец набора текста

v = 1;

if(j == 79) //переход на следующую строку

{

w = 1;

s[80] = '\0';

}

}

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

text[i] = (char *) malloc((strlen(s)+1)*sizeof(char));

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

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

s[j] = 0;

}

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

return text;

}

Вывод текста

void vivod(char** massiv, int stroki)

{

int i, j;

for(i = 0; i < stroki; i ++)

{

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

printf("%c", *(*(massiv+i)+j)); //вывод посимвольно

if(*(*(massiv+i)+80) != '\0'||*(*(massiv+i)+1) == '\0') //переход на следующую строку

printf("\n");

}

}

Ввод слова для текста

char* vvod_slova1()

{

char* slovo1 = NULL; //указатель вводимое слово

int n = 0; //счётчик символов

int w = 0; //переменная для организации выхода из набора слова

char key; //вводимый символ

printf("\nВведите слово\n");

for(n = 0; w != 1; n ++)

{

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

key = getch(); //ввод символа

printf("%c", key);

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

if(*(slovo1+n) == ' ') //конец ввода слова

{

w = 1;

*(slovo1+n) = '\0';

}

}

return slovo1;

}

Ввод слова для замены

char* vvod_slova()

{

char* slovo = NULL; //указатель вводимое слово

int j = 0; //счётчик символов

int w = 0; //переменная для организации выхода из набора слова

char key; //вводимый символ

printf("\nВведите слово\n");

for(j = 0; w != 1; j ++)

{

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

key = getch(); //ввод символа

printf("%c", key);

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

if(*(slovo+j) == ' ') //конец ввода слова

{

w = 1;

*(slovo+j) = '\0';

}

}

return slovo;

}

Освобождение динамической памяти

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

{

int i; //счётчик по строкам

for (i = 0; i < stroki; i ++)

free (massiv[i]); //освобождение памяти

free (massiv);

massiv = NULL; //обнуление массива

return NULL;

}

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

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

{

int r; //переменная для организации цикла

int p; //переменная для организации цикла

int s1; //длинна первого слова

int f; //флажок для замены

int n; //счётчик по символу заданного слова для текста

int i; //переменная для организации цикла

int j; //счётчик по символу первоначальной строки

int y; //флажок для замены

int s; //длина копированного слова из первоначальной строки

int e; //переменная для организации цикла

int q; //счётчик по символу новой строки

char** newtxt = NULL; //указатель на новый текст

char* t1 = NULL; //указатель на первоначальная строка

char* t2 = NULL; //указатель на новая строка

for(i = 0; i < kolstrok; i ++) //пока не конец текста

{ p = 0;

q = 0;

r = 0;

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

{

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

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

}

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

*(t1+j) = '\0';

j = 0;

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

{

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

{

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

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

j ++;

q ++;

}

else

{

n = 0;

s = 0;

y = 0; //обнуление флажка

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

//пока не конец слова

{

if (*(t1+j) == *(slovo1+n))

{

y++;

}

else

{

y = 0;

}

n ++;

j ++;

s ++;

}

if (s == j)

{

s1=s;

}

if(s == y)

{

f=1;

}

if (f == 1)

{

q=0;

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

{

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

*(t2+q) = *(slovo+e);

q ++;

}

r = strlen(t1+i);

r = r-s1;

p=p+s1;//смещение индекса

for(e = 0; e < r; e ++) //копирование остальных слов строки

{

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

*(t2+q) = *(t1+p);

q ++;

p ++;

}

*(t1+j)= '\0';

}

else

{

if (*(t1+j) == '\0')

{

m = strlen(t1+i);

m = m+1;

q = 0;

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

{

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

*(t2+q) = *(t1+q);

q ++;

}

}

}

f = 0;

}

}

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

*(t2+q) = '\0';

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

newtxt[i] = (char *) malloc((q+1)*sizeof(char));

strcpy(newtxt[i], t2); //копирование строки t2 в новый текст

free(t1); //освобождение памяти строки t1

t1 = NULL; //обнуление строки t1

free(t2); //освобождение памяти строки t2

t2 = NULL; //обнуление строки t2

}

return newtxt;

}

символьный строка текст память

7. Набор тестов

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Литература

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

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

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

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

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

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


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

  • Работа с фигурным текстом. Форматирование и редактирование текста. Редактирование узлов фигурного текста. Привязка текста к фигурам. Выравнивание текста на фигуре. Перспектива, оболочки и выдавливание. Работа с простым текстом.

    реферат [12,7 K], добавлен 21.12.2003

  • Работа в окне документа. Ввод текста. Вставка и удаление текста. Отмена результатов выполненных действий. Перемещение и копирование текста методом "перетащить-оставить". Форматирование текста. Сохранение документа. Шаг вперед: смена регистра.

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

  • Работа с текстом в программе Inkscape. Предложение с иероглифами, редактирование и применение атрибутов текста, выделение символов в строке. Редактирование текста и проверка орфографии, подбор цвета и шрифта в тексте, логотипы и их значение в программе.

    отчет по практике [2,8 M], добавлен 29.05.2012

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

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

  • Разработка ввода с клавиатуры и вывода на экран монитора данных с помощью стандартных функций printf и scanf. Ввод количества материальных точек. Работа с линейным списком. Хранение содержимого списка в блоке ячеек памяти с последовательными адресами.

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

  • Схема работы и требования к программам шифрования и дешифрования. Алгоритмы и тексты программы шифрования и программы дешифрования, выполненные на языке программирования C/C++. Содержание файла с исходным текстом, с шифротекстом, с дешифрованным текстом.

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

  • Работа с текстом в Microsoft Word 2007. Набор и редактирование текста. Поиск и замена. Проверка орфографии, использование тезауруса. Форматирование символов и абзацев. Вставка элемента списка автотекста. Microsoft Excel: сохранение и печать документа.

    курсовая работа [2,2 M], добавлен 22.06.2013

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

    лабораторная работа [858,0 K], добавлен 23.11.2014

  • Изучение основных приемов работы с текстовым и графическим редакторами. Операции, которые позволяет выполнять графический редактор Paint. Создание и сохранение текстовых документов в Блокноте. Ввод фрагмента текста с клавиатуры и его редактирование.

    контрольная работа [279,3 K], добавлен 12.03.2011

  • Понятие и цель применения текстовых данных. Принцип кодирования азбуки Морзе. Основные методы языка высокого уровня C#. Алгоритм работы, листинг, тестирование программы для перевода текста в последовательность кодов азбуки Морзе. Руководство пользователя.

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

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