Объектно-ориентированное программирование с помощью Microsoft Visual Basic
Инкапсуляция — ограничение прав доступа. Объекты в задаче сохраняют конкретные данные, тип которых определяется полями класса. Каждый объект в задаче играет роль, определяет его «поведение». То, что может делать каждый объект (кроме сохранения значений своих полей) задается элементами функции. Особенностью класса является инкапсуляция одной конструкции, как данных, так и методов функций, которые… Читать ещё >
Объектно-ориентированное программирование с помощью Microsoft Visual Basic (реферат, курсовая, диплом, контрольная)
ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ТЮМЕНСКОЙ ОБЛАСТИ ТЮМЕНСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ МИРОВОЙ ЭКОНОМИКИ, УПРАВЛЕНИЯ И ПРАВА ФАКУЛЬТЕТ УПРАВЛЕНИЯ Кафедра математики и информатики
Курсовая работа
по дисциплине: «Технологии программирования»
на тему: «Объектно-ориентированное программирование с помощью Microsoft Visual Basic»
Выполнил:
студент группы ПИЭ-10−1
Антропова Ю. А.
Проверил:
старший преподаватель Наурусова Г. А.
ТЮМЕНЬ
- Оглавление 2
- Введение 3
- Глава 1. Объектно — ориентированное программирование. 4
- 1.1 Существующие парадигмы программирования. 4
- 1.2 ООП в Microsoft Visual Basic. 6
- 1.3 Четыре концепции ООП. 6
- 1.4 Абстрактные классы 14
- 1.5 Интерфейсы 14
- Глава II. Разработка игры «PineBall-demo» 15
- 2.1 Техническое задание 15
- 2.2 Основные особенности интерфейса 17
- 2.3 Кодовая часть программы с комментариями 20
- Заключение 27
- Список использованной литературы 28
За последние годы появилось множество новых концепций ПО. Они определяют последовательность действий и способы взаимодействия заказчиков, постановщиков задач, разработчиков и программистов. На сегодняшний день ни один язык моделирования не обладает той универсальностью, каковая присуща UML. Многие эксперты до сих пор не могут поверить, что один и тот же подход к разработке может быть применим к созданию проектов любых видов. Даже когда уже выбран какой-то процесс, может понадобиться, в зависимости от применения программы, довольно сильно его изменить.
Объектом курсовой работы является объектно-ориентированная среда Microsoft Visual Basic.
Предметом работы технология программирования на Microsoft Visual Basic.
Цель данной курсовой работы это раскрыть объектно-ориентированное программирование на Microsoft Visual Basic.
Задачи, решение которых необходимо для достижения поставленной цели:
1. Проанализировать основные составляющие Microsoft Visual Basic.
2. Собрать необходимую информацию.
3. Разработать программу.
Актуальность данной работы заключается в том, что ООП помогает решить множество классических задач. Но для задач нетривиальных, всегда необходимо пробовать и применять новые подходы. Все знания помогут программистам для написания более качественного и гибкого кода.
Глава 1. Объектно-ориентированное программирование
1.1 Существующие парадигмы программирования
Языки высокого уровня (Algol 68, Fortran, PL/1 и т. д.) облегчили трудоемкую работу по созданию машинного кода, который стал делать компилятор. Программы стали короче и понятнее.
Потом задачи усложнились, и программы снова стали слишком громоздкими. Программы стали разбивать на процедуры или функции, которые решают свои задачи. Написать, откомпилировать и отладить маленькую функцию можно легко и быстро, а потом собрать все функции воедино.
Такое программирование стало процедурным программированием и стало парадигмой.
Появились библиотеки процедур и функций. Как сделать программу нагляднее, какую часть кода надо выделить в отдельную процедуру и как лучше связать их между собой, т. е. как выявить структуру программы.
Появились новые языки.
Удачная структура данных может облегчить их обработку. Некоторые удобно представить в виде массива, а другие в виде стэка или дерева. Рост сложности и размеров программ потребовал развития структурирования данных и появления новых типов данных, которые могут определяться программистом.
Идея объединения данных и всех процедур их обработки в единый модуль — парадигма модульного программирования.
Сначала такой модуль был более или менее случайным набором данных и подпрограмм. В такие модули собирали подпрограммы, которые, как казалось, скорее всего будут изменяться совместно. Программы составлялись из отдельных модулей. Эффективность таких программ тем выше, чем меньше модули зависят друг от друга.
Необходимо четко отделить процедуры, которые будут вызываться другими модулями — открытые процедуры. Отделять их будем от вспомогательных, которые обрабатывают данные, заключенные в модуль. Данные, занесенные в модуль также делятся на открытые и закрытые. Удобно разбить программу на модули. Таким образом, чтобы она превратилась в совокупность взаимодействующих объектов.
Так возникло ООП.
Это современная парадигма программирования.
Все программы состоят из двух частей (описание и сама программа). Любая программа может быть концептуально организована либо вокруг её кода «кодовое воздействие на данные», либо вокруг данных «управляемый данными доступ к коду».
При первом процедурном подходе программу определяет последовательность операторов её кода. Второй подход организует программу вокруг данных, т. е. вокруг объектов и набора хорошо организованных интерфейсов.
ООП — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса; а классы образуют иерархию наследования.
1).ООП использует в качестве базовых элементов объекты, а не алгоритмы.
2).Каждый объект будет экземпляром какого-либо определенного класса.
3).Классы реализованы (организованы) иерархически.
Основное достоинство ООП — сокращение числа межмодульных связей, изменение объемов информации, которая передается между модулями и возможность повторного использования кодов.
Недостатки — снижение быстродействия из-за более сложной организации программы.
1.2 ООП в Microsoft Visual Basic
В Microsoft Visual Basic программа состоит из объектов, взаимодействующих друг с другом. Объекты создаются по шаблонам, называемым классами. Сами объекты называются экземплярами классов. Классы можно программировать на любом языке.
Класс — это пользовательский тип, обладающий расширенными возможностями. Объект — это переменная пользовательского типа.
Классы содержат в себе процедуры и функции, которые применимы к переменным данного класса. Эти процедуры и функции называются методами.
1.3 Четыре концепции ООП
1. Инкапсуляция. Сокрытие данных. Для работы с данными определяются свойства, методы и события.
Инкапсуляция — ограничение прав доступа. Объекты в задаче сохраняют конкретные данные, тип которых определяется полями класса. Каждый объект в задаче играет роль, определяет его «поведение». То, что может делать каждый объект (кроме сохранения значений своих полей) задается элементами функции. Особенностью класса является инкапсуляция одной конструкции, как данных, так и методов функций, которые обрабатывают эти данные, контролируемым образом. Это защита данных и операций от неконтролируемого доступа.
Так элементы private оказываются автоматически доступными только для методов самого класса, но сокрытыми для другой части программы.
Элементы public определяют интерфейс класса с другими частями программы и другими классами.
2. Наследование. Объекты могут получать свойства и методы других объектов (предков). Класс-предок называется базовым, класс-потомок — производным. Наследники получают все свойства и методы предков, которые могут быть изменены, а также могут обладать собственными методами или свойствами. Наследование реализуется с помощью ключевого слова Inherits. Например:
Public Class Class1
Inherits ИмяБазовогоКласса
End Class
Visual Basic не поддерживает множественное наследование. У каждого класса может быть только один родитель (базовый класс или суперкласс). Нельзя унаследовать свойства двух различных классов, но у каждого базового класса может быть свой базовый класс.
3. Полиморфизм. Методы различных объектов могут иметь одинаковые имена, но отличаться по своему содержанию.
Полиморфизм — это положение теории типов, согласно которому имена (переменных) могут обозначать объекты разных, но имеющих общего родителя, классов. Следовательно, любой объект, обозначаемый полимофным именем, может по-своему реагировать на некий общий набор операций. Один интерфейс — много методов.
Может понадобиться программа, которой требуется три типа СТЭКОВ (для хранения целых, вещественных чисел, для хранения символов).
Алгоритм, который реализует все стэки, будет один и тот же, хотя хранимые даны различны.
Полиморфизм позволяет определить общий для всех типов данных набор стэковых функций, использовать одно и то же имя. Дальнейшее — забота компилятора — выбрать специфический метод для использования в каждой конкретной ситуации.
Применение полиморфизма позволяет решить проблему добавления новых функциональностей. При этом существующий программный код не подвергается никаким изменениям. Мы добавим новый код к уже существующему.
Полиморфизм организуется при помощи двух ключевых слов — Overridable и Overrides. Overridable используется на уровне базового класса, чтобы указать, что данная функция может переопределяться в производных классах. Overrides используется на уровне производного класса, чтобы указать, что данная функция переопределяет соответствующую функцию базового класса.
4. Абстракция. Моделирование объектов в программе. Свойства и методы.
Абстрагирование — это метод решения сложных задач. Описывая поведение сложного объекта, мы выделяем только те стороны, которые нас интересуют с точки зрения решаемых задач. Т. е. строим его приближенную модель. Модель не может описать реальный объект полностью. Мы выделяем только те характеристики, которые важны для задачи. Нам надо абстрагироваться от несущественных деталей объекта.
Уровень абстракции.
Надо выбрать правильный уровень абстракции, чтобы не получилась слишком простая модель, когда потеряется что-то важное. Нельзя выбирать слишком высокий уровень абстракции, так как он дает слишком приблизительное упрощенное описание объекта.
Слишком низкий уровень абстракции делает объект слишком сложным, перегруженным деталями.
Абстрагирование — это взгляд на объект ни как он есть на самом деле, а с точки зрения наблюдателя и интересующих его характеристик данного объекта.
Характеристики — это свойства объекта, т. е. то, что, касается его состояния или определяет его поведение, выделяется в единую программную единицу или некий абстрактный класс. Объектно-ориентированное проектирование основано на абстрактном объединении объектов, решении одних и тех же задач, в классы. В виде класса можно представить любую общепринятую абстракцию данных.
Абстрагирование и инкапсуляция дополняют друг друга. Абстрагирование направлено на наблюдение за объектом, а инкапсуляция занимается внутренним устройством объекта — это сокрытие некоторых элементов абстракции (которые не затрагивают существенных характеристик объекта как целого).
Надо выделить две части в описании абстракции. Первая — это интерфейс (взаимодействие). Это основные характеристики состояния, поведения объекта. Он описывает внешнее поведение объекта типа class. Вообще описывает абстракцию поведения всех объектов данного класса. В этой части собрано все, что касается взаимодействия этого объекта с любыми другими объектами.
" То есть то, как сделано снаружи «Бутч.
Вторая — реализация, представляет собой недоступные извне элементы реализации абстракции (внутренняя организация абстракции и механизмы реализации её поведения). Скрывает все детали.
" То есть то, как сделано изнутри «Бутч.
Наследование классов — это основа ООП, позволяет увеличить масштабируемость программ, реализовать повторное использование кода. Программа, которая использует объекты базового класса может быть расширена без изменения старого кода путем построения производных классов от базового. Использование новых объектов в производных классах. Это достигается соглашением о наследовании: объекты производного класса содержат все элементы базового класса (поля и методы), как если бы эти элементы были описаны в самом производном классе.
Отпадает необходимость многократного переписывания одних и тех же определений базового класса, появляется возможность пользоваться ими, как они есть. В базовом классе надо определить какие права доступа мы предоставляем производным класса.
Производный класс может наследовать базовый как private, как public и как protected. Это влияет на возможность будущего расширения иерархии классов и интерпретации целей самого наследования.
Для создания нового класса внутри проекта необходимо выбрать пункт Add New Item / Class, после чего откроется окно нового класса.
Определение нового класса:
[Уровень_доступа] Class Имя_класса `имя — любое корректное
[Inherits Имя_класса-предка]
[Implements Имена_интерфейсов]
…'Список состава класса `свойства и методы нового класса
End Class
Уровень_доступа:
* Public — полный доступ к классу.
* Private — класс не виден за пределами модуля, в котором он был объявлен.
* Protected — класс доступен внутри модуля, в котором он объявлен, и внутри модулей, где присутствуют классы-потомки.
* Friend — доступ к классу только в пределах программы, в которой он объявлен (по умолчанию).
* ProtectedFriend — класс доступен в пределах программы, в которой он объявлен, и внутри других программ, в которых присутствуют его классы-потомки.
* MustInherit — класс не предназначен для создания экземпляров классов. Только его наследники класса могут использоваться для создания объектов.
* NotInheritableкласс не может иметь наследников.
Для каждого элемента класса также можно установить разную видимость. Для этого используются те же ключевые слова, кроме MustInherit и NotInheritable.
Свойства
Свойства определяют атрибуты объекта и реализуют механизм доступа для чтения или изменения данных в полях объекта. Объявление свойства должно содержать его имя и тип, а также, как минимум, одно объявление способа доступа к данному свойству. Свойства могут быть доступными для чтения или для записи.
Простой синтаксис объявления свойства объекта:
Уровень_доступа Имя_свойства As Тип_свойства
Например: Public MyProperty As Integer
Читать и изменять значения свойства можно следующим образом:
MyClassl.MyProperty = 34
Однако в этом случае невозможно запретить изменение данного свойства и невозможно проверить корректность присваивания данных свойству.
Для решения этих проблем можно воспользоваться свойствами классов, которые применяют так называемые процедуры свойств. Процедуры свойств предназначены для выполнения заданного кода при изменении значения свойства. Синтаксис свойства, использующего процедуры свойства:
Уровень_доступа Property Имя_свойства As Тип_свойства
Get
'Код, предназначенный для получения значения свойства
НазваниеСвойства = ИмяПеременной
End Get
Set (ByVal значение As Тип_данных)
'Код, предназначенный для установки свойства в значение
ИмяПеременной = значение
End Set
End Property
Конструкция Get в процедуре свойства является функцией, которая возвращает значение свойства при его чтении. Если убрать ключевые слова Get и End Get, то получить значение данного свойства будет невозможно.
Конструкция Set отвечает за получение нового значения для свойства. Если удалить ключевые слова Set и End Set, то изменить значение данного свойства будет невозможно. Для досрочного выхода из конструкции Set используются ключевые слова Exit Property.
Методы
Методы — это процедуры или функции, принадлежащие объекту. Методы определяют поведение объекта. Для вызова метода объекта указывается объект, затем, через точку, название метода. Например: MyObject. Method1
Методы могут возвращать или не возвращать значения и создаются так же, как процедуры и функции.
Методы могут быть открытыми и закрытыми. Открытые методы составляют интерфейс класса, а закрытые используются для внутренних нужд класса. Особый метод New () — (конструктор класса) автоматически вызывается при создании нового объекта. Конструктор может иметь аргументы.
В использовании деструкторов необходимости нет. Своевременным уничтожением объектов занимается сама среда («сборка мусора»). Явно вызвать деструктор можно с помощью метода Finalize.
Visual Basic позволяет определять несколько методов, имеющих одно и то же имя, но различный набор аргументов (перегрузка методов). При вызове метода будет выбран тот метод, набор аргументов которого совпадет с набором значений.
Для каждого свойства или метода, коды которого могут быть перегружены, необходимо заменить слово Public на Overridable. Слово Overrides используется при написании свойств и методов, коды которых будут отличаться от кодов свойств и методов исходного файла с теми же именами.
События.
Для того чтобы объявить событие в классе, необходимо воспользоваться ключевым словом Event:
Public Event EventName (event parameters)
Можно определить событие следующим образом:
Public Event EventName (ByVal sender as Object, ByVal e as System. EventArgs)
Класс System. EventArgs определяет базовый класс аргументов события.
Для генерации событий внутри класса предназначен оператор RaiseEvent, которому в качестве аргумента передается имя события:
RaiseEvent EventName (параметры события)
Модель событий в VB .NET выполнена на основе концепции делегатов — объектов, которые могут вызывать объектные методы. Для создания делегата используется ключевое слово Delegate.
Public Delegate Sub StringSubDelegate (ByVal aString As String)
Объявление объектов
После создания класса можно создавать внутри основной программы экземпляры данного класса. Для этого используется специальное ключевое слово New. Существуют два способа создания экземпляров класса.
1. Позднее связывание
Dim MyInstance As Object
MyInstance = New MyClass1()
Создаем новую переменную MyInstance типа Object, затем объявляем эту переменную как экземпляр класса MyClass1.
2. Раннее связывание
Объектная переменная сразу объявляется как переменная заданного класса.
Dim MyInstance As MyClass1
MyInstance = New MyClass1()
Или сразу: Dim MyInstance As New MyClass1
Лучше использовать раннюю привязку.
1.4 Абстрактные классы
Абстрактные классы не имеют самостоятельного применения, а используются только в качестве базовых для других классов. Пример:
Public MustInherit Class Number
…
Public MustOverride Function AsString () As String
End Class
Ключевое слово MustInherit означает, что данный класс предназначен только для создания производных классов; объекты класса Number создавать запрещено.
Атрибут MustOverride используется для декларирования функции, реализация которой предоставляется производному классу.
1.5 Интерфейсы
Интерфейс можно представить как абстрактный класс, в котором есть только объявления методов и свойств. Один и тот же интерфейс может быть реализован одновременно несколькими классами. Для создания экземпляра какого-либо класса достаточно сослаться не на указанный класс, а на интерфейс, реализованный данным классом.
Public Interface IEmployee
` Описание свойств, методов, событий
End Interface
Public Class Employee
Implements IEmployee
…
End Class
Для обращения из класса к нему самому можно использовать ключевое слово MyClass. Для обращения к базовому классу — MyBase.
Глава II. Разработка игры «PineBall-demo»
2.1 Техническое задание
Наименование программы:
" PineBall-demo"
Назначение и область применения:
Программа является игрой и предназначена для тренировкиразвития внимательности.
Требования к программе:
Требования к функциональным характеристикам:
Программа должна быть реализована с помощью императивного программирования в среде Microsoft Visual Basic и обеспечивать возможность выполнения перечисленных ниже функций:
Рабочая клавиатура
Условия эксплуатации:
Одновременная игра нескольких пользователей невозможна.
Требования к составу и параметрам технических средств
В состав технических средств должен входить IВМ-совместимый персональный компьютер (ПЭВМ), включающий в себя:
Процессор Pentium-2.0Hz, не менее;
Оперативную память объемом, 512Мегабайт, не менее;
HDD, 5Мегабайт, не менее;
Операционную систему Windows 2000XPVista7;
Требования к программной документации
Состав программной документации должен включать в себя:
техническое задание;
скрин-шоты программы; листинг;
Стадии и этапы разработки
Стадии разработки
Разработка должна быть проведена в три стадии:
1. разработка технического задания;
2. рабочее проектирование;
Этапы разработки
На стадии разработки технического задания должен быть выполнен этап разработки, согласования и утверждения настоящего технического задания.
На стадии рабочего проектирования должны быть выполнены перечисленные ниже этапы работ:
1. разработка программы;
2. испытания программы.
На стадии внедрения должен быть выполнен этап разработки подготовка и передача программы.
Содержание работ по этапам
На этапе разработки технического задания должны быть выполнены перечисленные ниже работы:
1. постановка задачи;
2. определение и уточнение требований к техническим средствам;
3. определение требований к программе;
4. определение стадий, этапов и сроков разработки программы и документации на неё;
5. согласование и утверждение технического задания.
На этапе разработки программы должна быть выполнена работа по программированию (кодированию) и отладке программы.
На этапе испытаний программы должны быть выполнены перечисленные ниже виды работ:
1. разработка, согласование и утверждение и методики испытаний;
2. проведение приемо-сдаточных испытаний;
3. корректировка программы и программной документации по результатам испытаний.
2.2 Основные особенности интерфейса
объектное ориентированное программирование язык
При запуске программы перед пользователем появляется главное окно, размером 408×467 пикселей, в пределах которого располагаются 2 биты и шарик
Рисунок 1
Размеры бит и шара. (рис.2)
Рисунок 2
Если пользователь хочет сыграть партию и нажимает F1, то шарик начинает движение (рис. 3)
Рисунок 3
Можно начинать двигать биты вправо и в лево клавишами A и D для биты 1(нижняя), Right и left для биты 2(верхняя). (рис. 4)
Рисунок 4
Рисунок 5
Рисунок 6
Рисунок 7
Если мячик попадает мимо биты, текущая игра заканчивается и начинается заново. Мячик летит к той бите, от которой был пропущен удар. Игра заканчивается тогда, когда захочет пользователь. Для этого следует закрыть форму (игру).
2.3 Кодовая часть программы с комментариями
Public Class Form1
Inherits System.Windows.Forms.Form
Dim Left_Bita1 As Boolean = False ' Эта переменная отвечает за передвижение биты 1, если Left_Bita1 = False то бита не двигается влево (или вправо, или стоит), если True то движется влево
Dim Right_Bita1 As Boolean = False ' Здесь все аналогично
Dim Left_Bita2 As Boolean = False
Dim Right_Bita2 As Boolean = False
' Эти переменные отвечают за движение мяча вверх или вниз, если Ball_Up = True то мячик движется вверх, если Ball_Down = True то вниз
Dim Ball_Up As Boolean = False
Dim Ball_Down As Boolean = False
' Эти переменные отвечают за движение мяча, влево или вправо
Dim Ball_Left As Boolean = False
Dim Ball_Right As Boolean = False
Private Sub Form1_KeyDown (ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase. KeyDown ' При нажатии на любую клавишу:
If e. KeyCode = Keys. F1 Then
' Если нажата F1, то:
Ball_Up = True ' Запускаем мячик вверх
Dvijok () ' Запускаем игру:
End If
If e. KeyCode = Keys. A Then ' Если нажата клавиша A, то биту 1 двигаем влево (см. описание функции Dvijok)
Left_Bita1 = True
Right_Bita1 = False
End If
' Здесь все аналогично
If e. KeyCode = Keys. D Then
Right_Bita1 = True
Left_Bita1 = False
End If
If e. KeyCode = Keys. Left Then
Left_Bita2 = True
Right_Bita2 = False
End If
If e. KeyCode = Keys. Right Then
Right_Bita2 = True
Left_Bita2 = False
End If
End Sub
Function Dvijok ()
Do ' Запускаем вечный цикл
Application.DoEvents () ' Это чтобы цикл не зацикливался
Granica () ' Запускаем функцию Granica, которая проверяет не заехала ли бита за края формы, если заехала то останавливает ее (т.е. значения переменных отвечающих за движение бит = False)
If Left_Bita2 = True Then Bita2. Left = Bita2. Left — 1
If Right_Bita2 = True Then Bita2. Left = Bita2. Left + 1
If Left_Bita1 = True Then Bita1. Left = Bita1. Left — 1
If Right_Bita1 = True Then Bita1. Left = Bita1. Left + 1
Ball_Dvijenie () ' Функция двигает мяч (см. описание функции)
Loop
End Function
Function Granica ()
If Bita1. Left <= 0 Then Left_Bita1 = False ' Если бита 1 заехала за левый край формы то останавливаем её
If Bita1. Left >= Me. Width — Bita1. Width Then Right_Bita1 = False ' Если бита 1 заехала за правый край формы то останавливаем ее (Я написала Me. Width — Bita1. Width потому что если написать просто Me. Width то бита будет полностью заходить за край формы, а если от ширины формы отнять ширину биты, то бита заходить за край формы не будет)
If Bita2. Left <= 0 Then Left_Bita2 = False
If Bita2. Left >= Me. Width — Bita1. Width Then Right_Bita2 = False
End Function
Function Ball_Dvijenie () ' Функции Otskok_Bita1 и Otskok_Bita2 при сталкновении мяча с битой, направляют его в различные стороны
Otskok_Bita1()
Otskok_Bita2()
' Здесь мяч двигается, взависимости от того, куда его направили функции Otskok_Bita1 и Otskok_Bita2
If Ball_Up = True Then Ball. Top = Ball. Top — 1
If Ball_Down = True Then Ball. Top = Ball. Top + 1
If Ball_Left = True Then Ball. Left = Ball. Left — 1
If Ball_Right = True Then Ball. Left = Ball. Left + 1
Otskok_Granica () ' Эта функция отвечает за отскок мяча от границ
End Function
Function Otskok_Bita2() ' Функция отвечает за задание направления мяча, при сталкновении с битой 2
If Ball. Top <= Bita2. Top + Bita2. Height + 7 Then ' Если мяч находится на одной высоте с битой 2(+ Bita2. Height — прибовляем высоту биты, т.к. если этого не написать, то мяч будет ударяться об нижний край биты (а + 7 чтобы выглядело более реально))
If Ball. Left >= Bita2. Left — 25 And Ball. Left <= Bita2. Left + 25 Then ' Ball. Left >= Bita2. Left — 25 — если координаты мяча находятся там же где координаты (-25 — это ширина мяча) биты или дальше И координаты мяча меньше координат биты + 25(Ball.Left <= Bita2. Left + 25 (вся бита в ширину = 100)), то (чтобы было более понятно, посмотри на рисунок 2, расположенный после кода). Вобщем это отскок от левого края биты:
' Направляем мяч влево
Ball_Left = True
Ball_Right = False
' Направляем мяч вниз
Ball_Up = False
Ball_Down = True
End If
If Ball. Left <= Bita2. Left + 100 And Ball. Left >= Bita2. Left + 75 Then ' Здесь аналогично, только отскок от правой части биты
Ball_Left = False
Ball_Right = True
Ball_Up = False
Ball_Down = True
End If
If Ball. Left > Bita2. Left + 25 And Ball. Left < Bita2. Left + 75 Then ' Отскок от центра
Ball_Up = False
Ball_Down = True
End If
End If
End Function
Function Otskok_Bita1() ' функция аналогична функции Otskok_Bita2
If Ball. Top >= Bita1. Top — Bita1. Height — 7 Then
If Ball. Left >= Bita1. Left — 25 And Ball. Left <= Bita1. Left + 25 Then
Ball_Left = True
Ball_Right = False
Ball_Up = True
Ball_Down = False
End If
If Ball. Left <= Bita1. Left + 100 And Ball. Left >= Bita1. Left + 75 Then
Ball_Left = False
Ball_Right = True
Ball_Up = True
Ball_Down = False
End If
If Ball. Left > Bita1. Left + 25 And Ball. Left < Bita1. Left + 75 Then
Ball_Up = True
Ball_Down = False
Ball_Left = False
Ball_Right = False
End If
End If
End Function
Function Otskok_Granica () ' При помощи этой функции мячик отскакивает от стенок
If Ball. Left <= 0 Then ' Если мячик столкнулся с левой стенкой, то меняем его направление
Ball_Left = False
Ball_Right = True
End If
If Ball. Left >= Me. Width Then ' Если мячик столкнулся с правой стенкой, то меняем его направление
Ball_Left = True
Ball_Right = False
End If
If Ball. Top <= Bita2. Top Or Ball. Top >= Bita1. Top Then ' Если мячик улетает за биту, то ставим его в центр
Ball.Left = 176
Ball.Top = 172
Ball_Left = False
Ball_Right = False
End If
End Function
Private Sub Form1_KeyUp (ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase. KeyUp ' Если какая — нибудь клавиша отжата:
If e. KeyCode = Keys. Left Then Left_Bita2 = False ' Если отжата клавиша Left, то если Bita 2 двигалась влево, то она останавливается
If e. KeyCode = Keys. Right Then Right_Bita2 = False ' Здесь все аналогично
If e. KeyCode = Keys. A Then Left_Bita1 = False
If e. KeyCode = Keys. D Then Right_Bita1 = False
End Sub
Private Sub Form1_Closed (ByVal sender As Object, ByVal e As System. EventArgs) Handles MyBase. Closed ' При выходе из программы (т.е. при нажатии на крестик в заголовоке формы)
End ' Выходим из программы (если запущен вечный (или долгий) цикл, то программа полностью не закрывается)
End Sub
End Class
Заключение
Объектно-ориентированное программирование создавалось для решения некоторых проблем, присущих процессу развития больших программ. Разумеется, процесс планирования при использовании ООП упрощается, так как объекты программы соответствуют объектам реального мира.
Поставленные в данной работе цель и задачи были выполнены, представлены общие сведения об объектно-ориентированном программировании.
Выявлена и приведена к необходимой форме нормализации структура. Разработан рабочий проект.
В первой главе работы был произведен анализ ООП с помощью Visual Basic, рассмотрены принципы написания кода. Затем были выделены объекты и определены атрибуты, характеризующие каждый объект, установлена между ними взаимосвязь, и нормализованные отношения.
Одним из распространенных языков объектно — ориентированного программирования является Visual Basic. На его примере были рассмотрены основные черты объектно — ориентированного программирования.
Итогом курсовой работы стала программа, представляющая собой игру, реализованную с помощью объектно — ориентированного программирования в среде Microsoft Visual Basic.
Во время выполнения курсовой работы среда Microsoft Visual Basic работала без неполадок, была проста в обращении, возникающие ошибке при программировании легко исправлялись.
Таким образом, можно сделать вывод, что первоначальные задачи, поставленные перед автором курсовой работы, были решены. Практическая часть работы успешно реализована в среде Microsoft Visual Basic.
1. C/C++. Программирование на языке высокого уровня / Т. А. Павловская. — СПб.: Питер, 2003. —461 с: ил
2. Объектно-ориентированное программирование на С++. 4-е издание. / Р. Лафоре. — Спб.:Питер, 2004. — 923с
3. INTUIT.ru: учебный курс — Основы объектно-ориентированного программирования [электронный ресурс] - Режим доступа: http://www.intuit.ru/department/se/oip/10/. Дата обращения 19.06.2012.
4. ITYOURSELF: IT документация — ООП на Visual Basic [электронный ресурс] - режим доступа: http://ityourself.ru/oop-visual-basic/11.-oop.html. 13.09.2012.
5. Объектно-ориентированное программирование в Visual Basic .NET/ Дэн Кларк. Серия: Библиотека программиста Издательство: Питер, 2003 г. 352 с
6. Visual Basic 2005/ Д. А. Шевякова Издательство: БХВ — Петербург, 2007 г. 576 с
7. Microsoft Visual Basic 2005 /Майкл Хальворсон Издательство: ЭКОМ Паблишерз, 2007 г. 640 стр.