Мегаобучалка Главная | О нас | Обратная связь


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



2016-01-05 1029 Обсуждений (0)
Описание объектно-ориентированного подхода 0.00 из 5.00 0 оценок




МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

ФакультетИнженерный

КафедраИнформационных систем и технологий

Дата регистрации работы в деканате _________

Дата регистрации работы на кафедре _________

Отметка о допуске к защите _________

Оценка за защиту _________

КУРСОВОЙ ПРОЕКТ

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

Тема: «Разработка программ на языке программирования Visual C++ c применением объектно-ориентированного подхода»

Исполнитель:

Инженерный, 2 курс, ИСТ-21

Сакута Денис Иванович

Преподаватель:

Рагозик Андрей Сергеевич

Барановичи 2014

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

 

РЕЦЕНЗИЯ

на курсовой проект

(регистрационный №_____)

 

Студента Сакуты Дениса Иванович__

Факультет ИНЖЕНЕРНЫЙ__

Курс 2_

Дисциплина Основы алгоритмизации и программирования___

Рецензент Рогозик Андрей Сергеевич _

 

Дата получения к/р для рецензирования _____

Дата возвращения к/р после рецензирования _

 

Оценка______________ Подпись преподавателя-рецензента______________

Текст рецензии:

______

__

__

____

__


СОДЕРЖАНИЕ

ВВЕДЕНИЕ. 6

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

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

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

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

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

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

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

ЗАКЛЮЧЕНИЕ. 21

СПИОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ.. 22

ПРИЛОЖЕНИЕ. 23


ВВЕДЕНИЕ

В последние десятилетия резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь цифровых технологий.

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

Поскольку среда разработки Visual C++ является одной из самых удобных, то она прекрасно подходит для создания приложений для операционной системы Windows.

Основой целью курсовой работы является разработка программы для работы с матрицами реализованной стандартными средствами Visual C++.

Объект исследования - применение среды программирования Visual C++ с целью изучения возможности объектно-ориентированного программирования.

Предмет исследования - среда Visual Studio C++ 2012.

Концепция объектно-ориентированного программирования подразумевает, что основой управления процессом реализации программы является передача сообщений объектам. Поэтому объекты должны определяться совместно с сообщениями, на которые они должны реагировать при выполнении программы. В этом состоит главное отличие ООП от процедурного программирования, где отдельно определённые структуры данных передаются в процедуры (функции) в качестве параметров. Таким образом, объектно-ориентированная программа состоит из объектов – отдельных фрагментов кода, обрабатывающего данные, которые взаимодействуют друг с другом через определённые интерфейсы. Разработка объектно-ориентированных программ состоит из следующих последовательных работ:· определение основных объектов, необходимых для решения данной задачи;· определение закрытых данных (данных состояния) для выбранных объектов;· определение второстепенных объектов и их закрытых данных;· определение иерархической системы классов, представляющих выбранные объекты;· определение ключевых сообщений, которые должны обрабатывать объекты каждого класса;· разработка последовательности выражений, которые позволяют решить поставленную задачу;· разработка методов, обрабатывающих каждое сообщение;· очистка проекта, то есть устранение всех вспомогательных промежуточных материалов, использовавшихся при проектировании;· кодирование, отладка, компоновка и тестирование. Объектно-ориентированное программирование позволяет программисту моделировать объекты определённой предметной области путем программирования их содержания и поведения в пределах класса. Конструкция «класс» обеспечивает механизм инкапсуляции для реализации абстрактных типов данных. Инкапсуляция как бы скрывает и подробности внутренней реализации типов, и внешние операции и функции, допустимые для выполнения над объектами этого типа.Элементы объектно-ориентированного программирования (ООП) появились в начале 70-х годов в языке моделирования Симула, затем получили свое развитие, и в настоящее время ООП принадлежит к числу ведущих технологий программирования. Основная цель ООП, как и большинства других подходов к программированию – повышение эффективности разработки программ. Идеи ООП оказались плодотворными и нашли применение не только в языках программирования, но и в других областях Computer Science, например, в области разработки операционных систем.

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

Изучение идей и методов ООП может существенно упростить разработку и отладку сложных программ [2].


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

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

Разработать класс для выполнения операций с матрицами на языке программирования Visual С++.

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

Необходимо определиться непосредственно с доступными пользователю действиями над матрицами:

· Сложение

· Вычитание

· Умножение

· Вычисление нормы

· Сохранение в файл

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

Определение классов и объектов — одна из самых сложных задач объектно-ориентированного проектирования.

Класс — это множество объектов, связанных общностью структуры и по­ведения. Любой объект является экземпляром класса.

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

Объект имеет определённые свойства. Состояние объекта задаётся значениями его признаков. Объект «знает», как решать определённые задачи, то есть располагает методами решения. Программа, написанная с использованием ООП, состоит из объектов, которые могут взаимодействовать между собой.Ранее отмечалось, что программная реализация объекта представляет собой объединение данных и процедур их обработки. Переменные объектного типа называют экземплярами объекта.В отличие от типа «запись», объектный тип содержит не только поля, описывающие данные, но также процедуры и функции, описания которых содержится в описании объекта. Эти процедуры и функции называют методами.Методам объекта доступны его поля. Следует отметить, что методы и их параметры определяются в описании объекта, а их реализация даётся вне этого описания, в том мест программы, которое предшествует вызову данного метода. В описании объекта фактически содержаться лишь шаблоны обращения к методам, которые необходимы компилятору для проверки соответствия количества параметров и их типов при обращении к методам.

Если необходимо считать какие-либо данные объекта, нужно вызвать соответствующий метод, который выполнит считывание и возвратит требуемое значение.

Прямой доступ к данным невозможен. Данные сокрыты от внешнего воздействия, что защищает их от случайного изменения. Говорят, что данные и методыинкапсулированы.

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

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

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

Переменные объектного типа могут быть динамическими, то есть размещаться в памяти только во время их использования. Для работы с динамическими объектами используются расширенный синтаксис процедур New и Delete. Обе процедуры в этом случае содержат в качестве второго параметра вызов конструктора или деструктора для выделения или освобождения памяти переменной объектного типа.Полиморфизм заключается в том, что одно и то же имя может соответствовать различным действиям в зависимости от типа объекта. Полиморфизм напрямую связан с механизмом позднего связывания. Решение о том, какая операция должна быть выполнена в конкретной ситуации, принимается во время выполнения программы.Когда существующая операция, например = или +, наделяется возможностью совершать действия над операндами нового типа, говорят, что такая операция являетсяперегруженной. Перегрузка представляет собой частный случай полиморфизма и является важным инструментом ООП [1].

Конструктор – функция-член класса, определяющая способ создания объекта. Имя конструктора должно совпадать с именем класса.

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

Деструктор – специальная функция класса, которая отвечает за уничтожение объекта. Имя деструктора совпадает с именем класса, перед которым ставится символ «тильда» - ~ [4].

Типичная программа на языке C++ состоит из совокупности объектов, взаимодействующих между собой посредством вызова методов друг друга. Структура программы на C++ приводится на рис. 1.1.

Рисунок 1.1 – Структура программы



2016-01-05 1029 Обсуждений (0)
Описание объектно-ориентированного подхода 0.00 из 5.00 0 оценок









Обсуждение в статье: Описание объектно-ориентированного подхода

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1029)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)