Основные идеи объектно-ориентированного программирования

Автор работы: Пользователь скрыл имя, 14 Мая 2015 в 15:16, курсовая работа

Описание работы

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

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

ВВЕДЕНИЕ..................................................................................................................4
1 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ...................6
1.1 Подходы к проектированию...........................................................................6
1.2 Основные идеи объектно-ориентированного программирования..................8
Вывод..........................................................................................................................11
2 ОБЗОР СРЕДСТВ РАЗРАБОТКИ......................................................................12
2.1 Определение C++.........................................................................................12
2.2 Сравнение языко С++ и Си…………...........................................................13
2.1 Обзор сред для программирования на С++.......................................................15
Вывод..........................................................................................................................18
3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ КЛАССА FILESTREAM............................19
2.1 Постановка задачи...............................................................................................19
2.2 Реализация класса FileStream...........................................................................19
Вывод..........................................................................................................................21
ЗАКЛЮЧЕНИЕ..........................................................................................................22
ГЛОССАРИЙ.............................................................................................................23
СПИСОК АББРЕВИАТУР......................................................................................24
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ....................................................

Файлы: 1 файл

Poyasnitelnaya.doc

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

C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений . Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Например, на платформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие. C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

Синтаксис C++ унаследован от языка C. Одним из принципов разработки было сохранение совместимости с C. Тем не менее, C++ не является в строгом смысле надмножеством C; множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико, но не включает все возможные программы на C.

 

2.2 Сравнение языков С++ и Си

 

     Выбор С в качестве базового  языка для С++ объясняется следующими  его достоинствами:

(1) универсальность, краткость  и относительно низкий уровень;

(2) адекватность большинству  задач системного программирования;

(3) он идет в любой системе и на любой машине;

(4) полностью подходит  для программной среды UNIX.   

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

 С++ стал использоваться  шире, но по мере роста его  возможностей, выходящих за пределы С, вновь и вновь возникала проблема совместимости. Ясно, что отказавшись от части наследства С, можно избежать некоторых проблем . Это не было сделано по следующим причинам:    

(1) существуют миллионы  строк программ на С, которые  можно улучшить с помощью С++, но при условии, что полной переписи их на язык С++ не потребуется;   

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

(3) существуют сотни тысяч  программистов, знающих С; им достаточно  овладеть только новыми средствами  С++ и не надо изучать основ  языка;   

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

 Как язык, так и  стандартные библиотеки С++ проектировались  в расчете на переносимость. Имеющиеся  реализации языка будут работать  в большинстве систем, поддерживающих  С. В программах на С++ можно  использовать библиотеки С. Большинство служебных программ, рассчитанных на С, можно использовать и в С++.   

 Язык С сам развивался  в последние несколько лет, что  отчасти было связано с разработкой  С++ [14]. Стандарт ANSI для С [27] содержит, например, синтаксис описания функций, позаимствованный из языка "С с классами". Происходит взаимное заимствование, например, тип указателя void* был придуман для ANSI С, а впервые реализован в С++. Как было обещано в первом издании этой книги, описание С++ было доработано, чтобы исключить неоправданные расхождения.  Теперь С++ более совместим с языком С, чем это было вначале ($$R.18).  В идеале С++ должен максимально приближаться к ANSI C, но не более [9].  Стопроцентной совместимости никогда не было и не будет, поскольку это нарушит надежность типов и согласованность использования встроенных и пользовательских типов, а эти свойства всегда были одними из главных для С++.   

 Для изучения С++ не  обязательно знать С. Программирование  на С способствует усвоению  приемов и даже трюков, которые при программировании на С++ становятся просто ненужными. Например, явное преобразование типа (приведение) , в С++ нужно гораздо реже, чем в С (см.  "Замечания для программистов на С" ниже). Тем не менее, хорошие программы на языке С по сути являются программами на С++. Например, все программы из классического описания С [8] являются программами на С++. В процессе изучения С++ будет полезен опыт работы с любым языком со статическими типами.

 

2.1 Обзор сред для программирования на С++

Microsoft Visual C++ (MSVC) - интегрированная среда разработки приложений на языке C++, разработанная фирмой Microsoft и поставляемая либо как часть комплекта Microsoft Visual Studio, либо отдельно в виде бесплатного функционально ограниченного комплекта Visual C++ Express Edition. Сменила интегрированную среду разработки Microsoft QuickC.

Dev-C++ - свободная интегрированная среда разработки приложений для языков программирования C/C++. В дистрибутив входит компилятор MinGW. Сам Dev-C++ написан на Delphi. Распространяется согласно GPL.

Проект поддерживается SourceForge. Основатель проекта Колин Лаплас, компания Bloodshed Software. Одно время был доступен Linux-порт, однако на настоящее время актуализирована только Windows-версия. На настоящий момент оригинальный Dev-C++ не разрабатывается[1].

Продолжением разработки активно занимается Orwell.

wxDev-C++ является развитием проекта Dev-C++, но также содержит дизайнер форм для библиотеки разработки wxWidgets. WxDev-C++ включает все свойства Dev-C++, а также новейшую версию wxWidgets необходимую дизайнеру форм для среды быстрой разработки приложений.

NetBeans IDE - свободная интегрированная среда разработки приложений (IDE) на языках программирования Java, Python, PHP, JavaScript, C, C++, Ада[1] и ряда других.

Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимым сообществом разработчиков-энтузиастов (NetBeans Community) и компанией NetBeans Org.

По качеству и возможностям последние версии NetBeans IDE не уступают лучшим коммерческим (платным) интегрированным средам разработки для языка Java, таким, как IntelliJ IDEA, поддерживая рефакторинг, профилирование, выделение синтаксических конструкций цветом, автодополнение набираемых конструкций на лету, множество предопределённых шаблонов кода[1].

Для разработки программ в среде NetBeans и для успешной инсталляции и работы самой среды NetBeans должен быть предварительно установлен Sun JDK или J2EE SDK подходящей версии. Среда разработки NetBeans по умолчанию поддерживала разработку для платформ J2SE и J2EE. Начиная с версии 6.0 NetBeans поддерживает разработку для мобильных платформ J2ME, C++ (только g++) и PHP без установки дополнительных компонентов.

MinGW (англ. Minimalist GNU for Windows), ранее mingw32, - компилятор, родной (native) программный порт GNU Compiler Collection (GCC) под Microsoft Windows, вместе с набором свободно распространяемых библиотек импорта и заголовочных файлов для Windows API. MinGW позволяет разработчикам создавать родные (native) приложения Microsoft Windows[2]. В MinGW включены расширения для библиотеки времени выполнения Microsoft Visual C++ для поддержки функциональности C99.

Code::Blocks - свободная кроссплатформенная среда разработки. Code::Blocks написана на С++ и использует библиотеку wxWidgets. Имея открытую архитектуру, может масштабироваться за счёт подключаемых модулей. Поддерживает языки программирования С, С++, D (с ограничениями), Fortran.

Code::Blocks разрабатывается для Windows, Linux и Mac OS X. Среду можно собрать из исходников практически под любую Unix-подобную систему, например FreeBSD.

KDevelop - свободная интегрированная среда разработки для UNIX-подобных операционных систем. Разработка началась в 1998 году. KDevelop распространяется согласно условиям GNU General Public License.

KDevelop не включает в свой состав  компилятор; вместо этого он использует GNU Compiler Collection (или любой другой  компилятор) для создания машинного  кода[1].

KDevelop поддерживает большое количество языков программирования, включая C, C++, Perl, Python, PHP, Java, Ruby, Ada, SQL, Bash, Фортран, Паскаль. Поддерживаются такие системы сборки проектов, как GNU (automake), CMake, qmake и make для собственных средств сборки проектов (KDevelop оставляет пользовательские файлы make нетронутыми, если необходимо использовать их)[1].

Eclipse - свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation.

Наиболее известные приложения на основе Eclipse Platform - различные «Eclipse IDE» для разработки ПО на множестве языков (например, наиболее популярный «Java IDE», поддерживавшийся изначально, не полагается на какие-либо закрытые расширения, использует стандартный открытый API для доступа к Eclipse Platform

Geany - свободная среда разработки программного обеспечения, написанная с использованием библиотеки GTK2. Доступна для следующих операционных систем: BSD, Linux, Mac OS X, Solaris и Windows. Geany распространяется согласно GNU General Public License.

Geany не включает в свой состав  компилятор. Для создания исполняемого  кода используется GNU Compiler Collection или, при необходимости, любой другой  компилятор[1].

 

Вывод

Для разработки класс FileStream, был изучен язык программирования С++. Был проведен сравнение языка С++ и Си.

Был произведен обзор сред для программирования на С++ и в итоге выбран для разработки Microsoft Visual C++.

 

 

 

 

 

 

 

 

 

 

 

 

3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ КЛАССА FileStream

3.1 Постановка задачи

Разработать класс  FileStream,  инкапсулирующий работу с файлами через стандартную библиотеку Си ++. Реализовать методы открытия и закрытия файла (отдельный метод Open  и метод Create и конструктор с именем открываемого файла, закрывать - в деструкторе и отдельным методом  Close)  Реализовать методы  Write  и  Read  для  int, double  и  char*.  Обеспечить два режима записи - двоичный и текстовый[8].

2.2 Реализация класса FileStream

Класс FileStream предоставляет реализацию абстрактного члена Stream в манере, подходящей для потоковой работы с файлами. Это элементарный поток, и он может записывать или читать только один байт или массив байтов. Однако взаимодействовать с членами типа FileStream придется нечасто. Вместо этого, скорее всего, будут использоваться оболочки потоков, которые облегчают работу с текстовыми данными или типами .NET. Тем не менее, в целях иллюстрации полезно поэкспериментировать с возможностями синхронного чтения/записи типа FileStream.

Экземпляр FileStream применяется для чтения и записи данных в любой файл. Для создания экземпляра FileStream потребуется указать следующие фрагменты информации:

Файл, к которому должен получаться доступ.

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

Вид доступа к файлу. Например, нужен ли доступ для выполнения чтения или записи либо того и другого вместе[8].

Общий доступ, который показывает, должен ли доступ к файлу быть эксклюзивным или же должна быть возможность доступа со стороны других потоков одновременно. Если да, то разрешено ли другим потокам чтение, запись либо то и другое[8].

Первый из этих фрагментов информации обычно представлен в виде строки, содержащей полный путь к нужному файлу. Однако помимо строки существуют и дополнительные конструкторы, которые вместо строки принимают файловый дескриптор в стиле Windows API. Остальные три фрагмента информации представляются с помощью трех .NET-перечислений FileMode, FileAccess и FileShare.

Обратите внимание, что в случае FileMode, если запрашивается режим, не соответствующий существующему состоянию файла, может быть сгенерировано исключение. Значения Append, Open и Truncate будут приводить к генерации исключения, если файл не существует, а значение CreateNew - наоборот, если он уже существует. Значения Create и OpenOrCreate подходят в обоих сценариях, но Create приводит к удалению любого существующего файла и замене его новым, изначально пустым.

Поскольку считываться будут двоичные файлы, необходимо чтобы приложение было способно отображать непечатаемые символы. Для этого каждый байт файла будет отображаться отдельно, с выводом по 16 байтов в каждой строке многострочного текстового поля. В случае если байт представляет собой печатаемый ASCII-символ, будет отображаться этот символ, а если нет, то содержащее в байте значение будет отображаться в шестнадцатеричном формате. И в том и в другом случае отображаемый текст должен дополняться пробелами так, чтобы отображаемый байт занимал четыре столбца[9].

Листинг программы будет представлен в приложении 1. 
Вывод

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

Была произведена реализация класса FileStream, с помощью языка С++ и средства для разработки Microsoft Visual C++. 

 

ЗАКЛЮЧЕНИЕ

Объектно-ориентированное программирование (ООП) – парадигма программирования, в которой основными концепциями являются понятия объектов и классов.

Объектно-ориентированное программирование является в настоящее время основой всей индустрии прикладного программирования благодаря выигрышу в конкурентной борьбе с альтернативными технологиями программирования.

Применение объектно-ориентированного подхода к программированию и широкие возможности языка С++ является мощным и гибким средством при создании программ. Поэтому для разработки класс FileStream, был изучен язык программирования С++. Был проведены сравнение  языков С++ и Си. Также произведен обзор сред для программирования на С++ и в итоге выбран для разработки Microsoft Visual C++.

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

Была произведена реализация класса FileStream, с помощью языка С++ и средства для разработки Microsoft Visual C++.

Информация о работе Основные идеи объектно-ориентированного программирования