Обработка текстов на С++

Автор работы: Пользователь скрыл имя, 11 Декабря 2011 в 15:44, курсовая работа

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

Ключевым понятием C++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают скрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. C++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В C++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем.

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

Введение 3
Теоретические сведения 4
Объектно-ориентированное программирование 4
Обобщенное программирование 8
Библиотека iostream 11
Класс string 14
Наследование 16
Руководство программиста 17
Руководство пользователя 18
Текст задачи 20
Листинг программ 21
Объектно-ориентированное программирование 21
Обобщенное программирование 30
Заключение 35
Используемая литература 36

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

Курсовая работа по С++(17вар).docx

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

                  fputc(ch,out);

      }

      fclose(f);

      return 0;

} 
 
 
 
 

Файл code.h

#pragma once

#include <stdio.h>//подключение  библиотеки stdio 

class FileWork//объявляем  класс

{

protected: 

      //имена  входных файлов

      char * text;

      char * key; 

public: 

      FileWork();

      void SetFileName();

      FILE * FOpenText();

      FILE * FOpenKey();

}; 

class Code : public FileWork

{

private: 

      //ключ

      char *s1;

      char *s2; 

      FILE * out; 

      //длина  ключа

      int key_size; 

      int error; 

public:

      Code();//конструктор по умолчанию

      int ReadCodeKey();//считывает файл с ключом кода

      int PrintSourseText();//печать измененного текста

      int Coding();//кодирование текста 

      int Exeqtion() {return error;}

      ~Code();//деструктор 

}; 

Обобщенное  программирование

     #include <iostream>//подключение библиотеки  ввода-вывода

     #include <stdio.h>//подключение stdio

     #include <cstring>//подключение string 

     using namespace std;

     #define size_code 50 //именованная константа, размер шифра 

     int main()

     {

           char * text = new char [51]; //файл с текстом

           char * code = new char [51]; //файл с шифром 

           cout<<"Text file name ";

           cin>>text;

           cout<<"Code file name ";

           cin>>code; 

           char * s1 = new char [size_code + 1];

           char * s2 = new char [size_code + 1]; 

           FILE * f = fopen(code,"r");//открытие файла code для чтение

           if (!f)

                 return 1; 

           char ch;

           int ind = 0;

           //чтение строки  с заменяемыми символами

           while (!feof(f))

           {

                 ch = fgetc(f);

                 if (ch == '\n')

                       break;

                 s1[ind++] = ch;

           }

           s1[ind] = '\0'; 

           //чтение строки  с символами на замену

           ind = 0; 

           while (!feof(f))

           {

                 ch = fgetc(f);

                 s2[ind++] = ch;

           }

           ind--;

           s2[ind] = '\0';

           fclose(f); 

           FILE * out = fopen("out.txt","w");//открытие файла для записи

           if (!out)

                 return 1; 

           //печать шифра в результат

           fputs("-->code key\n",out);

           fputs(s1,out); fputc('\n',out);

           fputs(s2,out); fputc('\n',out); 

           //открытие исходного  текста

           if (!(f = fopen(text,"r")))

                 return 1; 

           //эхо печать

           fputs("-->sourse text\n",out);

           while (!feof(f))

           {

                 ch = fgetc(f);

                 if (feof(f))

                       break;

                 fputc(ch,out);

           } 

           //шифруем

           fputs("\n-->code text\n",out);

           fseek(f,0,SEEK_SET);

           while(!feof(f))

           {

                 ch = fgetc(f);

                 if (feof(f))

                       break; 

                 bool flag = false;

                 for (int i = 0; s1[i] != '\0' && i<size_code; i++)

                       if (s1[i] == ch)

                       {

                             flag = true;

                             break;

                       }

                 if (flag && i<strlen(s2))

                       fputc(s2[i],out);

                 else

                       fputc(ch,out);

           }

           fclose(f);

           fclose(out);

           return 0;

     } 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

7.Заключение

     В процессе выполнения курсовой работы были спроектированы и отлажены две  программы для решения одной  и той же задачи. Были использованы технологии объектно-ориентированного программирования и обобщенного  программирования.

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

 

8. Используемая литература 

    1. Технология  программирования. С++. – Спб.: БХВ-Петербург, 2005. – 672 с.:ил. Давыдов В.Г.
    2. С++: базовый курс, 3-е издание. – М. : Издательский дом «Вильямс», 2010. – 624 с. – Герберт Шилдт.
    3. Самоучитель С++, 3-е издание. – Спб. : БХВ - Петербург, 2009. – 688 с. – Герберт Шилдт.
    4. http://ru.wikipedia.org
    5. http://mar-amitan.narod.ru/APREDIS.HTM

Информация о работе Обработка текстов на С++