МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Государственное образовательное учреждение
Высшего профессионального образования
"Кубанский государственный технологический университет"
(КубГТУ)
Армавирский механико-технологический институт
Кафедра внутризаводского электрооборудования и автоматики
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту
по дисциплине Объектно-ориентированное программирование
на тему "Проектирование и разработка абстрактных типов данных средствами языка программирования C++ Builder 6/0"
Выполнил студент группы
Руководитель (нормоконтроллер)
проекта доц. каф.
Защищен
Армавир 2010 г.
Содержание задания: Создать класс wind, характеризующий ветровой режим. Класс должен содержать два поля типа int для хранения значений направления (0˚<dd<360˚) и модуля скорости ветра (V км/час). Поля объектов инициализировать конструктором по умолчанию и конструктором с двумя параметрами. Класс должен содержать константные методы вывода значений характеристик ветра в формате (dd-V), а также каждой характеристики в отдельности и метод, вычисляющий значения составляющих скорости по известным значениям модуля и направления (u=Vcos (dd), v=Vsin (dd)). Написать программу, позволяющую выводить в виде таблицы массив переменных типа wind (каждая строка - объект класса wind). Интерфейс программы построить с использованием визуальных компонентов библиотеки VCL.
Объем работы 25-30 листов.
Рекомендуемая литература:
Архангельский А.Я. Программирование в C++ Builder 6. - М.: ЗАО "Издательство БИНОМ". 2003. - 1152 с.: ил.
Иванова П.С. Объектно-ориентированное программирование: Учебник для ВУЗов. - М.: Изд. МГТУ им Н.Э. Баумана. 2001. - 320с.: ил.
Шамис В.А. BorlandC++Builder 6/0 для профессионалов. - СПб.: Питер, 2003. - 798 с.: ил.
Срок выполнения проекта с
Дата выдачи задания
Руководитель проекта доцент кафедры ВЭА ____________
Задание принял студент ___________________
Реферат
Курсовая работа: 27 с., 6 рис., 2 прил., 1 прогр.
КЛАСС WIND, ОБЪЕКТ, C++BUILDER 6.
Цель работы: закрепить навыки проектирования и разработки классов; разработать абстрактный тип данных (класс), характеризующий ветровой режим, написать программу, демонстрирующую применение разработанного класса.
Задачи:
спроектировать классwind, построить UML- диаграмму проектируемого класса,
для инициализации полей объектов использовать конструктор по умолчанию и конструктор с параметрами, организовать вывод значений характеристик ветра в формате dd-V, а также преопределенную операцию слоения),
написать программу, позволяющую выводить в виде таблицы массив переменных типа wind (каждая строка - объект класса wind).,
В результате выполнения курсовой работы
закреплены навыки построения классов и использования механизмов инкапсуляции и полиморфизма,
написан программный модуль на языке программирования C++ в среде программирования C++Buiilder 5/0 демонстрирующая работу с классом wind, разработано руководство по применению программы.
Содержание
Введение
1. Теоретические аспекты объектно-ориентированного программирования
1.1 Основные понятия объектно-ориентированного программирования
1.2 Описание класса
1.3 Описание объектов
1.4 Конструкторы
2. Предложения по решению поставленной задачи
2.1 Предметная область программирования. Ветровой режим
2.2 Атрибуты и методы класса. UML-диаграмма
2.3 Описание использованных компонентов библиотеки VCL
2.4 Проектирование пользовательского интерфейса. Объектная декомпозиция
3. Описание ПО
3.1 Руководство пользователя
3.2 Результат тестирования программы
Заключение
Приложения
Сложность современного программного обеспечения требует от разработчиков владения наиболее перспективными технологиями его создания. Одно из таких технологий на настоящий момент является объектно-ориентированное программирование (ООП). Применение ООП позволяет разрабатывать программное обеспечение повышенной сложности за счет улучшения его технологичности (лучших механизмов разделения данных, увеличения повторяемости кодов, использование стандартизованных интерфейсов пользователя и т.д.). Вместо того, чтобы рассматривать программу как набор последовательно выполняемых инструкций, в ООП программа представляется в виде совокупности объектов, обладающих сходными свойствами и набором действий, которые можно с ними производить.
Целью работы является закрепление навыков проектирования и разработки классов; разработка абстрактного типа данных (класса), характеризующего ветровой режим; разработка программы, демонстрирующей применение разработанного класса.
В первой главе приводится теоретический материал.
Во второй главе рассмотрена предметная область программирования - характеристика ветрового режима и изложены этапы проектирования класса wind, описаны классы визуальных компонентов стандартной библиотеки, использованные в ходе проектирования интерфейса пользователя.
В третьей главе приводится руководство пользователя.
Четвертая глава содержит результаты тестирования и работы программы.
Приложение содержит программный код и рисунки, с изображением окон написанной программы.
Использование технологии ООП заключается в разработке отдельных, не связанных между собой классов и использовании их как необходимых программисту базовых типов данных, отсутствующих в языке. При этом общая структура программы остается традиционной. ("от функции к функции").
Объектно-ориентированное программирование (ООП) - это совокупность понятий (класс, объект, инкапсуляция, полиморфизм, наследование), приемов их использования при проектировании программ, а Си++ - инструмент этой технологии.
Строгое следование технологии ООП предполагает, что любая функция в программе представляет собой метод для объекта некоторого класса. Это не означает, что нужно вводить в программу какие попало классы ради того, чтобы написать необходимые для работы функции. Наоборот, класс должен формироваться в программе естественным образом, как только в ней возникает необходимость описания новых физических предметов или абстрактных понятий (объектов программирования). С другой стороны, каждый новый шаг в разработке алгоритма также должен представлять собой разработку нового класса на основе уже существующих. В конце концов вся программа в таком виде представляет собой объект некоторого класса с единственным методом run (выполнить). Именно этот переход (а не понятия класса и объекта, как таковые) создает психологический барьер перед программистом, осваивающим технологию ООП.
Программирование "от класса к классу" включает в себя ряд новых понятий. Прежде всего, это - инкапсуляция данных, то есть логическое связывание данных с конкретной операцией. Инкапсуляция данных означает, что данные являются не глобальными - доступными всей программе, а локальными - доступными только малой ее части. Инкапсуляция автоматически подразумевает защиту данных. Для этого в структуре class используется спецификатор раздела private, содержащий данные и методы, доступные только для самого класса. Если данные и методы содержатся в разделе public, они доступны извне класса. Раздел protected содержит данные и методы, доступные из класса и любого его производного класса. Наличие последних позволяет говорить об иерархии классов, где есть классы - родители - шаблоны для создания классов - потомков. Объекты, полученные из описания класса, называют экземплярами этого класса.
Вторым по значимости понятием является наследование. Новый, или производный класс может быть определен на основе уже имеющегося, или базового. При этом новый класс сохраняет все свойства старого: данные объекта базового класса включаются в данные объекта производного, а методы базового класса могут быть вызваны для объекта производного класса, причем они будут выполняться над данными включенного в него объекта базового класса. Иначе говоря, новый класс наследует как данные старого класса, так и методы их обработки. Если объект наследует свои свойства от одного родителя, то говорят об одиночном наследовании. Если же объект наследует атрибуты от нескольких базовых классов, то говорят о множественном наследовании. Простой пример наследования - определение структуры, отдельный член которой является ранее определенной структурой.
Третьим по значимости понятием является полиморфизм. Он основывается на возможности включения в данные объекта также и информации о методах их обработки (в виде указателей на функции). Принципиально важно, что такой объект становится "самодостаточным". Будучи доступным в некоторой точке программы, даже при отсутствии полной информации о его типе, он всегда может корректно вызвать свойственные ему методы. Полиморфной называется функция, независимо определенная в каждом из группы производных классов и имеющая в них общее имя. Полиморфная функция обладает тем свойством, что при отсутствии полной информации о том, объект какого из производных классов в данный момент обрабатывается, она тем не менее корректно вызывается в том виде, к каком она была определена для данного конкретного класса. Практический смысл полиморфизма заключается в том, что он позволяет посылать общее сообщение о сборе данных любому классу, причем и родительский класс, и классы-потомки ответят на сообщение соответствующим образом, поскольку производные классы содержат дополнительную информацию.
Класс является абстрактным типом данных, определяемым пользователем, и представляет собой модель реального объекта в виде данных и функций для работы с ними.