Прикладное приложение "Разработка проекта для создания нового класса Auto и элемента управления Label с новым свойством Caption в системе объектно-ориентированного программирования"
Основные концепции объектно-ориентированного программирования. Разработка компонента ActiveX (элемента управления Label с новым свойством Caption) на базе стандартного текстового поля. Тестирование пользовательского класса Auto и коллекции его объектов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 07.04.2014 |
Размер файла | 834,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
УКРАИНСКАЯ ИНЖЕНЕРНО - ПЕДАГОГИЧЕСКАЯ АКАДЕМИЯ
Кафедра информатики и компьютерных технологий
Дисциплина «Прикладное программирование»
Курсовая работа
Тема: «Прикладное приложение «Разработка проекта для создания нового класса Auto и элемента управления Label с новым свойством Caption в системе объектно-ориентированного программирования»».
Исполнитель: ст. гр. ДРЭ - К3 - 1 Дида В.В.
Харьков 2005г.
Содержание
Техническое задание
Аннотация
Введение
1. Основные концепции объектно-ориентированного программирования
2. Анализ задачи и выбор методов решения
2.1 Анализ функционирования разрабатываемого элемента управления ActiveX, его свойств и методов
2.2 Анализ разрабатываемого класса, его свойств и методов
3. Разработка элемента управления пользователя ActiveX
3.1 Создание элемента управления ActiveX
3.2 Программирование свойств
3.3 Тестирование элемента управления на этапе проектирования
4. Разработка и тестирование нового класса
4.1 Создание класса пользователя
4.2 Тестирование нового класса и коллекции
Заключение
Литература
Руководство пользователю
Техническое задание
1. Основание для разработки:
- задание выдано кафедрой информатики и компьютерных технологий.
2. Назначение:
- закрепление учебного материала курса прикладное программирование по теме: «Прикладное приложение «Разработка проекта для создания нового класса Auto и элемента управления Label с новым свойством Caption в системе объектно-ориентированного программирования».
3. Технические требования:
3.1. Операционная система Windows 98 / NT / XP.
3.2. Язык программирования: Visual Basic среда объектно-ориентирования Visual Basic 6.
3.3. Программа представляется на дискете формата 3,5 (1,44 Mb).
4. Требование к документации:
К защите представляются:
- пояснительная записка, содержащая: техническое задание, педагогический сценарий, описание программного кода, руководство пользователя;
- дискета с разработанным программным средством.
5. Стадии и этапы разработки:
5.1. Подбор и изучение литературы по теме курсовой работы - 1 неделя.
5.2. Анализ задачи и выбор методов ее решения - 1 неделя.
5.3. Разработка нового элемента управления - 1 неделя.
5.4. Разработка программ и тестирование элемента управления. Тестирование и отладка элемента управления - 2 недели.
5.5. Разработка свойств и методов нового класса - 1 неделя.
5.6. Разработка программ тестирования нового класса. Тестирование и отладка нового класса - 2 недели.
Аннотация
Курсовая работа посвящена разработке нового компонента ActiveX (элемента управления Label с новым свойством Caption) и нового пользовательского класса Auto в системе объектно-ориентированного программирования Visual Basic 6. В работе представлены результаты разработки и программирования нового элемента управления и нового класса объектов. Приведены результаты тестирования нового элемента управления и нового класса, демонстрирующие корректность их работы.
Разработанный элемент управления может быть использован при создании различных прикладных программ, использующих в своей работе простые списки данных с переменным числом элементов. Новый класс может быть полезен для разработки баз данных при совместной работе группы программистов над одним проектом.
Введение
С началом компьютерных технологий язык Basic служил для создания простых программ и использовался, как язык для обучения, для первых шагов при изучении основ программирования, с последующим переходом на более сложный и универсальный язык. С развитием компьютерных технологий развивался Basic. Современная версия Visual Basic 6 даёт возможность решить любые современные задачи разработки прикладных программ. При этом язык Visual Basic 6 остаётся довольно простым и в тоже время сильным современным языком программирования.
Как известно, Visual Basic 6 - это язык объектно-ориентированного программирования (ООП), то есть методологии разработки программ, в виде совокупности объектов, каждый из которых является объектом определенного класса.
Последняя версия Visual Basic 6 представляет собой интегрированную среду разработки - IDE (Integrated Development Environment). Это означает, что в Visual Basic 6 интегрирован набор инструментов, который облегчает и значительно ускоряет процесс разработки прикладных Visual Basic 6 - программ. Такая реализация языка позволяет отнести его к средствам быстрой разработки программ - RAD (Rapid Application Development) и поставить его практически в ряд с такими средствами разработки, как Visual C++, Delphi.
Характерной чертой Visual Basic 6 является создание прикладных программ не только для Windows, но и с помощью Windows и работы их, такими как Windows.
С помощью Visual Basic 6 можно создавать прикладные объектно-ориентированные программы практически для любой области современных компьютерных технологий.
Система объектно - ориентированного программирования Visual Basic 6 (ООП VB 6) дает возможность создания собственных элементов управления, которые получили название «элементы управления ActiveX», или «элементы управления пользователя» (User Control). При этом программист должен самостоятельно определить свойства, методы и события нового элемента управления.
Процесс разработки нового элемента управления состоит из следующих этапов:
Проектирование. На этом этапе определяются свойства, методы и события элемента управления, исходя из его функционального назначения.
Создание проекта на основе шаблона ActiveX Control и придание проектируемому элементу управления необходимого вида.
Программирование свойств, методов и событий, которые будет иметь новый элемент управления.
Тестирование и отладка элемента управления. При этом должна быть проверена работа всех методов, свойств и событий.
Компилирование элемента управления в файл с расширением .ocx и тестирование скомпилированной версии.
В данной курсовой работе рассматривается разработка нового элемента управления Label с новым свойством Caption на базе стандартного списка.
Другой существенной особенностью системы ООП VB 6 является возможность создания собственных классов. Как известно, в основе идеологии объектно-ориентированного программирования лежит подход, при котором программирование сводится к описанию объектов и определению их свойств, методов и событий. Такими объектами являются, например, стандартные элементы управления в системе ООП VB 6 - метки, текстовые поля, списки, командные кнопки и т. д. Прикладная программа создается путем задания необходимых объектов и определением их взаимодействия между собой и операционной системой.
Каждый объект, существующий в программе, имеет свои, присущие только ему свойства. Однако отдельные объекты могут иметь общие признаки, поведение и события. Такие объекты объединяются в классы. Таким образом, класс - это абстракция, объединяющие различные объекты в одну группу в соответствии с их свойствами и поведением. Класс отличается от элемента управления тем, что объекты класса могут реально существовать в программе, хотя и не иметь визуального отображения.
В данной курсовой работе рассматривается разработка нового класса Auto с помощью специальной программы ООП VB 6 - Class Builder Utility.
auto управление caption программирование
1. Основные концепции объектно-ориентированного программирования
В состав Visual Basic 6 - разрабатываемой программы входят объекты, которые взаимодействуют между: собой, пользователем и операционной системой. Объекты имеют свойства и своё поведение, в процессе которого исполняются необходимые функции программы. Такими объектами являются, например, элементы управления - метки, текстовые поля, командные кнопки т.д. Для объектов, характерны такие основные понятия: свойства, метод, события.
- Свойства - признак (параметр) объекта, который определяет его качество. Например, свойствами объекта могут быть его размер, цвет, расположение т.д. Фактически, свойства - это переменные и константы, которые сохраняют значения параметров объекта;
- Метод - функция или процедура, с помощью которой над объектом выполняются определенные действия;
- События - способ взаимодействия объектов между собой. Объекты могут вызывать появление некоторых событий и выполнять заданные действия во время этих событий. Например, при нажатии ЛКМ на командную кнопку наступают события Command_Click и объект «Командная кнопка» выполняет действия, предусмотренные программистом в процедуре Procedure Command_Click.
Каждый объект, который существует в программе имеет свои, только ему присущии свойства (в противном случии было бы не возможно различать объекты между собой). В тоже время некоторые объекты могут иметь между собой общии признаки, поведение, события. Такие объекты объединяются в классы. Тоесть, класс - это абстракция, которая объединяет некоторые объекты в одну группу соответственно к ихним свойствам и поведению.
Класс является носителем (описанием) признаков, общих для всех объектов этого класса и характеризуется такими понятиями:
- наследование - любой объект класса имеет все свойства, методы и события этого класса;
- иерархия - классы создают иерархическую структуру, то есть один класс может быть созданным на основе другого и быть дочерним по отношению к предыдущему классу (отцовского);
- инкапсуляция («скрыть в капсулу») - скрывание объектов класса от внешнего окружения. Объекты взаимодействуют с внешним миром только через свои свойства, методы и события.
- полиморфизм - объекты разных классов могут использовать одноименные методы, которые работают по - разному для разных объектов.
2. Анализ задачи и выбор методов решения
2.1 Анализ функционирования разрабатываемого элемента управления ActiveX, его свойств и методов
При разработке прикладных программ часто возникает задача представления данных в виде простых списков, однако количество элементов в таких списках заранее не определено. Поэтому вся совокупность данных в одном списке может быть не видна полностью на экране. Частое же использование вертикальной полосы прокрутки в списке обычно неудобно.
Как правило, такая задача решается путем размещения на форме списка достаточно большого размера для того, чтобы были видны все данные в нем. Это приводит к загромождению диалогового окна и ухудшению его вида. Поскольку такая задача возникает довольно часто, целесообразно было бы разработать новый элемент управления Label на базе стандартного списка, но который бы автоматически увеличивал или уменьшал свои размеры при изменении количества элементов в нем.
Таким образом, проведенный анализ показывает, что поставленная задача более может быть более детально сформулирована следующим образом. Необходимо разработать элемент управления ActiveX, который состоит из стандартного элементов управления - метки (Label). Помимо стандартных свойств и методов такой элемент управления должен иметь новое свойство Caption, принимающее значения «истина» или «ложь». В случае истинного значения этого свойства, список должен автоматически увеличивать или уменьшать свои размеры при изменении количества элементов в нем. Это свойство должно быть доступно только для чтения и записи.
2.2 Анализ разрабатываемого класса, его свойств и методов
При создании баз данных, особенно при совместной работе группы программистов над одним проектом, важную роль играет разработка структур данных. Такая задача может быть удобно решена путем создания нового класса объектов, являющихся, по сути, записями в базе данных. При этом свойства этих объектов играют роль полей записи, а методы - действия, производимые над записями. Тогда база данных может быть представлена как коллекция объектов этого класса. Рассмотрим применение такого подхода для создания класса объектов и их коллекции при создании базы данных студентов академической группы.
Такой класс должен иметь следующие параметры.
Свойства:
1) Title - марка автомобиля. Тип данных - String (40 символов);
2) Year - год выпуска автомобиля. Тип данных - Integer;
3) Quality - состояние автомобиля (оценка за 10-ти бальной системой). Тип данных - Integer;
4) MaxSpeed - максимальная скорость автомобиля. Тип данных - Integer;
5) Price - цена автомобиля. Тип данных - Single.
Методы класса:
1) Show - отображает содержимое всех свойств объекта. Метод должен быть функцией, возвращающей символьную строку с информацией про абонента.
Выводы: в результате проведенного анализа поставленных задач были определены основные характеристики и параметры разрабатываемого элемента управления ActiveX и нового класса, что дает возможность приступить к программированию и тестированию необходимых свойств и методов.
3. Разработка элемента управления пользователя ActiveX
Важным ресурсом при разработке программ является возможность создания собственных элементов управления. Такие элементы управления имеют название «элемент управления ActiveX», или элементы управления пользователя (User Control).
В ООП программист работает с объектами, задавая необходимые значения их свойствам, применяя к объектам соответственные методы и процедуры обработки событий. Поэтому при создании собственного элемента управления ActiveX необходимо самому определить свойства, методы, события, которые связанны с этим объектом.
Процесс создания собственного элемента управления состоит из следующих этапов:
- проектирование элемента управления. В зависимости от его функционального назначения определяется перечень свойств, методов и событий;
- создание нового проекта на основе шаблона ActiveX Control. Придание необходимого внешнего вида элементу управления, который разрабатывается;
- программирование свойств, методов и событий, которые будет иметь элемент управления;
- тестирование и настройка элемента управления с помощью тестового проекта в среде Visual Basic 6. При этом должна быть проверена работа новых свойств, методов и событий.
Элементы управления, с помощью этой технологии, можно создавать, тремя способами:
1. Компоновка элемента управления с существующего элемента, т.е. соединение готовых элементов с добавлением необходимого программного кода;
2. Преобразование существующего элемента управления (модификация части его свойств, методов и событий);
4. Создание оригинального элемента управления
4.1 Создание элемента управления ActiveX
Создание элемента управления необходимо начать с запуска программы Visual Basic 6. В диалоговом окне New Project, которое появилось, необходимо выбрать шаблон ActiveX Control (если Visual Basic 6 уже загруженный, из пункта меню File выбрать подпункт New Project) (рис.1).
Рис.1. Диалоговое окно New Project с выбранным шаблоном ActiveX Control.
При этом будет создан новый проект с объектом UserControl, который имеет имя UserControl. Внешне объект UserControl очень похожий на форму, но в нем отсутствуют границы и стандартные элементы оконного интерфейса.
Этот объект служит контейнером для объектов, которые будут размещены при проектировании нового элемента управления ActiveX. Все свойства и события объекта можно использовать при программировании созданного элемента управления (рис.2).
Рис.2. Начальный вид объекта UserControl.
В окне свойств Properties в поле (Name) необходимо убрать надпись UserControl и ввести имя элемента управления - Label. Если окно свойств на экране отсутствует, необходимо нажать клавишу F4 (рис.3).
Рис.3. Ввод имя элемента управления.
После чего можно сохранить проект. В пункте меню File главного окна VB6 выбираем опцию Save Project As. В диалоговом окне Save As, что открылось, создаём папку из 4 - 5 букв со своей фамилией и открыть её. Первым будет сохранён элемент управления. По умолчанию система Visual Basic 6 предлагает такое имя файла, как и имя элемента управления. Тип файла - ctl (рис.4).
Нажимаем кнопку «Сохранить». Дальше система VB6 предложит сохранить проект в целом с именем Project1 (тип файла - vbp.). Нажимаем кнопку «Сохранить». Проект создано и сохранено.
Рис.4 Сохранение проекта с элементом управления.
Дальше размещаем в этом контейнере компонент Label. В соответствии с поставленной задачей необходимо выполнить такие действия:
- нажимаем ЛКМ на компонент Label1. В окне свойств Properties в поле Caption удаляем надпись «Label1». Уменьшаем метку до необходимого размера.
Так будет выглядеть элемент управления Label. Именно таким он будет появляться на форме в проектах, где он будет использоваться.
Внешний вид разработанного элемента управления показан на (рис.5). Он основан на стандартном элементе Label.
Рис.5. Внешний вид элемента управления Label.
Для программирования событий инициализации и изменения размеров элемента управления выбраны следующие параметры:
ширина списка равна ширине контейнера;
высота списка равна высоте контейнера;
горизонтальная и вертикальная координаты текстового поля относительно контейнера равны 0.
В соответствии с этими параметрами были составлены процедуры обработки событий инициализации и изменения размеров, приведенные ниже.
Private Sub UserControl_Initialize ()
' Процедура обработки события инициализации
' Начальное положение текстового поля
List1.Left = 0
List1.Top = 0
' Размеры текстового поля
List1.Height = UserControl.Height
List .Width = UserControl.Width
End Sub
Private Sub UserControl_Resize ()
' Процедура обработки событий и изменения размеров
UserControl_Initialize
End Sub
4.2 Программирование свойств
Размеры большинства элементов управления можно изменять с помощью мышки, или путём изменения значений свойств Height и Width. После изменения размеров элемента управления, он перерисовывается в новом виде автоматично. При разработке нового элемента управления ActiveX также необходимо позаботиться о том, чтобы его размеры изменялись корректно, а его компоненты - пропорционально размерам элемента управления.
Для регулирования размеров необходимо создать процедуры, которые будут обрабатывать события Initialize (Инициирования) и Resize (Изменение размеров).
Задать необходимые свойства элемента управления можно непосредственно в программном коде, записывая соответственные процедуры и функции. Наиболее удобно использовать специальную программу - Мастер элементов управления ActiveX (ActiveX Control Interface Wizard).
Для этого необходимо воспользоваться диспетчером надстроек Add - In Manager, который запускается при выборе пункта главного меню Add - Ins и подпункта Add - In Manager (рис 6).
Рис.6. Выбор пункта главного меню Add - Ins и подпункта Add - In Manager.
Открывается диалоговое окно диспетчера надстроек, которое необходимо добавить VB6 ActiveX Ctrl Interface Wizard. В списке надстроек «Avaliable Add - Ins» нажать ЛКМ на строку «VB6 ActiveX Ctrl Interface Wizard», а в поле «Load Behavior» поставить флажок в строке «Loaded / Unloaded» и нажать на кнопку OK (рис.7).
Рис.7. Добавление надстройки VB6 ActiveX Ctrl Interface Wizard.
Диалоговое окно исчезнет, но если теперь снова выбрать пункт Add - Ins главного меню, то в списке, который раскроется, появиться новый пункт - «ActiveX Ctrl Interface Wizard…» (рис.8). После нажатия на него ЛКМ Мастер элементов управления ActiveX (дальше Мастер) запускается на исполнение.
Рис.8. Выбор подпункта «ActiveX Ctrl Interface Wizard…» пункта Add - Ins главного меню.
Мастер исполняет свои действия в четыре шага. На первом шаге появляется окно «ActiveX Control Interface Wizard - Introduction» (Мастер элементов управления ActiveX - Вступление), в котором даётся общая информация о работе Мастера и рекомендации по работе с ним. Это окно не обязательное, для того, чтобы в дальнейшем оно не появлялось, необходимо поставить флажок в прямоугольнике возле строки «Skip this screen in the future» (Пропустить это окно в будущем) (рис.9).
Нажимаем кнопку Next и переходим к следующему этапу.
Рис.10. Окно Мастера - шаг 2.
На втором этапе появляется окно «ActiveX Control Interface Wizard - Select Interface Members» (Мастер элементов управления ActiveX - Выбор компонентов элемента управления) (рис.10).
Это окно содержит два списка. В левом списке Available Names (Доступные имена) приведены имена свойств, методов и событий, которые можно использовать в данном элементе управления. В правом списке (Выбранные имена) отобранные свойства, методы и события, присущи большинству элементов управления.
Между этими списками расположены четыре кнопки:
Кнопка добавляет выделенное имя свойства, метода или события с левого списка в правый, то есть дополняет список свойств, методов и событий моего элемента управления. (Имя выделяется нажатием на него ЛКМ).
Кнопка добавляет все имена из левого списка в правый список.
Кнопка удаляет выделенное имя с правого списка, то есть выделенные свойства, методы или события будут недоступны в элементе управления, который разрабатывается.
Кнопка удаляет все имена с правого списка, то есть элемент управления не будет иметь никаких свойств, методов и событий, кроме обязательных (Name, Height, Width т.д.) (рис.11).
Рис.11. Окно Мастера - шаг 2 - удалены имена всех свойств, методов и событий элемента управления.
Нажимаем на кнопку Next для перехода к третьему этапу, где определяем собственные свойства элемента управления.
На третьем шаге появляется окно Мастера «ActiveX Control Interface Wizard - Create Custom Interface Members» («Мастер элементов управления ActiveX - Создание собственных компонентов элемента управления») (рис.12).
Рис. 12
Это окно содержит список «My Custom Members» («Мои собственные компоненты»), изначально он пуст. Для добавления собственных свойств (методов, событий) нажимаем на кнопку «New…». Появляется окно «Add Custom Members» («Добавления собственного компонента») (рис.13).
В поле Name с помощью клавиатуры вводим имя свойства - «Caption».Это информирует Мастера, что именно этим именем будет называться - свойство, метод или событие. В рамке «Type» (Тип) нажимаем соответственно строку (Property - свойство, Method - метод, Event - событие). После ввода имени компонента и определения его типа, нажимаем кнопку OK.
Рис.13. Окно добавления собственного компонента.
Введённое имя появляется в списке «My Custom Members» («Мои собственные компоненты») (рис.14).
Рис.14. Окно Мастера (шаг 3) с введёнными именами свойств.
Нажимаем на кнопку Next для перехода к четвёртому этапу.
Появляется окно «ActiveX Control Interface Wizard - Set Mapping (Мастер элементов управления ActiveX - Установление отображения) (рис.15).
Рис.15. Окно Мастера - шаг 4.
Это окно содержит два поля. Левое поле «Public Name» (Глобальное имя) - это список имен собственных компонентов, которые были введены на предыдущем шаге. Правое поле «Maps to» (Отображение на) содержит комбинированный список «Control» (Элемент управления) и комбинированный список «Member» (Компонента).
На этом шаге можно установить связь между выделенным в левом поле свойством или свойством любого элемента управления, из которого состоит элемент управления, который разрабатывается. Разрабатываемый мною элемент управления - Label, состоит из стандартного элемента управления Label. С помощью этого окна я покажу, что свойство Caption элемента управления - это свойство Caption элемента управления Label1, который входит в состав Label1.
Для того, чтобы установить такое отображение, выделяем имя в левом поле, например, Caption (Нажимаем на него ЛКМ). В правом поле открываем список «Control» и выбираем значение Label1. Открываем ниже расположенный список «Member», в нём выбираем строку «Caption» (рис.16).
Рис.16. Отображение свойства Caption элемента управления Label на свойство Caption элемента управления Label1.
Нажимаем на кнопку Next для перехода к пятому этапу.
На пятом этапе появляется последнее окно. Мастер имеет всю необходимую информацию для автоматической генерации соответственного программного кода. Для завершения работы Мастера необходимо нажать на кнопку «Finish» (Конец) (рис.17).
Рис.17. Окно Мастера - шаг 5, последний.
После завершения работы Мастера можно просмотреть программный код.
Private Sub UserControl_Initialize ()
`Устанавливаем положение метки'
Label1.Left = 0
Label1.Top = 0
`Размер метки'
Label1.Width = UserControl.Width / 4
Label1.Height = UserControl.Height
End Sub
Private Sub UserControl_Resize ()
Call UserControl_Initialize
End Sub
`WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED `LINES!
'MappingInfo = Label1, Label1,-1, Caption
Public Property Get Caption () As String
Caption = Label1.Caption
End Property
Public Property Let Caption (ByVal New_Caption As String)
Label1.Caption () = New_Caption
PropertyChanged "Caption"
End Property
'Load property values from storage
Private Sub UserControl_ReadProperties (PropBag As PropertyBag)
Label1.Caption = PropBag.ReadProperty ("Caption", "Label1")
End Sub
'Write property values to storage
Private Sub UserControl_WriteProperties (PropBag As PropertyBag)
Call PropBag.WriteProperty ("Caption", Label1. Caption, "Label1")
End Sub
4.3 Тестирование элемента управления на этапе проектирования
Для тестирования разработанного элемента управления на этапе проектирования прикладной программы (design time) в среде ООП VB 6 был создан новый проект Standard EXE, к которому был подключен разработанный элемент управления. Соответствующий значок UserControl появился на панели стандартных элементов (рис.18)
Рис.18. Значок UserControl на панели стандартных элементов.
После двойного щелчка мыши на этом значке разработанный элемент управления был размещен на форме в исходном виде, что свидетельствует о том, что процедура инициализации отработала корректно и без сбоев (рис.19).
Рис.19. Размещение элемента управления на форме в исходном виде.
Таким образом, проведенное тестирование показало, что на этапе проектирования прикладной программы разработанный элемент управления работает корректно и в соответствии с заданными параметрами.
Выводы: на базе стандартного текстового поля разработан элемент управления Label с новым свойством Caption. Проведенное тестирование показало правильность работы этого элемента управления на этапах проектирования и выполнения прикладных программ, в которых он используется.
5. Разработка и тестирование нового класса
5.1 Создание класса пользователя
Среда разработки Visual Basic 6 даёт программисту возможность создавать собственные классы (классы пользователя), на базе которых он может строить конкретные объекты и использовать их в своей программе. Для создания класса пользователя используется модуль класса - специальный программный код, в котором содержится опись всех свойств, методов и событий класса. Модуль класса сохраняется как отдельный файл с расширением .cls.
Модуль класса добавляется к проекту с помощью команд главного меню Project / Add Class Module или соответствующей кнопки на панели инструментов (рис.5.1).
Рис. 5.1. Добавление модуля класса с помощью команд главного меню.
После добавления модуля класса в окно Project Explorer (Проводник проекта) появляется модуль класса, при нажатии на который, ЛКМ, открывается окно для ввода программного кода (рис.5.2).
Заметим, что в проектах типа Standard EXE классы имеют только одно стандартное свойство - имя класса (рис.3).
Создание классов пользователя является довольно сложной и трудоёмкой задачей. Поэтому Visual Basic 6 даёт возможность создавать собственные классы с помощью специальной программы - утилиты Class Builder (Class Builder Utility).
Рис. 5.2. Модуль класса в окне Проводника проекта.
Рис.5.3. Свойства модуля класса в окне Properties.
Для её подключения необходимо воспользоваться диспетчером надстроек Add - In Manager, который запускается при выборе пункта главного меню Add - Ins и подпункта Add - In Manager (рис.4).
Рис. 5.4. Выбор подпункта Add - In Manager пункта Add - Ins.
Открывается диалоговое окно диспетчера надстроек, которое необходимо добавить надстройку VB 6 Class Builder Utility. Для этого необходимо в списке надстроек «Available Add - Ins» нажав ЛКМ на строку «VB 6 Class Builder Utility», а в поле «Load Behavior» поставить флажок в строке «Loaded / Unloaded» и нажать на кнопку OK (рис.5.5).
Рис.5.5 Добавление надстройки VB 6 Class Builder Utility.
Диалоговое окно исчезнет, но если теперь снова выбрать пункт Add - Ins главного меню, то в списке, который раскроется, появляется новый подпункт - «Class Builder Utility…». После нажатия на него ЛКМ утилита Class Builder запускается на исполнение (рис.6).
Рис. 5.6. Выбор подпункта «Class Builder Utility…» пункта Add - Ins главного меню.
Открывается главное окно Class Builder Utility (рис.5.7).
Рис.5.7. Главное окно Class Builder Utility.
Для создания нового класса используется команда главного меню File / New / Class (рис.5.8).
Рис.5.8. Выбор команды File / New / Class для создания нового класса.
После её применения появляется окно «Class Module Builder» (рис.9), где на вкладке Properties в поле Name можно задать имя класса Auto.В поле Based On (Базируется на) показывает, является ли этот класс новым, или будет основан в другом классе (отцовском). Выбираем значение New Class (Новый класс) из списка, который откроется, и нажать на кнопку OK.
Соответствующий значок модуля класса с заданным именем появляется в левой части главного окна Class Builder Utility.
Теперь с помощью команд File / New / Property… или и значка на панели инструментов задаём свойства нового класса Auto.
В окно «Property Builder», которое появилось, задаются:
- имя свойства (поле Name);
- тип свойства (поле Data Type), то есть тип той переменной или константы, в которой будет храниться значение этого свойства;
- в поле Declaration указывается, является ли это свойство доступным для чтения или записи (Public Property) или оно будет дано, как глобальная переменная (Public Variable). Выбираем значение Public Property (рис.5.10).
Рис. 5.9. Окно Class Module Builder.
Рис. 5.10. Окно Public Property.
После нажатия на кнопку OK, новое свойство добавляется к классу. Повторяя эти действия несколько раз, вводим все необходимые свойства класса. Все свойства, его типы и доступ к ним по алфавиту отображается на вкладке Property главного меню Class Builder Utility. Разработка нового класса осуществлялась с помощью специальной программы системы ООП VB 6 - Class Builder Utility. В соответствии с поставленной задачей были заданы имя нового класса и его свойства (рис.5.11).
Рис. 5.12. Определение коллекции объектов класса Auto.
Далее с помощью этой же программы была определена коллекция объектов класса Auto (рис.5.12).
В результате для нового класса был сформирован следующий программный код, реализующий доступ к его свойствам и методам
'local variable (s) to hold property value (s)
Private mvarTitle As String 'local copy
Private mvarYear As Integer 'local copy
Private mvarQuality As Integer 'local copy
Private mvarMaxSpeed As Integer 'local copy
Private mvarPrice As Single 'local copy
Private mvarAutoCollection As AutoCollection
Public Property Get AutoCollection () As AutoCollection
If mvarAutoCollection Is Nothing Then
Set mvarAutoCollection = New AutoCollection
End If
Set AutoCollection = mvarAutoCollection
End Property
Public Property Set AutoCollection (vData As AutoCollection)
Set mvarAutoCollection = vData
End Property
Private Sub Class_Terminate ()
Set mvarAutoCollection = Nothing
End Sub
Public Sub Show ()
End Sub
Public Property Let Price (ByVal vData As Single)
'used when assigning a value to the property, on the left side of an assignment.
'Syntax: X.Price = 5
mvarPrice = vData
End Property
Public Property Get Price () As Single
'used when retrieving value of a property, on the right side of an assignment.
'Syntax: Debug.Print X.Price
Price = mvarPrice
End Property
Public Property Let MaxSpeed (ByVal vData As Integer)
'used when assigning a value to the property, on the left side of an assignment.
'Syntax: X.MaxSpeed = 5
mvarMaxSpeed = vData
End Property
Public Property Get MaxSpeed () As Integer
'used when retrieving value of a property, on the right side of an assignment.
'Syntax: Debug.Print X.MaxSpeed
MaxSpeed = mvarMaxSpeed
End Property
Public Property Let Quality (ByVal vData As Integer)
'used when assigning a value to the property, on the left side of an assignment.
'Syntax: X.Quality = 5
mvarQuality = vData
End Property
Public Property Get Quality() As Integer
'used when retrieving value of a property, on the right side of an assignment.
'Syntax: Debug.Print X.Quality
Quality = mvarQuality
End Property
Public Property Let Year (ByVal vData As Integer)
'used when assigning a value to the property, on the left side of an assignment.
'Syntax: X.Year = 5
mvarYear = vData
End Property
Public Property Get Year () As Integer
'used when retrieving value of a property, on the right side of an assignment.
'Syntax: Debug.Print X.Year
Year = mvarYear
End Property
Public Property Let Title (ByVal vData As String)
'used when assigning a value to the property, on the left side of an assignment.
'Syntax: X.Title = 5
mvarTitle = vData
End Property
Public Property Get Title () As String
'used when retrieving value of a property, on the right side of an assignment.
'Syntax: Debug.Print X.Title
Title = mvarTitle
End Property
В функцию Public Sub Show ( ) был добавлен программный код, реализующий работу метода Show.
Public Sub Show ()
Dim Sved As String
Sved = "Марка: " & vbTab & Title & vbCr
Sved = Sved & "Год выпуска: " & vbTab & Year & vbCr
Sved = Sved & "Состояние: " & vbTab & Quality & vbCr
Sved = Sved & "Макс. скорость: " & vbTab & MaxSpeed & vbCr
Sved = Sved & "Цена: " & vbTab & Price
MsgBox Sved
End Sub
Для коллекции объектов нового класса был сформирован следующий программный код.
'local variable to hold collection
Private mCol As Collection
Public Function Add (Title As String, Year As Integer, Quality As Integer, MaxSpeed As Integer, Price As Single, AutoCollection As AutoCollection, Optional sKey As String) As Auto
'create a new object
Dim objNewMember As Auto
Set objNewMember = New Auto
'set the properties passed into the method
objNewMember.Title = Title
objNewMember.Year = Year
objNewMember.Quality = Quality
objNewMember.MaxSpeed = MaxSpeed
objNewMember.Price = Price
Set objNewMember.AutoCollection = AutoCollection
If Len (sKey) = 0 Then
mCol.Add objNewMember
Else
mCol.Add objNewMember, sKey
End If
'return the object created
Set Add = objNewMember
Set objNewMember = Nothing
End Function
Public Property Get Item (vntIndexKey As Variant) As Auto
'used when referencing an element in the collection
'vntIndexKey contains either the Index or Key to the collection,
'this is why it is declared as a Variant
'Syntax: Set foo = x.Item (xyz) or Set foo = x.Item (5)
Set Item = mCol (vntIndexKey)
End Property
Public Property Get Count() As Long
'used when retrieving the number of elements in the
'collection. Syntax: Debug.Print x.Count
Count = mCol.Count
End Property
Public Sub Remove (vntIndexKey As Variant)
'used when removing an element from the collection
'vntIndexKey contains either the Index or Key, which is why
'it is declared as a Variant
'Syntax: x.Remove (xyz)
mCol.Remove vntIndexKey
End Sub
Public Property Get NewEnum () As IUnknown
'this property allows you to enumerate
'this collection with the For...Each syntax
Set NewEnum = mCol.[_NewEnum]
End Property
Private Sub Class_Initialize ()
'creates the collection when this class is created
Set mCol = New Collection
End Sub
Private Sub Class_Terminate ()
'destroys collection when this class is terminated
Set mCol = Nothing
End Sub
Переходим к заданию методов класса Auto. Для этого в главном меню окна «Class Builder Utility» перейдём во вкладку Methods и с помощью команд File / New / Methods… или кнопки на панели инструментов открываем окно «Method Builder» (рис.5.13).
Рис.5.13. Окно Method Builder.
Здесь в поле Name указывается имя метода. В поле Return Data Type задаётся тип данных значения, которое возвращается. Если в этом поле выбрать значение (None) (данные не возвращаются), то для реализации метода будет создана процедура Sub. Если же тип данных указать, то будет построена процедура Function.
В окне можно также задать список аргументов, которые передаются методу (поле Arguments). Справа от этого поля находятся кнопки, которые имеют такие назначения:
- добавляет аргумент в список;
- удаляет аргумент из списка;
- перемещает аргумент в список на одну позицию вверх;
- перемещает аргумент в список на одну позицию вниз;
Нажав на кнопку можно задать аргумент для метода. После появляется окно «Add Argument» (Добавить аргумент). Здесь можно добавлять методы и их аргументы в список аргументов (рис. 5.14).
Рис. 5.14. Окно добавления аргумента.
Теперь задаём события класса Auto. Для этого в главном меню окна «Class Builder Utility» перейдём во вкладку Events и с помощью команд File / New / Events… или кнопки на панели инструментов открываем окно «Event Builder» (рис.5.15).
Рис.5.15. Окно добавления события класса.
5.2 Тестирование нового класса и коллекции
Для тестирования нового класса и коллекции объектов этого класса был создан новый проект Standard EXE, к которому были подключены разработанные модули классов Auto и AutoCollection (рис. 5.16).
Рис. 5.16. Модули класса подключены к проекту.
Для ввода данных в коллекцию и тестирования коллекции путем реализации функции поиска по различным критериям на форме были размещены необходимые элементы управления (рис. 5.17).
Рис. 5.17. Форма для ввода данных в коллекцию объектов класса.
В раздел объявлений формы было помещено объявление глобальной переменной, задающей имя новой коллекции:
Public AutoColl As AutoCollection
Для удобства отладки и тестирования, данные для ввода в коллекцию сначала, были набраны в виде текстового файла. При нажатии кнопки «Ввести данные в коллекцию» происходит чтение файла и формирование коллекции. Программный код этой процедуры представлен ниже.
Private Sub Command1_Click ()
`Объявление вспомогательных переменных
Dim A1 As String, A2 As String, A3 As String, A4 As String, A5 As String
'Создание коллекции нового класса Auto
Set AutoColl = New AutoCollection
Open CurDir & "\Autos.txt" For Input As #1
While Not EOF (1)
Line Input #1, A1
Line Input #1, A2
Line Input #1, A3
Line Input #1, A4
Line Input #1, A5
AutoColl.Add A1, CInt (A2), CInt (A3), CInt (A4), CSng (A5), AutoColl
Wend
Close #1
MsgBox "Коллекция создана" & vbCr & "Объектов в коллекции = " & AutoColl.Count
End Sub
Ниже приведен программный код процедуры поиска для задач, перечисленных в списке. Здесь для вывода результата поиска используется метод Show нового класса Auto.
Private Sub Command2_Click ()
Dim YMin As Integer, PMax As Single, QMax As Integer, OptMax As Single, Opt As Single
Dim i As Integer, n As Integer
Select Case List1.ListIndex
Case 0
'Поиск самого старого автомобиля
YMin = AutoColl.Item (1).Year
n = 1
For i = 1 To AutoColl.Count
If YMin > AutoColl.Item(i).Year Then
YMin = AutoColl.Item (i).Year
n = i
End If
Next i
AutoColl.Item (n).Show
Case 1
' Поиск самого дорогого автомобиля
PMax = AutoColl.Item (1).Price
n = 1
For i = 1 To AutoColl.Count
If PMax < AutoColl.Item(i).Price Then
PMax = AutoColl.Item (i).Price
n = i
End If
Next i
AutoColl.Item (n).Show
Case 2
'Поиск автомобиля в наилучшем состоянии
QMax = AutoColl.Item (1).Quality
n = 1
For i = 1 To AutoColl.Count
If QMax < AutoColl.Item(i).Quality Then
QMax = AutoColl.Item(i).Quality
n = i
End If
Next i
AutoColl.Item (n).Show
Case 3
'Поиск оптимального варианта
OptMax = AutoColl.Item (1).Quality / AutoColl.Item (1).Price
n = 1
For i = 1 To AutoColl.Count
Opt = AutoColl.Item(i).Quality / AutoColl.Item (i).Price
If OptMax < Opt Then
OptMax = Opt
n = i
End If
Next i
AutoColl.Item(n).Show
End Select
End Sub
Данные, которые вводились в коллекцию, показаны в таблице (рис. 5.18)
Таблица (рис.5.18) Данные для ввода в коллекцию объектов класса Auto.
Марка автомобиля |
Год выпуска |
Состояние |
Максимальная скорость |
Цена |
|
Волга ГАЗ - 2110 |
1969 |
4 |
180 |
1500 |
|
Запорожец ЗАЗ - 600 |
1973 |
3 |
80 |
1000 |
|
Мерседес - 600 |
1999 |
7 |
280 |
50000 |
|
Toyota Corola |
2003 |
8 |
240 |
25000 |
Результаты тестирования представлены на рис.5.19 - 22
Рис.5.19. Результат поиска в коллекции по критерию «Самое старое авто».
Рис.5.20. Результат поиска в коллекции по критерию «Самое дорогое авто».
Рис.5.21. Результат поиска в коллекции по критерию «Наилучшее состояние».
Рис.5.22. Результат поиска в коллекции по критерию «Оптимальный вариант».
Из проведенного тестирования можно сделать вывод о том, что свойства и методы нового класса и коллекции работают корректно в соответствии с заданными параметрами.
Выводы: разработан новый класс Auto и коллекция объектов этого класса. Проведенное тестирование показало корректность их работы в соответствии с заданными параметрами.
Заключение
В результате проделанной работы был разработан новый компонент ActiveX (элемент управления Label с новым свойством Caption), новый пользовательский класс Auto и коллекция объектов этого класса в системе объектно-ориентированного программирования Visual Basic 6. Приведены результаты разработки и программирования нового элемента управления и нового класса объектов. Показаны результаты тестирования нового элемента управления и нового класса, демонстрирующие корректность их работы.
Разработанный элемент управления может быть использован при создании различных прикладных программ, использующих в своей работе простые списки данных с переменным числом элементов. Новый класс может быть полезен для разработки баз данных при совместной работе группы программистов над одним проектом.
Литература
1. Бондаренко Н.А. Программирование в среде Visual Basic 6. - Харьков: АТ «Бизнес Информ», 2004, 576 с.
2. Ананьев А.П, Федоров А.Н. Visual Basic 6. - СПб: БХВ - Петербург, 2001. - 624 с.
3. Алиев В.Я. Visual Basic. - М: СОЛОН - Р. - 2002, 384 с.
4. Волчёнков Н.Г. Программирование на Visual Basic 6. В 3 - х ч. - М: Инфра - М, 2000. - 238 с.
5. Глушаков С.В, Сурядный А.С. Программирование на Visual Basic 6.0. Х: ФОЛИО, 2002. - 500 с.
Приложение
Руководство пользователю
1. Включить компьютер.
2. Для выполнения данной курсовой работы необходимо иметь персональный компьютер IBM PC / AT - 486 или выше, под управлением операционной среды MS Windows.
3. На рабочем столе вы увидите значок Visual Basic 6, откройте её двойным щелчком ЛКМ.
4. Перед вами появится диалоговое окно New Project, вкладка New (Новый) содержит шаблоны и мастера, которые используются для создания нового проекта. В нашем случае надо выбрать: для создания класса Auto шаблон - Standard EXE, для создания элемента управления шаблон - ActiveX Control.
5. Для начала необходимо изучить материал данной курсовой работы, а затем приступить к выполнению практической части задания.
6. После создания класса Auto и элемента управления Label, необходимо сохранить в отдельной папке (File / Save Project As) - проект и форму.
7. Чтобы выйти из программы необходимо: сделать двойное нажатие ЛКМ по кнопке.
Размещено на Allbest.ru
Подобные документы
Функционирование разрабатываемого элемента управления ActiveX, его свойства и методы. Создание внешнего вида элемента управления. Программирование событий инициализации и изменения размеров. Тестирование элемента на этапе проектирования и выполнения.
курсовая работа [1,4 M], добавлен 07.04.2014Основные понятия объектно-ориентированного программирования в PHP5. Структурный и объектно-ориентированный подход. Класс как абстрактный тип. Реализация класса. Конструкторы и деструкторы. Функция l_visited_style изменение стиля посещенных ссылок.
курсовая работа [433,2 K], добавлен 13.06.2008Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.
курсовая работа [275,9 K], добавлен 22.12.2011Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.
курсовая работа [782,4 K], добавлен 26.05.2014Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.
контрольная работа [60,1 K], добавлен 17.01.2011Разработка объектно-ориентированной модели животного, которая объясняется построением модели игры Terrarium. Модель построена на базе концепций объектно-ориентированного программирования. Разработка компонента, моделирующего поведение животного.
курсовая работа [23,2 K], добавлен 30.11.2008Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.2014Основные операции с АВЛ-деревьями, добавление и удаление элемента из сбалансированного дерева. Эффективность сортировки вставкой в АВЛ–дерево и итераторы. Алгоритм реализации АВЛ–деревьев через классы объектно–ориентированного программирования.
курсовая работа [281,1 K], добавлен 29.11.2010Анализ объектно-ориентированного программирования, имитирующего способы выполнения предметов. Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Понятие классов, полей, методов, сообщений, событий.
контрольная работа [51,7 K], добавлен 22.01.2013Изучение принципов объектно-ориентированного программирования, в котором основными концепциями являются понятия классов и объектов. Свойства этого вида программирования: инкапсуляция, полиморфизм, наследование. Описание класса. Конструкторы и деструкторы.
презентация [74,8 K], добавлен 14.10.2013