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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)

     АГЕНТСТВО МОРСКОГО И РЕЧНОГО ТРАНСПОРТА 

      САНКТ-ПЕТЕРБУРГСКИЙ  ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ВОДНЫХ КОММУНИКАЦИЙ

     Кафедра ВСиИ

                                                                 

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

     по  дисциплине «Технология программирования» 

     Тема: «Обработка текстов»

     Вариант № 17

     Работу  выполнила студентка:

     группы  ИС-31

     факультета  ИТ 

     Руководитель  работы:

     доц.каф. ВСиИ к.т.н 
 
 
 

     Санкт-Петербург

     2011 г.

     Содержание

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

     1.Введение

      "Язык  формирует наш способ мышления  и определяет, о чем мы можем  мыслить." Б.Л. Ворф 

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

2. Теоретическая часть

     Объектно-ориентированное  программирование.

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

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

     Класс — разновидность абстрактного типа данных в объектно-ориентированном программировании (ООП), характеризуемый способом своего построения. Другие абстрактные типы данных — метаклассы, интерфейсы, структуры, перечисления, — характеризуются какими-то своими, другими особенностями. Наряду с понятием «объекта» класс является ключевым понятием в ООП. Суть отличия классов от других абстрактных типов данных состоит в том, что при задании типа данных класс определяет одновременно и интерфейс, и реализацию для всех своих экземпляров, а вызов метода-конструктора обязателен.

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

     Мы  живем в мире объектов. Стол, автомобиль, ручка, классная доска – все это  объекты. Наряду с физическими существуют так же абстрактные объекты, типичными  представителями которых являются числа. Таким образом, объект – это любая физическая или абстрактная четко идентифицируемая сущность, это общефилософское понятие, которое изучалось философами на протяжении длительного времени, это сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса (например, после запуска результатов компиляции (и связывания) исходного кода на выполнение). Прототип — это объект-образец, по образу и подобию которого создаются другие объекты.

     Объекты характеризуются атрибутами. Помимо атрибутов объекты обладают некоторыми функциональными возможностями, которые  в объектно-ориентированном программировании (ООП) называют операциями или методами.

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

     Инкапсуляция  или сокрытие реализации является базовым  свойством ООП. Она позволяет  создавать пользовательские объекты, обладающие требуемыми методами и далее  оперировать ими, не вдаваясь в устройство этих объектов.

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

     Наследование. Классы могут быть связаны друг с другом различными отношениями. Одним из основных таких отношений является отношение класс – подкласс, известный в объектно-ориентированном программировании как наследование.

     Наследованием называется возможность порождать  один класс от другого с сохранением  всех свойств и методов класса-предка (прародителя, иногда его называют суперклассом) и добавляя, при необходимости, новые  свойства и методы. Набор классов, связанных отношением наследования, называют иерархией. Наследование призвано отобразить такое свойство реального  мира, как иерархичность.

     При наследовании все атрибуты и методы родительского класса наследуются  классом-потомком. Наследование может  быть многоуровневым, и тогда классы, находящиеся на нижних уровнях иерархии, унаследуют все свойства (атрибуты и методы) всех классов, прямыми или  косвенными потомками которых они  являются.

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

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

     Другим  основным видом отношений между  классами и объектами является агрегация. Она означает, что один класс содержит в себе в качестве агрегатов (составных  частей, подсистем) другие классы.

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

     Такой подход является основой объектно-ориентированного программирования. Это позволяет работать с объектами, не вдаваясь в особенности их реализации. В каждом конкретном случае применяется тот или иной подход: инкапсуляция, полиморфизм или наследование. Например, при необходимости обратиться к скрытым данным объекта, следует воспользоваться инкапсуляцией, создав, так называемую, функцию доступа или свойство.

     Композиция  является еще одним отношением, родственным  агрегации. Но если в агрегации агрегаты принадлежат классу или объекту, то в композиции существует более  слабая связь. Как и в случае агрегации, отношение композиции имеет кратность. Агрегация и композиция являются подклассами класса отношений ассоциации. Ассоциация обозначается в виде линии  без стрелок и ромбиков и может  принимать вид как агрегации, так и композиции. На ранних этапах объектно-ориентированного анализа и проектирования часто задаются отношения ассоциаций, а свою конкретизацию в виде агрегаций и композиций они получают на более поздних этапах.

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