Прикладное приложение "Разработка проекта для создания нового класса 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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.