![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Реализация задания⇐ ПредыдущаяСтр 59 из 59
Приводится проект, дающий справку желающим приобрести автомобиль. Создан класс Class1, содержащий компоненты, определяющие название фирмы-изготовителя, модель автомобиля, его стоимость, изображение автомобиля и следующие технические характеристики: · тип двигателя (бензин/дизель), · число цилиндров/рабочий объём, · система питания (карбюратор/впрыскивание), · мощность (л.с), · максимальная скорость (км/час), · разгон 0 - 100 (км/час)/сек, · привод (передний/задний/4х4). Далее создаётся экземпляр класса: Dim av As New Class1, использующий компоненты класса. Пользователю предлагается решить вопрос о необходимости покупки, выбрать фирму-изготовителя, ответить на вопрос о выводе изображения покупаемого автомобиля, либо его технических характеристик, либо обеих категорий одновременно (используются процедуры Property Get и Property Let, созданные в классе Class1), после чего программа адекватно реагирует: либо выводятся вышеперечисленные данные, либо выводится некоторое сообщение. Для реализации проекта нужно выполнить следующую последовательность действий: 1. добавить в стандартный проект модуль класса (Project -> Add Class Module -> Class Module -> Открыть), 2. создать: o методы класса. Четыре метода создаются в процедурах: Public Function Met1(), Public Function Met2(), Public Function Met3(), Public Function Met4() (Tools -> Add Procedure -> ввести имя { Met1, Met2, Met3, Met4}-> выбрать Function -> выбрать Public -> OК), o свойства класса. Свойства задаются с использованием процедур Property Get и Property Let (Tools -> Add Procedure? ввести имя (здесь - varian) -> выбрать Property -> выбрать Public -> OК), o поля класса - avto, firma, model, stoim, pict, var, см. ниже. 3. создать на форме: o два элемента управления ComboBox с именами Combo1 и Combo2, o два элемента управления CommandButton с именами Command1 и Cоmmand2; значению свойства Caption объектаCommand1 присвоить значение " OK", Cоmmand2 - " Exit", o элементы управления Label1 - Label4, значениям свойств Caption присвоить: Label1 - " Хотите ли Вы купить машину? ", Label2 - " Выберите фирму-изготовитель", Label3 - " Хотите ли Вы увидеть изображение выбранного автомобиля или его технические характеристики? ", Label4 - " ", свойству Visible объекта Label4 присвоитьFalse, o массив элементов управления OptionButton (присвоить значения свойствам - Option1(0).Caption= " да", Option1(1).Caption= " нет"), o массивы элементов управления PictureBox: Picture1(0) - Picture1(12) и Picture2(0) - Picture(12). СвойствуVisible всех элементов управления присвоить значение False. Свойству Picture каждого элемента управления присвоить значение изображения соответствующего автомобиля и списка технических характеристик (эти списки создаются в приложении Excel, далее таблицы передаются в приложение Paint и сохраняются как рисунки). 4. ввести код в область класса (см. ниже " область проекта Class1"), 5. ввести код, данный ниже, в области: o General Declarations формы, o Combo1, событие Click, o Combo2, событие Click, o Command1, событие Click, o Command, событие Click, o Form, событие Load, o Form, событие Unload, 6. стартовать проект, получить справку о предполагаемой покупке. /////////////////////////////область проекта 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
|