Visual Basic

Методические указания к курсовому проектированию в среде VISUAL BASIC

Разбить на страницы
Показывать лекцию целиком

Темой курсовых проектов является, как правило, разработка приложений в среде Visual Basic. Целью курсового проектирования является закрепление навыков работы с языком программирования Visual Basic и развитие навыков решения прикладных задач. Вопросами, с которыми может сталкиваться выпускник ВУЗа (речь идёт о практическом приложении дисциплины), являются:

  • создание баз данных, в том числе программное создание баз данных,
  • получение, модификация информации баз данных,
  • элементы объектно-базирующегося программирования; в данном случае целесообразно использование раздела "Работа с классами",
  • использование сетевых технологий, проведение репликации и синхронизации баз данных,
  • обмен данными между приложениями (например, Access -> Excel с целью выполнения специальной математической обработки и/или создания сводных таблиц) и так далее.
  • Эти вопросы (наряду с другими) рассматриваются в курсе "Язык программирования Visual Basic".

    Требования к пояснительной записке

    Пояснительная записка должна содержать:

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

    Перечень задач, которые могут рассматриваться в курсовом проектировании

  • создание таблицы заданной структуры с несколькими записями в заданной предметной области. Используется база данных формата Access,
  • выполнение запроса с вычисляемым полем,
  • передача данных в среду Visual Basic, использование элементов управления Data, TextBox, ListBox,
  • передача данных в среду Visual Basic, использование элементов управления Data, CommonDialog, MsFlexGrid,
  • решение вопроса, имеется ли в базе данных изделие "Х" (использование оператора LIKE ),
  • разбиение списка изделий на группы с использованием некоторого критерия,
  • предоставление данных в распоряжение пользователя сети, для этого следует выполнить проект под названием ActiveX Document.DLL; сделать вывод данных в сетку элемента управления MSFlexGrid,
  • создание главной реплики и реплики. Внесение изменения в таблицу базы данных в соответствии с продажей изделий (например, во втором квартале), синхронизация базы данных,
  • формирование SQL-запроса, передача требуемых полей в приложение Excel для проведения специальных вычислений (например, сделать сводную таблицу (для этого дополнить таблицу полями, если это необходимо); изменить в сводной таблице итоговую функцию или провести расчёты с применением абсолютных адресов ячеек),
  • использование технологии ADO,
  • использование объектно-базирующегося программирования.
  • Пример выполнения курсового проекта "Работа с классами"

  • Введение
  • Задание для курсового проектирования
  • Реализация задания
  • область проекта Class1
  • область проекта Form1
  • Работа пользователя с проектом
  • Заключение
  • Введение

    Объектно-базирующееся программирование - это методология разработки программ, основанная на использовании совокупности объектов, каждый из которых является реализацией определенного класса. Программный код и данные структурируются так, чтобы имитировалось поведение фактически существующих объектов. Содержимое объекта защищено от внешнего мира посредством инкапсуляции. Благодаря наследованию уже запрограммированные функциональные возможности можно использовать и для других объектов. Объекты являются программным представлением физических и/или логических сущностей реального мира. Они необходимы для моделирования поведения физических или логических объектов, которые они представляют. Для изменения поведения и состояния элементов управления используются их свойства, методы, поля и события. Классы задают структуру объектов. При программировании создаются объекты - представители классов. С другой стороны, классы составляют группы одноименных объектов. Внутренняя структура класса в Visual Basic передается объекту с использованием модуля класса. С использованием команды Project -> Add Class Module модуль класса можно добавить в проект. После добавления модуля класса выводится окно кода, в котором можно реализовать компоненты (свойства, поля, методы, события) класса.

    Задание для курсового проектирования

    Создать в предметной области "автомобили" класс с требуемой функциональностью (использовать компоненты класса: методы, поля и т.д.). Создать объект - экземпляр класса. Создать пример использования объектом компонентов класса.

    Реализация задания

    Приводится проект, дающий справку желающим приобрести автомобиль. Создан класс Class1, содержащий компоненты, определяющие название фирмы-изготовителя, модель автомобиля, его стоимость, изображение автомобиля и следующие технические характеристики:

  • тип двигателя (бензин/дизель),
  • число цилиндров/рабочий объём,
  • система питания (карбюратор/впрыскивание),
  • мощность (л.с),
  • максимальная скорость (км/час),
  • разгон 0 - 100 (км/час)/сек,
  • привод (передний/задний/4х4).
  • Далее создаётся экземпляр класса: Dim av As New Class1, использующий компоненты класса.

    Пользователю предлагается решить вопрос о необходимости покупки, выбрать фирму-изготовителя, ответить на вопрос о выводе изображения покупаемого автомобиля, либо его технических характеристик, либо обеих категорий одновременно (используются процедуры Property Get и Property Let, созданные в классе Class1 ), после чего программа адекватно реагирует: либо выводятся вышеперечисленные данные, либо выводится некоторое сообщение.

    Для реализации проекта нужно выполнить следующую последовательность действий:

  • добавить в стандартный проект модуль класса ( Project -> Add Class Module -> Class Module -> Открыть ),
  • создать:
  • методы класса. Четыре метода создаются в процедурах: Public Function Met1(), Public Function Met2(), Public Function Met3(), Public Function Met4() ( Tools -> Add Procedure -> ввести имя { Met1, Met2, Met3, Met4}-> выбрать Function -> выбрать Public -> OК ),
  • свойства класса. Свойства задаются с использованием процедур Property Get и Property Let ( Tools -> Add Procedure ?ввести имя (здесь - varian) -> выбрать Property -> выбрать Public -> OК ),
  • поля класса - avto, firma, model, stoim, pict, var, см. ниже.
  • создать на форме:
  • два элемента управления ComboBox с именами Combo1 и Combo2,
  • два элемента управления CommandButton с именами Command1 и Cоmmand2 ; значению свойства Caption объекта Command1 присвоить значение "OK", Cоmmand2 - "Exit",
  • элементы управления Label1 - Label4, значениям свойств Caption присвоить: Label1 - "Хотите ли Вы купить машину?", Label2 - "Выберите фирму-изготовитель", Label3 - "Хотите ли Вы увидеть изображение выбранного автомобиля или его технические характеристики ?", Label4 - "", свойству Visible объекта Label4 присвоить False,
  • массив элементов управления OptionButton (присвоить значения свойствам - Option1(0).Caption= "да", Option1(1).Caption= "нет" ),
  • массивы элементов управления PictureBox: Picture1(0) - Picture1(12) и Picture2(0) - Picture(12). Свойству Visible всех элементов управления присвоить значение False. Свойству Picture каждого элемента управления присвоить значение изображения соответствующего автомобиля и списка технических характеристик (эти списки создаются в приложении Excel, далее таблицы передаются в приложение Paint и сохраняются как рисунки).
  • ввести код в область класса (см. ниже "область проекта Class1"),
  • ввести код, данный ниже, в области:
  • General Declarations формы,
  • Combo1, событие Click,
  • Combo2, событие Click,
  • Command1, событие Click,
  • Command, событие Click,
  • Form, событие Load,
  • Form, событие Unload,
  • стартовать проект, получить справку о предполагаемой покупке.
  • /////////////////////////////область проекта Class1////////////////////////////////
    Public avto As Boolean 
    Public firma As String
    Public model As String
    Public stoim As String
    Public pict As String
    Dim var As String
    Private Sub Class_Initialize() ' инициализация полей класса
    avto = False: firma = "": model = "": stoim = "": var = ""
    End Sub
    Public Function Met1()
    ' Если пользователь нажал кнопку (OptionButton) - Да, то выполнить процедуры 
    ' Met2, Met3, Met4, результатом выполнения которых является вывод данных: 
    ' марка, стоимость, изображение и технические характеристики, иначе
    ' Met1 = False и выводится сообщение "Приносим свои извинения, мы даем 
    ' информацию для желающих купить автомобиль"
    If avto = True Then
    model = Met2()
    stoim = Met3()
    pict = Met4() ' поле pict определяет номера элементов массивов 
    ' PictureBox, см. Met4
    Met1 = True
    Else
    Met1 = False
    End If
    End Function
    ' после щелчка на кнопках Да/Нет (два переключателя OptionButton) и выбора
    ' фирмы из списка ComboBox c именем Combo1 определить марку автомобиля
    Public Function Met2()
    Select Case firma
    Case "AUDI": Met2 = "A6"
    Case "CITROEN": Met2 = "C5"
    Case "FORD": Met2 = "Focus"
    Case "HONDA": Met2 = "Accord"
    Case "HYUNDAI": Met2 = "Elanta"
    Case "JEEP": Met2 = "Grand Cherokee LTD"
    Case "LAND ROVER": Met2 = "Land Rover Discovery"
    Case "LEXSUS": Met2 = "RX330"
    Case "MITSUBISHI": Met2 = "Pajero III"
    Case "NISSAN": Met2 = "Primera(1.8)"
    Case "PEUGEOT": Met2 = "307 XR"
    Case "PORSCHE": Met2 = "Cayenne Turbo"
    Case "RENAULT": Met2 = "Laguna II"
    End Select
    End Function
    ' определить стоимость автомобиля в долларах США
    Public Function Met3()
    Select Case firma
    Case "AUDI": Met3 = "41500"
    Case "CITROEN": Met3 = "20100"
    Case "FORD": Met3 = "12430"
    Case "HONDA": Met3 = "33900"
    Case "HYUNDAI": Met3 = "13790"
    Case "JEEP": Met3 = "41690"
    Case "LAND ROVER": Met3 = "40850"
    Case "LEXSUS": Met3 = "65500"
    Case "MITSUBISHI": Met3 = "56640"
    Case "NISSAN": Met3 = "25100"
    Case "PEUGEOT": Met3 = "13808"
    Case "PORSCHE": Met3 = "140500"
    Case "RENAULT": Met3 = "22900"
    End Select
    End Function
    Public Function Met4()
    ' при выборе данных из списка ComboBox с именем Combo2 
    ' (после щелчка на кнопке "OК" ) определяется номер элемента массива
    ' PictureBox, соответствующий выбранной фирме-изготовителю и
    ' на экран позднее выводится соответствующая фотография
    ' и/или технические характеристики автомобиля
    Select Case firma
    Case "AUDI": Met4 = "0"
    Case "CITROEN": Met4 = "1"
    Case "FORD": Met4 = "2"
    Case "HONDA": Met4 = "3"
    Case "HYUNDAI": Met4 = "4"
    Case "JEEP": Met4 = "5"
    Case "LAND ROVER": Met4 = "6"
    Case "LEXSUS": Met4 = "7"
    Case "MITSUBISHI": Met4 = "8"
    Case "NISSAN": Met4 = "9"
    Case "PEUGEOT": Met4 = "10"
    Case "PORSCHE": Met4 = "11"
    Case "RENAULT": Met4 = "12"
    End Select
    End Function
    ' процедура Property Let используется для задания значения свойства, 
    ' Property Get - для считывания значения свойства
    Public Property Get varian() As String
    Select Case var
    Case Is = 0: varian = "pict"
    Case Is = 1: varian = "texn"
    Case Is = 2: varian = "all"
    End Select
    End Property
    Public Property Let varian(ByVal vNewValue As String)
    Select Case vNewValue
    Case "изображение": var = 0
    Case "технические параметры": var = 1
    Case Else: var = 2
    End Select
    End Property 
    /////////////////////////////////область проекта Form1/////////////////////////////
    Dim av As Class1 ' av - экземпляр класса
    Dim v As String 
    Dim i As Integer, j As Integer
    Private Sub Combo1_Click()
    ' сделать невидимыми элементы управления Label и Picture 
    ' (формирующие фотографии, технические характеристики, фирму, 
    ' марку и стоимость), для того, чтобы впоследствии на форму 
    ' выводились только те из них, которые определяет своими 
    ' действиями покупатель
    Label5.Visible = False
    For i = 0 To 12
    Picture1(i).Visible = False
    Picture2(i).Visible = False
    Next
    Dim ot As String ' переменная для хранения сообщения программы
    av.firma = Combo1.Text ' значение поля firma объекта av взять из 
    ' списка ComboBox с именем Combo1
    av.avto = Option1(0).Value ' значение поля avto объекта av взять
    ' из поля массива OptionButton 
    If av.Met1 = True Then
    ot = " "  CStr(av.firma)  vbCrLf: ot = ot  " "  vbCrLf
    ot = ot  " модель "  CStr(av.model)  vbCrLf: ot = ot  " "  vbCrLf
    ot = ot  " цена в $ "  CStr(av.stoim)  vbCrLf: ot = ot  " "  vbCrLf
    ot = ot  "Для получения более полной информации обращайтесь_
    по телефону 7077888"
    MsgBox Title:="Мы можем предложить", Prompt:=ot
    Else
    Label5.Visible = False
    Picture1(Val(av.pict)).Visible = False ' аргумент Picture1: (av.pict) 
    ' определяет индекс элемента массива PictureBox
    ot = "Приносим свои извинения, мы даем информацию для желающих_
    купить автомобиль"
    MsgBox Title:="Автосалон START", Prompt:=ot
    End If
    End Sub
    Private Sub Combo2_Click()
    av.varian = Combo2.Text ' см. процедуру Property Let. Присваиваем 
    ' свойству varian значение выбранные из списка ComboBox с именем Combo2
    End Sub
    Private Sub Command1_Click()
    Label5.Visible = False
    Label5.Caption = ""
    For i = 0 To 12
    Picture1(i).Visible = False
    Picture2(i).Visible = False
    Next
    v = av.varian ' см. процедуру Property Get. Переменной v присваиваем 
    ' значение свойства varian объекта av
    av.avto = Option1(0).Value
    If av.Met1 = True Then
    Select Case v
    Case "pict"
    Picture1(Val(av.pict)).Visible = True
    Case "texn"
    Picture2(Val(av.pict)).Visible = True ' технические характеристики
    ' хранятся как изображения в соответствующих элементах
    ' массива PictureBox2
    Case "all"
    Picture1(Val(av.pict)).Visible = True
    Picture2(Val(av.pict)).Visible = True
    Label5.Visible = True
    Label5.Caption = CStr(av.firma)  " "  CStr(av.model)  _
    vbCrLf  "цена в $ "  CStr(av.stoim)
    End Select
    Else
    Picture1(Val(av.pict)).Visible = False
    Picture2(Val(av.pict)).Visible = False
    MsgBox Title:="Автосалон START", Prompt:="Приносим свои_
    извинения, мы даем информацию для желающих купить автомобиль"
    End If
    End Sub
    Private Sub Command2_Click()
    MsgBox Title:="Автосалон START", Prompt: = "Мы всегда рады помочь!_ 
    Будем рады новой встрече!"
    End ' выход из программы после сообщения MsgBox.
    End Sub
    Private Sub Form_Load()
    Set av = New Class1 ' описание объектной переменной дано выше
    ' заполнение списка ComboBox с именем Combo1 названиями фирм
    Combo1.AddItem "AUDI"
    Combo1.AddItem "CITROEN"
    Combo1.AddItem "FORD"
    Combo1.AddItem "HONDA"
    Combo1.AddItem "HYUNDAI"
    Combo1.AddItem "JEEP"
    Combo1.AddItem "LAND ROVER"
    Combo1.AddItem "LEXSUS"
    Combo1.AddItem "MITSUBISHI"
    Combo1.AddItem "NISSAN"
    Combo1.AddItem "PEUGEOT"
    Combo1.AddItem "PORSCHE"
    ' заполнение списка ComboBox с именем Combo2 предложениями для 
    ' выбора данных в процедурах Property Get и Property Let
    Combo2.AddItem "изображение"
    Combo2.AddItem "технические параметры"
    Combo2.AddItem "все данные"
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    Set av = Nothing ' удалить объект из памяти
    End Sub

    Работа пользователя с проектом

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

    Далее покупатель может просмотреть или внешний вид, или технические характеристики, или одновременно обе категории, выбрав соответствующую строку во втором списке и сделав щелчок на кнопке OК (используются процедуры Property Get и Property Let ), см. рис.1, где дан результат работы программы при выборе строки "все данные" . При щелчке на кнопке Exit выводится сообщение: "Мы всегда рады помочь! Будем рады новой встрече!" и проводится выход из программы.

    (рис 1) Результат работы программы

    Заключение

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

    Страницы:

    Темой курсовых проектов является, как правило, разработка приложений в среде Visual Basic. Целью курсового проектирования является закрепление навыков работы с языком программирования Visual Basic и развитие навыков решения прикладных задач. Вопросами, с которыми может сталкиваться выпускник ВУЗа (речь идёт о практическом приложении дисциплины), являются:

  • создание баз данных, в том числе программное создание баз данных,
  • получение, модификация информации баз данных,
  • элементы объектно-базирующегося программирования; в данном случае целесообразно использование раздела "Работа с классами",
  • использование сетевых технологий, проведение репликации и синхронизации баз данных,
  • обмен данными между приложениями (например, Access -> Excel с целью выполнения специальной математической обработки и/или создания сводных таблиц) и так далее.
  • Эти вопросы (наряду с другими) рассматриваются в курсе "Язык программирования Visual Basic".

    Требования к пояснительной записке

    Пояснительная записка должна содержать:

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

    Перечень задач, которые могут рассматриваться в курсовом проектировании

  • создание таблицы заданной структуры с несколькими записями в заданной предметной области. Используется база данных формата Access,
  • выполнение запроса с вычисляемым полем,
  • передача данных в среду Visual Basic, использование элементов управления Data, TextBox, ListBox,
  • передача данных в среду Visual Basic, использование элементов управления Data, CommonDialog, MsFlexGrid,
  • решение вопроса, имеется ли в базе данных изделие "Х" (использование оператора LIKE ),
  • разбиение списка изделий на группы с использованием некоторого критерия,
  • предоставление данных в распоряжение пользователя сети, для этого следует выполнить проект под названием ActiveX Document.DLL; сделать вывод данных в сетку элемента управления MSFlexGrid,
  • создание главной реплики и реплики. Внесение изменения в таблицу базы данных в соответствии с продажей изделий (например, во втором квартале), синхронизация базы данных,
  • формирование SQL-запроса, передача требуемых полей в приложение Excel для проведения специальных вычислений (например, сделать сводную таблицу (для этого дополнить таблицу полями, если это необходимо); изменить в сводной таблице итоговую функцию или провести расчёты с применением абсолютных адресов ячеек),
  • использование технологии ADO,
  • использование объектно-базирующегося программирования.
  • Пример выполнения курсового проекта "Работа с классами"

  • Введение
  • Задание для курсового проектирования
  • Реализация задания
  • область проекта Class1
  • область проекта Form1
  • Работа пользователя с проектом
  • Заключение
  • Введение

    Объектно-базирующееся программирование - это методология разработки программ, основанная на использовании совокупности объектов, каждый из которых является реализацией определенного класса. Программный код и данные структурируются так, чтобы имитировалось поведение фактически существующих объектов. Содержимое объекта защищено от внешнего мира посредством инкапсуляции. Благодаря наследованию уже запрограммированные функциональные возможности можно использовать и для других объектов. Объекты являются программным представлением физических и/или логических сущностей реального мира. Они необходимы для моделирования поведения физических или логических объектов, которые они представляют. Для изменения поведения и состояния элементов управления используются их свойства, методы, поля и события. Классы задают структуру объектов. При программировании создаются объекты - представители классов. С другой стороны, классы составляют группы одноименных объектов. Внутренняя структура класса в Visual Basic передается объекту с использованием модуля класса. С использованием команды Project -> Add Class Module модуль класса можно добавить в проект. После добавления модуля класса выводится окно кода, в котором можно реализовать компоненты (свойства, поля, методы, события) класса.

    Задание для курсового проектирования

    Создать в предметной области "автомобили" класс с требуемой функциональностью (использовать компоненты класса: методы, поля и т.д.). Создать объект - экземпляр класса. Создать пример использования объектом компонентов класса.

    Реализация задания

    Приводится проект, дающий справку желающим приобрести автомобиль. Создан класс Class1, содержащий компоненты, определяющие название фирмы-изготовителя, модель автомобиля, его стоимость, изображение автомобиля и следующие технические характеристики:

  • тип двигателя (бензин/дизель),
  • число цилиндров/рабочий объём,
  • система питания (карбюратор/впрыскивание),
  • мощность (л.с),
  • максимальная скорость (км/час),
  • разгон 0 - 100 (км/час)/сек,
  • привод (передний/задний/4х4).
  • Далее создаётся экземпляр класса: Dim av As New Class1, использующий компоненты класса.

    Пользователю предлагается решить вопрос о необходимости покупки, выбрать фирму-изготовителя, ответить на вопрос о выводе изображения покупаемого автомобиля, либо его технических характеристик, либо обеих категорий одновременно (используются процедуры Property Get и Property Let, созданные в классе Class1 ), после чего программа адекватно реагирует: либо выводятся вышеперечисленные данные, либо выводится некоторое сообщение.

    Для реализации проекта нужно выполнить следующую последовательность действий:

  • добавить в стандартный проект модуль класса ( Project -> Add Class Module -> Class Module -> Открыть ),
  • создать:
  • методы класса. Четыре метода создаются в процедурах: Public Function Met1(), Public Function Met2(), Public Function Met3(), Public Function Met4() ( Tools -> Add Procedure -> ввести имя { Met1, Met2, Met3, Met4}-> выбрать Function -> выбрать Public -> OК ),
  • свойства класса. Свойства задаются с использованием процедур Property Get и Property Let ( Tools -> Add Procedure ?ввести имя (здесь - varian) -> выбрать Property -> выбрать Public -> OК ),
  • поля класса - avto, firma, model, stoim, pict, var, см. ниже.
  • создать на форме:
  • два элемента управления ComboBox с именами Combo1 и Combo2,
  • два элемента управления CommandButton с именами Command1 и Cоmmand2 ; значению свойства Caption объекта Command1 присвоить значение "OK", Cоmmand2 - "Exit",
  • элементы управления Label1 - Label4, значениям свойств Caption присвоить: Label1 - "Хотите ли Вы купить машину?", Label2 - "Выберите фирму-изготовитель", Label3 - "Хотите ли Вы увидеть изображение выбранного автомобиля или его технические характеристики ?", Label4 - "", свойству Visible объекта Label4 присвоить False,
  • массив элементов управления OptionButton (присвоить значения свойствам - Option1(0).Caption= "да", Option1(1).Caption= "нет" ),
  • массивы элементов управления PictureBox: Picture1(0) - Picture1(12) и Picture2(0) - Picture(12). Свойству Visible всех элементов управления присвоить значение False. Свойству Picture каждого элемента управления присвоить значение изображения соответствующего автомобиля и списка технических характеристик (эти списки создаются в приложении Excel, далее таблицы передаются в приложение Paint и сохраняются как рисунки).
  • ввести код в область класса (см. ниже "область проекта Class1"),
  • ввести код, данный ниже, в области:
  • General Declarations формы,
  • Combo1, событие Click,
  • Combo2, событие Click,
  • Command1, событие Click,
  • Command, событие Click,
  • Form, событие Load,
  • Form, событие Unload,
  • стартовать проект, получить справку о предполагаемой покупке.
  • /////////////////////////////область проекта Class1////////////////////////////////
    Public avto As Boolean 
    Public firma As String
    Public model As String
    Public stoim As String
    Public pict As String
    Dim var As String
    Private Sub Class_Initialize() ' инициализация полей класса
    avto = False: firma = "": model = "": stoim = "": var = ""
    End Sub
    Public Function Met1()
    ' Если пользователь нажал кнопку (OptionButton) - Да, то выполнить процедуры 
    ' Met2, Met3, Met4, результатом выполнения которых является вывод данных: 
    ' марка, стоимость, изображение и технические характеристики, иначе
    ' Met1 = False и выводится сообщение "Приносим свои извинения, мы даем 
    ' информацию для желающих купить автомобиль"
    If avto = True Then
    model = Met2()
    stoim = Met3()
    pict = Met4() ' поле pict определяет номера элементов массивов 
    ' PictureBox, см. Met4
    Met1 = True
    Else
    Met1 = False
    End If
    End Function
    ' после щелчка на кнопках Да/Нет (два переключателя OptionButton) и выбора
    ' фирмы из списка ComboBox c именем Combo1 определить марку автомобиля
    Public Function Met2()
    Select Case firma
    Case "AUDI": Met2 = "A6"
    Case "CITROEN": Met2 = "C5"
    Case "FORD": Met2 = "Focus"
    Case "HONDA": Met2 = "Accord"
    Case "HYUNDAI": Met2 = "Elanta"
    Case "JEEP": Met2 = "Grand Cherokee LTD"
    Case "LAND ROVER": Met2 = "Land Rover Discovery"
    Case "LEXSUS": Met2 = "RX330"
    Case "MITSUBISHI": Met2 = "Pajero III"
    Case "NISSAN": Met2 = "Primera(1.8)"
    Case "PEUGEOT": Met2 = "307 XR"
    Case "PORSCHE": Met2 = "Cayenne Turbo"
    Case "RENAULT": Met2 = "Laguna II"
    End Select
    End Function
    ' определить стоимость автомобиля в долларах США
    Public Function Met3()
    Select Case firma
    Case "AUDI": Met3 = "41500"
    Case "CITROEN": Met3 = "20100"
    Case "FORD": Met3 = "12430"
    Case "HONDA": Met3 = "33900"
    Case "HYUNDAI": Met3 = "13790"
    Case "JEEP": Met3 = "41690"
    Case "LAND ROVER": Met3 = "40850"
    Case "LEXSUS": Met3 = "65500"
    Case "MITSUBISHI": Met3 = "56640"
    Case "NISSAN": Met3 = "25100"
    Case "PEUGEOT": Met3 = "13808"
    Case "PORSCHE": Met3 = "140500"
    Case "RENAULT": Met3 = "22900"
    End Select
    End Function
    Public Function Met4()
    ' при выборе данных из списка ComboBox с именем Combo2 
    ' (после щелчка на кнопке "OК" ) определяется номер элемента массива
    ' PictureBox, соответствующий выбранной фирме-изготовителю и
    ' на экран позднее выводится соответствующая фотография
    ' и/или технические характеристики автомобиля
    Select Case firma
    Case "AUDI": Met4 = "0"
    Case "CITROEN": Met4 = "1"
    Case "FORD": Met4 = "2"
    Case "HONDA": Met4 = "3"
    Case "HYUNDAI": Met4 = "4"
    Case "JEEP": Met4 = "5"
    Case "LAND ROVER": Met4 = "6"
    Case "LEXSUS": Met4 = "7"
    Case "MITSUBISHI": Met4 = "8"
    Case "NISSAN": Met4 = "9"
    Case "PEUGEOT": Met4 = "10"
    Case "PORSCHE": Met4 = "11"
    Case "RENAULT": Met4 = "12"
    End Select
    End Function
    ' процедура Property Let используется для задания значения свойства, 
    ' Property Get - для считывания значения свойства
    Public Property Get varian() As String
    Select Case var
    Case Is = 0: varian = "pict"
    Case Is = 1: varian = "texn"
    Case Is = 2: varian = "all"
    End Select
    End Property
    Public Property Let varian(ByVal vNewValue As String)
    Select Case vNewValue
    Case "изображение": var = 0
    Case "технические параметры": var = 1
    Case Else: var = 2
    End Select
    End Property 
    /////////////////////////////////область проекта Form1/////////////////////////////
    Dim av As Class1 ' av - экземпляр класса
    Dim v As String 
    Dim i As Integer, j As Integer
    Private Sub Combo1_Click()
    ' сделать невидимыми элементы управления Label и Picture 
    ' (формирующие фотографии, технические характеристики, фирму, 
    ' марку и стоимость), для того, чтобы впоследствии на форму 
    ' выводились только те из них, которые определяет своими 
    ' действиями покупатель
    Label5.Visible = False
    For i = 0 To 12
    Picture1(i).Visible = False
    Picture2(i).Visible = False
    Next
    Dim ot As String ' переменная для хранения сообщения программы
    av.firma = Combo1.Text ' значение поля firma объекта av взять из 
    ' списка ComboBox с именем Combo1
    av.avto = Option1(0).Value ' значение поля avto объекта av взять
    ' из поля массива OptionButton 
    If av.Met1 = True Then
    ot = " "  CStr(av.firma)  vbCrLf: ot = ot  " "  vbCrLf
    ot = ot  " модель "  CStr(av.model)  vbCrLf: ot = ot  " "  vbCrLf
    ot = ot  " цена в $ "  CStr(av.stoim)  vbCrLf: ot = ot  " "  vbCrLf
    ot = ot  "Для получения более полной информации обращайтесь_
    по телефону 7077888"
    MsgBox Title:="Мы можем предложить", Prompt:=ot
    Else
    Label5.Visible = False
    Picture1(Val(av.pict)).Visible = False ' аргумент Picture1: (av.pict) 
    ' определяет индекс элемента массива PictureBox
    ot = "Приносим свои извинения, мы даем информацию для желающих_
    купить автомобиль"
    MsgBox Title:="Автосалон START", Prompt:=ot
    End If
    End Sub
    Private Sub Combo2_Click()
    av.varian = Combo2.Text ' см. процедуру Property Let. Присваиваем 
    ' свойству varian значение выбранные из списка ComboBox с именем Combo2
    End Sub
    Private Sub Command1_Click()
    Label5.Visible = False
    Label5.Caption = ""
    For i = 0 To 12
    Picture1(i).Visible = False
    Picture2(i).Visible = False
    Next
    v = av.varian ' см. процедуру Property Get. Переменной v присваиваем 
    ' значение свойства varian объекта av
    av.avto = Option1(0).Value
    If av.Met1 = True Then
    Select Case v
    Case "pict"
    Picture1(Val(av.pict)).Visible = True
    Case "texn"
    Picture2(Val(av.pict)).Visible = True ' технические характеристики
    ' хранятся как изображения в соответствующих элементах
    ' массива PictureBox2
    Case "all"
    Picture1(Val(av.pict)).Visible = True
    Picture2(Val(av.pict)).Visible = True
    Label5.Visible = True
    Label5.Caption = CStr(av.firma)  " "  CStr(av.model)  _
    vbCrLf  "цена в $ "  CStr(av.stoim)
    End Select
    Else
    Picture1(Val(av.pict)).Visible = False
    Picture2(Val(av.pict)).Visible = False
    MsgBox Title:="Автосалон START", Prompt:="Приносим свои_
    извинения, мы даем информацию для желающих купить автомобиль"
    End If
    End Sub
    Private Sub Command2_Click()
    MsgBox Title:="Автосалон START", Prompt: = "Мы всегда рады помочь!_ 
    Будем рады новой встрече!"
    End ' выход из программы после сообщения MsgBox.
    End Sub
    Private Sub Form_Load()
    Set av = New Class1 ' описание объектной переменной дано выше
    ' заполнение списка ComboBox с именем Combo1 названиями фирм
    Combo1.AddItem "AUDI"
    Combo1.AddItem "CITROEN"
    Combo1.AddItem "FORD"
    Combo1.AddItem "HONDA"
    Combo1.AddItem "HYUNDAI"
    Combo1.AddItem "JEEP"
    Combo1.AddItem "LAND ROVER"
    Combo1.AddItem "LEXSUS"
    Combo1.AddItem "MITSUBISHI"
    Combo1.AddItem "NISSAN"
    Combo1.AddItem "PEUGEOT"
    Combo1.AddItem "PORSCHE"
    ' заполнение списка ComboBox с именем Combo2 предложениями для 
    ' выбора данных в процедурах Property Get и Property Let
    Combo2.AddItem "изображение"
    Combo2.AddItem "технические параметры"
    Combo2.AddItem "все данные"
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    Set av = Nothing ' удалить объект из памяти
    End Sub

    Работа пользователя с проектом

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

    Далее покупатель может просмотреть или внешний вид, или технические характеристики, или одновременно обе категории, выбрав соответствующую строку во втором списке и сделав щелчок на кнопке OК (используются процедуры Property Get и Property Let ), см. рис.1, где дан результат работы программы при выборе строки "все данные" . При щелчке на кнопке Exit выводится сообщение: "Мы всегда рады помочь! Будем рады новой встрече!" и проводится выход из программы.

    (рис 1) Результат работы программы

    Заключение

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

    Вернуться к учебному плану