Работа с текстом

Автор работы: Пользователь скрыл имя, 22 Марта 2012 в 19:09, курсовая работа

Краткое описание

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

Содержание работы

Цель работы ………………………………………………………………...……...……. 3
Задание ……………………………………………………………………….………….. 3
Уточнение задания ……………………………………………………………………… 3
Контрольные примеры .………………………...………………………………………. 3
Описание переменных ………………………………………………………………….. 4
Описание алгоритма ……………………………………………………………………. 4
Функции …………………………………………………………………………………. 6
Функция vvod …………………………………………………………………..…… 6
Функция vivod ……………………………………………………………………… 8
Функция free1 ………………………………………………………………………. 9
Функция menu ………………………………………………………..……..……… 9
Функция help …………………………………………………………………..…… 9
Функция zamena …………………….…………………………………………….. 10
Функция vvod_slova……………………………………………………………….. 13
Блок-схема главной функции ……………………………….………...……………… 14
Иерархическая структура программы ……………………………………………….. 17
Текст программы ……………………………………………………………………… 18
Инструкция пользователю …………………………………………………….……… 25
Набор тестов …………………………………………………………………...……… 25
Результат выполнения программы …………………………………………………… 26
Вывод ………………………………………………………………………………….. 26

Содержимое работы - 1 файл

Курсовая работа.docx

— 854.95 Кб (Скачать файл)

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

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

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

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

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

stroki

int*

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

massiv

char**

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

текста

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

i

int

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





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

 

 

 

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

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

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

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

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

 

 

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

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

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

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

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

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

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

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

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

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

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

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чётчик по символу новой строки





 

 

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

 

 

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

 


 

 

 

 

 

 

 

 

 

 

 

 

 


 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

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

 

 

 

 

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

 

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

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

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

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

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

slovo

char*

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

двумерного массива

j

int

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

w

int

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

key

char

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




 

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

 

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


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

 

Сообщение 1

Введите текст

Сообщение 2

Введите слово

Сообщение 3

+++++++++++++++++++++++Программа для  работы с текстом++++++++++++++++++++++

================Выполнил студент группы № 1307 Ляховец Вадим===============

Сообщение 4

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

Сообщение 5

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

Сообщение 6

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

Сообщение 7

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

Сообщение 8

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

Сообщение 9

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

Сообщение 10

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

Сообщение 11

Новый текст:

Сообщение 12

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

Сообщение 13

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

Сообщение 14

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

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

 

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


текста


 

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


слова


Функция изменения текста





 

 

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


помощи пользователю

Главная функция



 

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




 

 

 

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


текста


Функция освобождения


памяти


 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

#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_slova();                                         //ввод слова для замены

//……………………………………………………………………………………..

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

//……………………………………………………………………………………..

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

//……………………………………………………………………………………..

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

{    

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

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

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

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

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

      printf("+++++++++++++++++++++++++Программа для

                  работы с текстом+++++++++++++++++++++++++ \n"

                "==================Выполнил студент группы № 1307 Ляховец            

                  Вадим================== \n\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 (slovo != NULL)

                                  {

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

                                    puts(slovo);

                                    printf("\nЕсли вы хотите изменить данное слово, нажмите <1>, в

                                                   противном случае любую другую клавишу\n");

                                    scanf("%d", &h);

                                    fflush(stdin);

                                  }      

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

                                  {

                                    if(h == 1)

                                          {

Информация о работе Работа с текстом