Исходные данные к курсовому проекту

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ

ПРОГРАММИРОВАНИЕ

Методические указания к выполнению курсового проекта

для студентов специальности

1 – 40 05 01 – 01 Информационные системы и технологии

(в проектировании и производстве)


ЦЕЛЬ КУРСОВОГО ПРОЕКТА

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

ЗАДАЧИ КУРСОВГО ПРОЕТКТА

Для достижения поставленной выше цели, студентам предлагается, пользуясь средствами объектно-ориентированного языка Visual С++, разработать программу в среде Microsoft Visual Studio в соответствии с выбранным вариантом задания. В результате выполнения данной работы студенты осваивают приемы практического использования объектно-ориентированного подхода в создании законченного программного продукта:

· реализующего выбранную (в соответствии с вариантом) тему курсового проекта,

· обладающего графическим интерфейсом пользователя (допускается разработка консольного приложения).

Исходные данные к курсовому проекту

В проекте необходимо выполнить следующие этапы разработки, которые должны быть отражены в пояснительной записке:

1) изучение необходимых теоретических сведений в соответствии с заданием;

2) выявление действующих субъектов системы (описание объектов и классов);

3) построение и описание диаграммы классов (Class Diagram);

4) создание программы, ее отладка и тестирование.

Содержание расчетно-пояснительной записки (перечень подлежащих разработке вопросов):

ВВЕДЕНИЕ

1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

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

1.2 Описание объектно-ориентированного подхода

1.3 Описание предметной области

2. ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1 Описание объектов системы, их свойств и методов

2.2 Результаты тестирования программного продукта

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЯ

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

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


ПРИЛОЖЕНИЕ А

(справочное)

1. Классы (язык C++)

Важнейшие концепции объектно-ориентированного программирования (инкапсуляция, наследование, полиморфизм) отражены в новом типе данных – class, который был разработан в С++,.

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

Объектно-ориентированное программирование характеризуется тремя основными свойствами:

1. Инкапсуляция – это комбинирование записей с процедурами и функциями, манипулирующими полями этих записей. Объединение в одном классе свойств и методов называется инкапсуляцией. С данным термином тесно связаны понятия сокрытия информации и хорошо разработанного интер­фейса.

Классы должны общаться к своим свойствам преимущественно через свои методы. Эти методы образуют интерфейс между классом и про­граммой. После выполнения описания класса для программиста важно, чтобы он мог использовать класс только через его интерфейс. О корректной обработке вызова функции и коррект­ном поведении класса заботится сам класс.

2. Наследование. Определение класса и его дальнейшее использование для построения иерархии порожденных классов с возможностью для каждого порожденного класса, относящегося к иерархии, доступа к коду и данным всех порождающих классов.

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

Объявление класса:

Тип_класса имя_класса [: базовые классы]

{ список_членов_класса

};

Базовые классы — список классов, разделяемых запятыми, элементы которых наследуются определяемым (про­изводным) классом.

Свойства класса

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

Свойства класса:

· могут быть описаны с атрибутом доступа public, protected или private;

· могут быть описаны как static; статические члены класса не копируются при создании объ­екта, а остаются в единственном экземпляре для всех объ­ектов класса; статические члены класса должны определяться где-либо в программе, но не в рамках описания класса, и к ним можно об­ращаться не только через объекты, но и через имена клас­сов:

имя_класса:: static_член_класса;

· могут быть описаны как const; члены класса, которые описываются как const, могут быть инициализированы только один раз и после этого больше не могут быть изменены (следовательно, они должны ини­циализироваться конструктором);

· описание класса заканчивается точкой с запятой.

Классы, описываемые в рамках определения какой-либо функ­ции, называются локальными.

Внутри класса разрешается определять типы, следовательно, один класс может быть описан внутри другого.

Методы класса

Методы класса:

· имеют доступ ко всем свойствам класса;

· представляют единственную возможность доступа к private- свойствам своего класса;

· могут быть описаны как public, protected или private;

· могут быть описаны как static;

· могут быть описаны как const; методы класса, описанные как const, не могут изменять значения свойств и могут возвращать указатель или ссылку только на свойства класса, описанные как const. Они являются единственными методами класса, кото­рые могут вызываться для свойства-константы;

· методы могут быть определены как внутри класса, так и за его рамками.

Атрибуты доступа

Атрибуты доступа public, private и protected регулируют воз­можность доступа к членам класса изнутри или извне класса (табл.1). Сле­довательно, они являются важным инструментом инкапсуляции. Прежде всего, с помощью этих атрибутов доступ к отдельным членам класса может быть ограничен.

Таблица 1— Атрибуты доступа к членам класса

Атрибут доступа Значение
public Член класса может использоваться любым методом, который является членом данного или производного класса. Доступ извне осуществляется через имя объекта и оператор расширения области видимости: имя_о6ъекта.имя_члена_класса ссылка_на_объект.имя_члена_класса указатель_на_объект->имя_члена_класса
private Член класса может использоваться только методами данного класса и функциями-«друзьями» того класса, в котором он описан
protected To же, что иprivate. Но дополнительно член класса с данным атрибутом доступа может использоваться методами и функциями-«друзьями» классов, производных от описанного класса. Если нет производных классов, тоprivate и protectedидентичны.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: