Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по курсовой АЯИП (2 курс,....doc
Скачиваний:
8
Добавлен:
20.04.2019
Размер:
402.43 Кб
Скачать

Министерство образования Российской Федерации

Пензенский государственный университет

Разработка объектно-ориентированных программ

на языке С++ с использованием Windows API и MFC

Методические указания

к выполнению лабораторных работ

Пенза 2009

УДК 681.3.06

П 78

Даны методические указания к выполнению 8 лабораторных работ и соответствующие лабораторные задания. Работы выполняются в рамках дисциплины “Технология программирования” и ориентированы на изучение объектно-ориентированного программирования на языке С++ и приобретение практических навыков работы в среде Visual C++ при разработке приложений с различной архитектурой. Рассмотрены особенности организации программы при использовании программного интерфейса приложений и библиотеки фундаментальных классов.

Методические указания подготовлены на кафедре «Вычислительная техника» Пензенского государственного университета и предназначены для студентов специальности 220100.

Составители: И.Н. Дорошенко, А.В. Никишин, А.В. Прошкин

Рецензент: В.В. Духовников, начальник отделения ФГУП «НПП “Рубин”».

1. Методология программирования

1.1. Методология объектно-ориентированного

программирования

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

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

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

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

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

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

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

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