Объектно-ориентированное программирование - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1страница 2страница 3
Похожие работы
Название работы Кол-во страниц Размер
Программа вступительного экзамена по специальности 05. 13. 18 Математическое... 1 113.98kb.
Конспект лекций по дисциплине «Объектно-ориентированное программирование» 3 374.25kb.
Лабораторные работы по курсу Объектно-ориентированное программирование... 9 848.53kb.
Объектно-ориентированное программирование 6 944.02kb.
Рабочая программа по дисциплине «Объектно-ориентированное программирование»... 1 129.85kb.
Рабочая программа по курсу «Объектно-ориентированное программирование»... 1 58.66kb.
Объектно-ориентированное программирование на современном фортране 1 288.94kb.
Контрольная работа по дисциплине «Объектно-ориентированное программирование» 1 46.12kb.
Задание на курсовую работу по дисциплине «объектно-ориентированное... 1 193.62kb.
Пояснительная записка к курсовому проекту по дисциплине «Объектно-ориентированное... 1 189.09kb.
Лекция 16: Программирование на языке vba 1 133.26kb.
Объектно-ориентированное программирование 6 944.02kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Объектно-ориентированное программирование - страница №1/3

МИНОБРНАУКИ РФ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ,

ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Факультет ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА ТИССУ

Курсовая работа

по теме:

Объектно-ориентированное программирование.

Объект - «Рациональная дробь».
ДИСЦИПЛИНА

Технология программирования”.

Группа: ВАИ-2-10

Студент: Мошкалев Д.В.

Руководитель: Колесникова М.Д.

МОСКВА, 2012 г.

Руководитель: Колесникова М.Д.

Рецензент: Колесникова М.Д.

Мошкалев Д.В.

Курсовая работа по специальности 230201 «Информационные системы и технологии»: М. 2012 г., МИРЭА, факультет Информационных технологий, кафедра ТИССУ. – стр.?? рис ??, табл. ??.

Объект «Рациональная дробь». В курсовой работе.

©Мошкалев Д.В.

Файл: «Курсовая_Работа_Мошкалев_(ВАИ-2-10)__.doc», исполнитель Мошкалев Д.В., 2012г.

Оглавление


Техническое задание 4

1.Введение 5

2.Технический и рабочий проект программной системы 8

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

2.2.Разработка функциональной структуры программной системы 8

2.3.Реализация диалогового интерфейса 8

2.4.Разработка и реализация алгоритмов решения 10

4.Эксплуатационная документация 11

4.1.Описание применения 11

4.2.Руководство оператора 11

5.Заключение 11

6.Приложение 1: Распечатка текстов программы 12

6.1.Файл программы 12

6.2.Модуль RatFracClass 12

6.3.Модуль RatFracForm 22

6.4.Модуль LogForm 45

6.5.Модуль AboutForm 46

6.6.Файл тестовых данных 47




Техническое задание


Задание на курсовую работу по дисциплине

«Технология программирования»

Вариант №16
Тема: Объектно-ориентированное программирование. Объект - «Рациональная дробь».
  1. Содержательная задача:


    1. Составить описание класса «Рациональная дробь» для представления дроби числителем и знаменателем целого типа. Обеспечить выполнение операций сложения, вычитания, умножения, деления, сравнения двух дробей. Результаты операции получать в виде несократимых дробей.

    2. Разработать приложение для Windows в среде Delphi, реализующее вычисление следующих дробей:

      1. fx=2x+ 1x

      2. fx= x-1x+2

      3. fx=x2- 1x

      4. fx=x3- 11+x

      5. fx=3x+5x11

      6. В приложение включить средства, позволяющие выбрать вычисление «нужной» функции.
  1. Специальные требования:


    1. Исходные данные для тестирования приложения подготовить в текстовых файлах.

    2. Результаты тестирования представить в элементах диалоговых форм.






  1. Введение


      1. Объектно-ориентированное программирование является наиболее прогрессивной и бурно развивающейся технологией разработки программ.

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

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

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

      5. Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент своего появления (в 1967 году), этот язык программирования предложил поистине революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектно-ориентированным языком программирования.

      6. В настоящее время количество прикладных языков программирования, реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. В области системного программирования до сих пор применяется парадигма процедурного программирования, и общепринятым языком программирования является язык C. Хотя при взаимодействии системного и прикладного уровней операционных систем заметное влияние стали оказывать языки объектно-ориентированного программирования. Например, одной из наиболее распространенных библиотек мультиплатформенного программирования является объектно-ориентированная библиотека Qt, написанная на языке C++. В области прикладного программирования для Windows часто используются язык Delphi. Его главным достоинством является большая скорость разработки приложений для Windows за счет большой библиотеки готовых модулей.

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

      8. Объектно-ориентированное проектирование состоит в описании структуры и поведения проектируемой системы, то есть, фактически, в ответе на два основных вопроса:

  • Из каких частей состоит система.

  • В чём состоит ответственность каждой из частей.

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

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

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

      4. Основные понятия ООП:

  • Абстрагирование — это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция — это набор всех таких характеристик.

  • Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.

  • Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом.

  • Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

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

  • Сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса или копирования прототипа (например, после запуска результатов компиляции и связывания исходного кода на выполнение).

  • Прототип — это объект-образец, по образу и подобию которого создаются другие объекты. Объекты-копии могут сохранять связь с родительским объектом, автоматически наследуя изменения в прототипе; эта особенность определяется в рамках конкретного языка.

      1. Многие современные языки специально созданы для облегчения объектно-ориентированного программирования. Однако следует отметить, что можно применять техники ООП и для не-объектно-ориентированного языка и наоборот, применение объектно-ориентированного языка вовсе не означает, что код автоматически становится объектно-ориентированным.

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

  • Объявление классов с полями (данными — членами класса) и методами (функциями — членами класса).

  • Механизм расширения класса (наследования) — порождение нового класса от существующего с автоматическим включением всех особенностей реализации класса-предка в состав класса-потомка. Большинство ООП-языков поддерживают только единичное наследование.

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

  • Полиморфное поведение экземпляров классов за счёт использования виртуальных методов. В некоторых ООП-языках все методы классов являются виртуальными.

  • Конструкторы, деструкторы, финализаторы.

  • Свойства (аксессоры).

  • Индексаторы.

  • Интерфейсы (например, в Java используются также как альтернатива множественному наследованию — любой класс может реализовать сколько угодно интерфейсов).

  • Переопределение операторов для классов.

  • Средства защиты внутренней структуры классов от несанкционированного использования извне. Обычно это модификаторы доступа к полям и методам, типа public, private, обычно также protected, иногда некоторые другие.

      1. Часть языков целиком построена вокруг объектных средств — в них любые данные являются объектами, любой код — методом какого-либо класса, и невозможно написать программу, в которой не использовались бы объекты. Примеры подобных языков — Smalltalk, Python, Java, C#, Ruby, AS3. Другие языки (иногда используется термин «гибридные») включают ООП-подсистему в исходно процедурный язык. В них существует возможность программировать, не обращаясь к объектным средствам. Классические примеры — C++, Delphi и Perl.

      2. Однако есть и критика методов ООП. Критики оспаривают тезис о том, что разработка объектно-ориентированных программ требует меньше ресурсов или приводит к созданию более качественного программного обеспечения. Проводится сравнение затрат на разработку разными методами, на основании которого делается вывод об отсутствии у ООП преимуществ в данном направлении. Учитывая крайнюю сложность объективного сравнения различных разработок, подобные сопоставления, как минимум, спорны. С другой стороны получается, что ровно так же спорны и утверждения об эффективности ООП.


  1. следующая страница >>