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

Автор работы: Пользователь скрыл имя, 13 Июня 2013 в 12:12, курсовая работа

Описание работы

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

Содержание работы

Введение……………………………………………………………………………..4
1.Аналитическая часть…………………………………………….………………..6
1.1 Инкапсуляция…………………………………………………………………..6
2.Разработка приложения………………………………………………………….12
2.1.Структура и интерфейс приложения……………..…………………………...12
2.2.Блок-схема……………………………………………………………………....24
2.3.Листинг программного кода…………………………………………………..25
2.4.Требования программного и аппаратного обеспечения…………………….48
Заключения…………………………………………………………………………49
Список используемой литературы……………………………………………..…50

Файлы: 1 файл

КУРСОВАЯ!!!.doc

— 1.51 Мб (Скачать файл)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Содержание

Введение……………………………………………………………………………..4

1.Аналитическая часть…………………………………………….………………..6

1.1 Инкапсуляция…………………………………………………………………..6

2.Разработка приложения………………………………………………………….12

2.1.Структура  и интерфейс приложения……………..…………………………...12

2.2.Блок-схема……………………………………………………………………....24

2.3.Листинг программного кода…………………………………………………..25

2.4.Требования  программного и аппаратного обеспечения…………………….48

Заключения…………………………………………………………………………49

Список используемой литературы……………………………………………..…50

 

 

 

 

 

 

 

 

 

 

Введение

 

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

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

1 Аналитическая часть

 

    1. Инкапсуляция

 

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

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

Классическое правило объектно-ориентированного программирования утверждает, что для обеспечения надежности нежелателен прямой доступ к полям объекта: чтение и обновление их содержимого должно производиться посредством вызова соответствующих методов. Это правило и называется инкапсуляцией. В старых реализациях ООП (например, в Turbo Pascal) эта мысль внедрялась только посредством призывов и примеров в документации; в языке же Object Pascal есть соответствующая конструкция. В Delphi пользователь вашего объекта может быть полностью отгорожен от полей при помощи свойств.

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

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

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

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

И все же, если говорить о объектно-ориентированном программировании, тогда инкапсуляция - объединение  данных и методов в рамках объекта.

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

Чем инкапсуляция заслужила  право считаться одним из основных принципов объектно-ориентированного программирования?

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

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

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

 

 

2. Разработка приложения.

2.1 Структура  и интерфейс приложения

          Разработка приложения осуществлялась с помощью программного пакета разработки программного обеспечения Delphi 2009 For Windows System 32. C помощью этой объектной ориентированной среды разработки создавалось программное обеспечения с доступом к базе данных Microsoft Access 2010. В ходе разработки приложения использовались стандартные наборы компонентов, функций, входящих в состав среды программирования Delphi 2009. Первым шагом при разработке приложения с доступом к БД было создание визуальной компоновки форм, размещение основных компонентов отвечающих за обеспечение доступа к базе данных. Непосредственно сама БД создавалась в программе Microsoft Access 2010, структура базы разрабатывалась под систему управления базой данных почтовая корреспонденция и в результате имеет несколько основных таблиц заполнения это автозапчасти, клиенты, заказы.

         Основной технологией для создания  подключения к БД являлась  технология ADO которая представляет собой основная модель доступа к данным для приложений, основанных на Microsoft NET.  ADO (от англ . ActiveX Data Objects — «объекты данных ActiveX») — интерфейс программирования приложений для доступа к данным, разработанный компанией Microsoft (MS Access,MS SQL Server) и основанный на технологии компонентов ActiveX. ADO позволяет представлять данные из разнообразных источников (реляционных баз данных, текстовых файлов и т. д.) в объектно-ориентированном виде. В моем приложении для доступа к  БД  использовались следующие компоненты: ADOConnection,  ADOTable, ADOQuery и DataSourse, DBGrid.   Компонент ADOConnection  обеспечивает доступ непосредственно к самой БД  по двойному  нажатию на компоненте ADOConnection появится окно Form1.ADOConection1ConectionString (см. рисунок 2.1).

Рисунок 2.1 - Окно подключения к БД

По щелчку по кнопке Build откроется окно свойств связи с данными Рис.2  При этом перед установкой подключения необходимо выбрать провайдера в данном случае при связях с БД MS Access и другие БД используется провайдер Microsoft OLE DB Provider for ODBC Providers.

Щелкая по нему откроется  окно подключения к самой базе все что остается это указать  путь к БД.         

 

Рис.2 Окно свойств связи с данными.

Далее обеспечивается связь компонентов DataSourse, ADOTable между собой и компонента DBGrid  с компонентом DataSourse, вся связь осуществляется через свойства объектов. Компонент DBGrid служит вывода данных БД, следует запомнить что компонент DBGrid не хранит данные а выводит их. В приложении технология ADO реализует доступ к базе которая содержит несколько таблиц и именно эти таблицы выводятся на компонент DBGrid  и пользователь непосредственно работающий с программой видит отображаемые таблицы.

Так же в приложении реализован алгоритм который обеспечивает заполнение обработку и сохранение данных в текстовой файл для последующего его открытия, редактирования и просмотра. Для непосредственного удобства в программе была разработана  система экспорта содержимого DBGrid в Excel что в значительной мере улучшает и упрощает работу с приложением.  Основную часть в разработке приложения помимо доступа к БД составляет и вход в БД под разными пользователями которые могли работать с программой, главной особенностью алгоритма является ограничение прав каждого пользователя в работе с приложением. С помощью компонента ADOTable основного алгоритма поиска реализуется поиск по БД во всех таблицах базы, поиск представляет собой фильтрацию по основным критериям фильтрования которые выбираются  из соотвецтвующего меню. Сам алгоритм работает следующим образом сначала проверяются поля куда вводятся данные если данные пусты то выводится сообщение о пустом поле, после фильтр ADOTable неактивен, выбирается критерий поиска  и сравнивается с введенным значением далее активируем фильтр. Основной принцип алгоритма заключается в компоненте ADOTable и его фильтре данных.

 

      Следующий алгоритм, алгоритм подсчета суммы продукции и количества записей в таблице. Реализуется с помощью компонента ADOQuery принцип работы компонентов технологии ADO схож в данном алгоритме с подошью свойства SQL Add идет выбор таблицы и поля где будет проводится сумма, вывод результата осуществляется свойством Fields и может выводится практически  в любой компонент поддерживающий вывод. Для подсчета количества записей в таблице реализуется тот же самый алгоритм но с учетом вывода не суммы а количества записей IntToStr(ADOQuery2.RecordCount) стандартная система вывода информации преобразования целого типа в строковый.

Информация о работе Объектно-ориентированное программирование