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

     СОДЕРЖАНИЕ

                                                                  С

ВВЕДЕНИЕ           2

1.ЗАДАЧА 1           6

2. ЗАДАЧА 2          12

3. ЗАДАЧА 3          15

4. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД    18 

5. ОБЪЕКТ МОДЕЛЬ         20

     5.1 Абстрагирование        20

     5.2 Инкапсуляция        21

     5.3 Модульность         22

     5.4 Иерархичность        25

     5.5 Типизация         26

     5.6 Паралеллизм         27

     5.7 Сохраняемость        27

6. ОБЪЕКТ           29

     6.1 Состояние         29

     6.2 Поведение         29

     6.3 Идентичность         30

     6.4 Отношения между объектами      30

7. КЛАССЫ          31

     7.1 Ассоциация;         31

     7.2  Агрегация;         32

     7.3 Обобщение;         33

     7.4 Зависимость;         34

     7.5 Инстанцирование.        35

ЗАКЛЮЧЕНИЕ          36

ЛИТЕРАТУРА          37 
     ВВЕДЕНИЕ
 

     Microsoft Visual Basic — средство разработки программного обеспечения, разрабатываемое корпорацией Microsoft и включающее язык программирования и среду разработки. Язык Visual Basic унаследовал дух, стиль и отчасти синтаксис своего предка — языка Бейсик, у которого есть немало диалектов. В то же время Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Среда разработки VB включает инструменты для визуального конструирования пользовательского интерфейса.

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

     Первое признание серьёзными разработчиками Visual Basic получил после выхода версии 3 — VB3. Окончательное признание как полноценного средства программирования для Windows — при выходе версии 5 — VB5. Версию VB6, входящую в состав Microsoft Visual Studio 6.0, стала по-настоящему зрелым и функционально богатым продуктом. После этого разработчики из Microsoft существенно изменили направление развития данной технологии.

     Эволюция Visual Basic

     – май 1991 — выпущен Visual Basic 1.0 для Microsoft Windows. За основу языка был взят синтаксис QBasic, а новшеством, принесшим затем языку огромную популярность, явился принцип связи языка и графического интерфейса. Этот принцип был разработан Аланом Купером (Alan Cooper) и реализован в прототипе Tripod (также известном как Ruby). Первый Visual Basic был интерпретатором.– сентябрь 1992 — выпущен Visual Basic 1.0 под

DOS. Он  не был полностью совместим  с Windows-версией VB, поскольку

по сути являлся следующей версией QuickBASIC и работал в текстовом режиме экрана.

     – ноябрь 1992 — выпущен Visual Basic 2.0. Среда разработки стала проще в использовании и работала быстрее.

     – летом 1993 — вышел в свет Visual Basic 3.0 в версиях Standard и Professional. Ко всему прочему, в состав поставки добавился движок для работы с базами данных Access.

     – август 1995 — Visual Basic 4.0 — версия, которая могла создавать как 32-х так и 16-разрядные Windows-программы. Кроме того, появилась возможность писать на VB классы, а также Visual Basic наконец-то стал полноценным компилятором, что значительно увеличило скорость выполнения программ.

     – февраль 1997 — Visual Basic 5.0 — начиная с этой версии, стало возможно, наряду с обычными приложениями, разрабатывать COM-компоненты. Скомпилировав такой компонент в OCX-файл и поставляя его, можно было предоставить свой объект управления не только конечному пользователю, но и другим разработчикам, после чего они могли интегрировать этот объект в свои приложения.

     – в середине 1998 — вышла Visual Basic 6.0. После этого Microsoft резко изменила политику в отношении языков семейства Basic. Вместо развития Visual Basic, был создан абсолютно новый язык Visual Basic.net, первая версия которого появилась в 2001. Это принципиально новый язык, имеющий, помимо синтаксиса, очень мало схожего с VB 6.0; и отличаясь от него также сильно, как в своё время, VB отличался от QBASIC. VB.NET сразу же занял место VB в Visual Studio, и на этом развитие классического Visual Basic остановилось.

     – в 2005 году вышла новая версия Visual Basic, в комплекте Visual Studio. Порадовала она новым интерфейсом и возможностями. Язык основан на Visual Basic.NET.

     В конце 2007 Microsoft выпустила новую версию Visual Basic — Visual Basic 2008, которая также  была основана на Visual Basic.NET.

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

     Visual Basic for Applications. Это средство программирования, практически ничем не отличающееся от классического Visual Basic, которое предназначено для написания макросов и других прикладных программ для конкретных приложений. Наибольшую популярность получил благодаря своему использованию в пакете Microsoft Office. Широкое распространение Visual Basic for Applications в сочетании с изначально недостаточным вниманием к вопросам безопасности привело к широкому распространению макровирусов.

     Visual Basic Scripting Edition. Скриптовый язык, являющийся несколько усечённой версией обычного Visual Basic. Используется в основном для автоматизации администрирования систем Windows, а также для создания страниц ASP и сценариев для Internet Explorer.

     Достоинствами Visual Basic является высокая скорость создания приложений с графическим интерфейсом для MS Windows.

     Простой синтаксис, позволяющий очень быстро освоить язык.

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

     Из  недостатков можно отметить поддержку операционных систем только семейства Windows и Mac OS X (Исключение — VB1 for DOS).

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

     Требует установленных DLL для работы программы.

     Медленная скорость работы, обусловленная тем, что практически все встроенные функции языка реализованы через библиотеку времени исполнения (runtime library), которая в свою очередь производит много «лишней» работы по проверке и/или преобразованию типов.

     Часто критике подвергаются такие аспекты Visual Basic, как возможность отключить  средства слежения за объявленными переменными, возможность неявного преобразования переменных, наличие типа данных «Variant». По мнению критиков, это даёт возможность писать крайне плохой код. С другой стороны, это можно рассматривать как плюс, так как VB не навязывает «хороший стиль», а даёт больше свободы программисту.

     Отсутствие  указателей, низкоуровневого доступа  к памяти, ASM-вставок. Однако стоит  отметить, что все недостатки языка  вытекают из его основного достоинства  — простоты разработки графического интерфейса. Поэтому многие программисты используют Visual Basic для разработки интерфейса пользователя, а функционал программы реализуют в виде динамически подключаемых библиотек (DLL), написанных на другом языке (чаще всего С++). 
 
 
 
 
 

Вариант № 2 

Задание №1 

Ввести  исходные данные и вычислить итоговые значения согласно следующему заданию. Результат вывести в виде таблицы. 

     Анализ  соответствия между темпами роста  производительности труда и средней  зарплаты

Показатель Предшествующий  год Отчетный  год
План % Отчет % % к плану
1 2 3 4 5 6 7
А(15) #####.## #####.## ###.# #####.## ###.# ###.#
Итого: ######.##   ######.##  
 

Алгоритм:

гр.4=гр.3/гр.2*100,                          гр.6=гр.5/гр.2*100

гр.7=гр.5/гр.3*100,                          Итоги: гр.3, гр.5 

Решение 

Для решения  этой задачи создадим 7 одномерных массивов и заполним их. Элементам массива М1 присвоим значение оператором «=». Для элементов массивов М2, М3 и М5 используем цикл For…Next, который служит в качестве счетчика и функцию InputBox, которая показывает диалоговое окно ввода, ожидает ввод переменной и возвращает ее в программу. Массивы М4, М6, М7

заполняем соответственно алгоритму. Для того чтобы представить данные в виде таблицы указанного типа организуем цикл со счетчиком For…Next  для вывода чисел массивов в столбик. Для форматирования чисел используем функцию Format, которая позволяет вывести число в заданном формате. Оператором Scale (указывается верхний левый угол и нижний правый угол объекта) задается масштабирование формы и используя оператор Line (указываются начальные координаты линии и конечные координаты линии) рисуем таблицу. Используя оператор PSet (устанавливает координаты точки) и Print (выводит указанные символы на печать) выводим текст таблицы в нужных местах. 

     Форма проекта после выполнения задания 
 

 

Программный код 
 

Dim M1(14) As String

Dim M2(14) As Single

Dim M3(14) As Single

Dim M4(14) As Single

Dim M5(14) As Single

Dim M6(14) As Single

Dim M7(14) As Single

Dim S3 As Double

Dim S5 As Double

Private Sub Command1_Click()

M1(0) = "Объем продукции"

M1(1) = "Реализованная продукция"

M1(2) = "Объем нереализованной продукции"

M1(3) = "Выручка по предприятию за год"

M1(4) = "Количество рабочих на предприятии"

M1(5) = "Количество специалистов"

M1(6) = "Среднегодов. выработка рабочих"

M1(7) = "Среднегод. выработка специалистов"

M1(8) = "Общее количество отработанного времени"

M1(9) = "Плановый фонд заработной платы"

M1(10) = "Фактический фонд заработной платы"

M1(11) = "Среднегодовая зарплата специалиста"

M1(12) = "Среднегодовая зарплата рабочего"

M1(13) = "Выплаты дивидендов за год"

M1(14) = "Дополнительные выплаты за год"

Dim n As String

For i = 0 To 14

n = InputBox("Введите показатели Предыдущий год")

M2(i) = Val(n)

Next i

For i = 0 To 14

n = InputBox("Введите показатели План")

M3(i) = Val(n)

Next i

For i = 0 To 14

n = InputBox("Введите показатели Отчет")

M5(i) = Val(n)

Next i

End Sub

Private Sub Command2_Click()

For i = 0 To 14

M4(i) = M3(i) / M2(i) * 100

Next i

For i = 0 To 14

M6(i) = M5(i) / M2(i) * 100

Next i

For i = 0 To 14

M7(i) = M5(i) / M3(i) * 100

Next i

Print ""

Print ""

Print ""

Print ""

Print ""

Print ""

Print ""

For i = 0 To 14

Print "", M1(i), M2(i), M3(i), Format(M4(i), "0.0\0"), M5(i), Format(M6(i), "0.0\0"), Format(M7(i), "0.0\0")

Next i

Scale (-10, 10)-(10, -10)

Line (-8.5, 7)-(9, 7)

Line (-8.5, 9)-(9, 9)

Line (-8.5, 7.5)-(9, 7.5)

Line (-8.5, -3)-(-8.5, 9)

Line (9, 9)-(9, -3)

Line (-2.5, 9)-(-2.5, -3)

Line (-0.5, 9)-(-0.5, -3)

Line (1.5, 8.3)-(1.5, -3)

Line (3, 8.3)-(3, -3)

Line (5, 8.3)-(5, -3)

Line (7, 8.3)-(7, -3)

Line (-0.5, 8.3)-(9, 8.3)

Line (-8.5, -2)-(9, -2)

Line (-8.5, -3)-(9, -3)

PSet (-6.5, 9)

Print "Показатель"

PSet (-2.5, 9)

Print "Предыду-"

PSet (-2.5, 8)

Print "щий год"

PSet (2.5, 9)

Print "Отчетный год"

PSet (-0.5, 8.3)

Print "План"

PSet (2, 8.3)

Print "%"

PSet (3.5, 8.3)

Print "Отчет"

PSet (6, 8.3)

Print "%"

PSet (7.5, 8.3)

Print "%к плану"

PSet (-5.5, 7.5)

Print "1"

PSet (-2, 7.5)

Print "2"

PSet (0.2, 7.5)

Print "3"

PSet (2.3, 7.5)

Print "4"

PSet (3.7, 7.5)

Print "5"

PSet (6, 7.5)

Print "6"

PSet (8, 7.5)

Print "7"

Line (-7.5, -2)-(9, -2)

Line (-7.5, -3)-(9, -3)

PSet (-8, -2)

Print "Итого"

For i = 0 To 14

S3 = M3(i) + S3

Next i

For i = 0 To 14

S5 = M5(i) + S5

Next i

PSet (-0.5, -2)

Print Format(S3, "0.0\0")

PSet (3, -2)

Print Format(S5, "0.0\0")

End Sub 
 

Задание № 2 

     Компонентами  файла G являются натуральные числа. Найти сумму наибольшего и наименьшего значений компонент.

     Решение

     Для обеспечения работы программного кода создадим на диске D с помощью Блокнота текстовый файл G.txt. Присвоим файлу G номер 1 для последующего чтения. Заполним файл G.txt случайными натуральными числами. Открыв файл G.txt произведем сортировку массива по возрастанию. Вычисляем сумму первого и последнего элемента массива. Данные выводятся на форму.

     

 

       Программный код 

       Dim i As Integer

       Dim g As Integer

       Dim Mas(0 To 20) As Long

       Dim kom As Integer

       Dim kom1 As Integer

       Dim kom2 As Integer

       Dim S As Integer

       Private Sub Command1_Click()

       Open "D:\G.txt" For Output As #1

       For i = 1 To 20

       Mas(i) = Int(Rnd * 100)

       Print #1, Mas(i);

       Form1.Print Mas(i);

       Next i

       Print

       Print

       Close #1

       End Sub

       Private Sub Command2_Click()

       Open "D:\G.txt" For Input As #1

       Dim n As Integer

       For i = 1 To 19

       For g = 1 To 19

       If Mas(g) > Mas(g + 1) Then

       n = Mas(g)

       Mas(g) = Mas(g + 1)

       Mas(g + 1) = n

       End If

       Next g

       Next i

       For i = 1 To 20

       Print Mas(i);

       Next i

       Print

       Print

       kom1 = Mas(1)

       kom2 = Mas(20)

       S = kom1 + kom2

       Print "Сумма наибольшего и наименьшего компонент равна:"; S;

       Close #1

       End Sub 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     Задание №3 

         Структура с именем AEROPORT содержит следующие поля:

     Название  пункта назначения рейса;

     Номер рейса;

     Тип самолета.

     Условие поиска – вывод на экран пунктов  назначения и номеров рейсов, обслуживаемых  самолетом, тип которого введен с  клавиатуры. 

           Решение 

Для решения  данной задачи следует создать массив Airport, записями в котором пусть будут пять значений поля «Тип Самолета», пять значений поля «Номер рейса», пять значений поля «Пункт назначения». По условию задачи пользователь водит слово для поиска с клавиатуры, воспользуемся функцией InputBox, которая показывает диалоговое окно ввода, ожидает ввода текста и возвращает полученное значение после закрытия окна. Для поиска в массиве воспользуемся циклом Do While…Loop. Этот тип цикла служит для того, чтобы пока выполняется условие, повторять тело цикла (проверка условия в начале цикла), то есть пока Х – true, тело цикла выполняется, как только Х – false, то работа продолжится со следующего оператора после слова Loop. Найденная запись будет выведена в TextBox1. В TextBox2. выводится номер рейса, в TextBox3. пункт назначения. 

     Форма проекта после выполнения задания 

 

Программный код: 

Dim Airport(15) As String

Dim TipS As String

Dim rlIndex As Long

Dim lnIdx As Long

Dim lnMin As Long

Dim lnMax As Long

Dim s As Byte

Private Sub Command1_Click()

Airport(1) = "АН-100"

Airport(2) = "ТУ-100"

Airport(3) = "ЯК-100"

Airport(4) = "ИЛ-100"

Airport(5) = "Боинг-100"

Airport(6) = "номер рейса 25"

Airport(7) = "номер рейса 35"

Airport(8) = "номер рейса 45"

Airport(9) = "номер рейса 55"

Airport(10) = "номер рейса 65"

Airport(11) = "Москва"

Airport(12) = "Ростов"

Airport(13) = "Саратов"

Airport(14) = "Шахты"

Airport(15) = "Сыктывкар"

N = InputBox("Введите  тип самолета", "ввод данных  с клавиатуры")

TipS = N

Do While lnMin <= lnMax

lnIdx = (lnMax + lnMin) \ 2

If TipS = Airport(lnIdx) Then

rlIndex = lnIdx

Exit Do

ElseIf TipS < Airport(lnIdx) Then

lnMax = lnIdx - 1

Else

lnMin = lnIdx + 1

End If

Loop

For s = 1 To 5

If Airport(s) = N Then

Text1.Text = N

Text2.Text = Airport(s + 5)

Text3.Text = Airport(s + 10)

End If

Next s

End Sub 
 
 

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

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

     Основные  идеи объектно-ориентированного подхода  опираются на следующие положения:

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

     – модель реального мира или его  части может быть описана как  совокупность взаимодействующих между собой объектов;

     – объект описывается набором атрибутов (свойств), значения которых определяют состояние объекта, и набором  операций (действий), которые может выполнять объект;

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

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

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

     – уменьшение сложности программного обеспечения;

     – повышение его надежности;

     – обеспечение возможности модификации  отдельных компонент программ без  изменения остальных компонент;

     – обеспечение возможности повторного использования отдельных компонент  программного обеспечения.

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

ОБЪЕКТНАЯ МОДЕЛЬ 

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

     – абстрагирование;

     – инкапсуляция;

     – модульность;

     – иерархичность.

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

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