Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_РАБ_СО_ СТР_ДАН_doc.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
538.11 Кб
Скачать

4.3. Совместное использование списков, флажков и переключателей

Рассмотрим возможности, которые предоставляют при формировании проектов флажки и переключатели на примере создания приложения для торговой фирмы, продающей автомобили марки Мазда.

Пример 2. Создать приложение – проект PR_3.

Вначале на форме 1 должны присутствовать следующие управляющие элементы (рис.4.2): а) вверху заголовок "Продажа автомобилей Мазда " (шрифт: стиль Times New Roman, размер – 16, начертание – жирный, видоизменение – подчеркнутый), б) во втором сверху ряду - два элемента Button с надписями "Восстановить изображение", в) в третьем ряду два элемента PictureBox c фотографиями автомобилей Мазда 3 - седан и Мазда 6 - седан, в) в ряду 4 - поясняющие надписи.

Рис.4.2. Первоначальный вид формы

Работать приложение должно следующим образом.

При выборе автомобиля (щелчком мыши по элементу PictureBox c его фотографией) его изображение и подпись под ним должны быть сохранены, вместо изображения и названия второго должна быть вставлена соответствующая панель элементов управления, содержащая описание базовой комплектации выбранного автомобиля и меню для выбора ее альтернативных или дополнительных составляющих с ценами. Кнопки с надписями "Восстановить изображение" возвращают все на место.

В приведенных ниже списках обязательный альтернативный выбор обозначен (а/в), дополнительный необязательный выбор обозначен (д/в).

1. Мазда 3 - седан:

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

б) объем двигателя - 1,6 л (120 тыс.руб), 2 л (150 тыс.руб) - (а/в),

в) КПП- механика (50 тыс.руб), автомат (100 тыс.руб) - (а/в),

г) бортовой компьютер - да (40 тыс.руб), /нет - (д/в),

д) климат-контроль- да (60.тыс руб), /нет - (д/в),

е) цвет - синий, морской волны, красный, вишневый - (а/в).

Внизу каждой панели должны быть кнопка расчет, при нажатии на которую при выборе всех обязательных элементов комплектации должен выводиться общий список (ComboBox) полной комплектации и стоимость автомобиля, при отсутствии выбора какого-либо обязательного пункта или выборе нескольких пунктов при альтернативе - указываться все ошибки.

Общая схема панели для выбора комплектации в первом случае представлена на рис.4.3.

2. Мазда 6 – седан:

а) базовая комплектация: передний привод, инжектор, электростеклоподъемники, центральный замок, автоматическая КПП - 700 тыс.руб,

б) объем двигателя - 1,6л (150 тыс. руб), 2л (200 тыс.руб), 2,5 л (220 тыс.руб) - (а/в),

в) система подготовки воздуха - кондиционер (55 тыс.руб), климат-контроль (80 тыс.руб) - (а/в),

г) бортовой компьютер - да (45 тыс.руб), /нет - (д/в),

д) отделка салона - стандарт (27 тыс.руб), кожано-тканевая (35 тыс.руб), кожа (53 тыс.руб) - (а/в),

е) цвет - белый, мокрый асфальт, синий - (а/в).

Рис.4.3. Общая схема панели для выбора комплектации по Мазда 3 – седан

Указания к выполнению. Для ускорения разработки необходимую текстовую и графическую информацию переносить из текста задания при помощи буфера.

I. Создаем новый проект с именем PR_3.

II. Создание начального вида формы и панелей для выбора комплектации.

Перетаскиваем на верхнюю часть поля формы элемент Label (по умолчанию получает имя Label1), в него помещаем заголовок.

Под ним в ряд размещаем два элемента Label (Label2 и Label3).

В третьем ряду помещаем элементы типа Picture­Box (Pic­ture­Box1 и PictureBox2) c изображениями автомобилей. Для этого картинки, имеющие формат bmp, взять из задания, вначале сохранить в файлах приложения Paint, затем при помощи свойства Image поместить в окна элементов, задавая для них свойство AutoSize = True и вручную задавая требуемое положение и размер на форме.

Под рисунками поместить элементы Label (Label4 и Label5) с подписями.

В нижнем ряду поместить элементы управления типа Panel (Panel1 и Panel2), задать ему при помощи мыши максимальные размеры. Аналогично создать панель Panel2 - для ввода информации по первому автомобилю.

Создать программный код для переключения вида диалогового окна.

1. В процедуру PictureBox1_Click добавить код (смысл действий – в комментариях):

PictureBox2.Visible = False 'Невидимость второго рисунка

Panel2.Visible = False 'Невидимость второго рисунка

Panel1.Visible = True 'Видимость второй панели

Panel1.Location = PictureBox2.Location 'Перемещение панели 1 на место рисунка 2

2. В процедуру Labe12_Click добавить код:

PictureBox1.Visible = True 'Видимость первого рисунка

Panel1.Visible = False 'Невидимость первой панели

Panel2.Visible = False 'Невидимость второй панели

3-4. Аналогично в процедуру PictureBox2_Click добавить код:

PictureBox1.Visible = False 'Невидимость первого рисунка

Panel1.Visible = False 'Невидимость первого рисунка

Panel2.Visible = True 'Видимость второй панели

Panel2.Location = PictureBox1.Location 'Перемещение панели 2 на место рисунка 1

В процедуру Label3_Click добавим код:

PictureBox2.Visible = True 'Видимость второго рисунка

Panel1.Visible = False 'Невидимость первой панели

Panel2.Visible = False 'Невидимость второй панели

III. Заполнение панелей для выбора комплектации и создание необходимолго программного кода. Рассмотрим решение на примере для панели Мазда-3. Для сокращения текста оглавления процедур приведены в сокращенном виде

1. Перетаскиваем на поле панели все необходимые элементы управления.

2. Затем создаем глобальные переменные, в которых сохраняем информацию о выборе элементов комплектации автомобиля. Переменные помещаем в начало описания класса Form1:

Public Class Form1

Public vol As Single 'Переменная для обозначения выбора объема двигателя

Public KPP As Integer 'Переменная для обозначения выбора коробки передач

Public KK As Integer 'Переменная для обозначения выбора климат-контроля

Public COMP As Integer 'Переменная для обозначения выбора компьютера

Public COL As Integer 'Переменная для обозначения выбора цвета

Public STR As String 'Переменная для формирования итогового текста

3. В начало описания метода PictureBox1_Click вставляем присваивание новым переменным нулевых значений, которым задаем отсутствие выбора соответствующих элементов комплектации. Также снимаем выделение с соответствующих кнопок формы, которое могло быть при предыдущем выборе комплектации:

Private Sub PictureBox1_Click(…

SUMP = 0

vol = 0

RadioButton1.Checked = False

RadioButton2.Checked = False

RadioButton3.Checked = False

RadioButton4.Checked = False

KPP = 0

COMP = 0

KK = 0

COL = 0

RadioButton5.Checked = False

RadioButton6.Checked = False

RadioButton7.Checked = False

RadioButton8.Checked = False

PictureBox2.Visible = False 'Невидимость второго рисунка

Panel2.Visible = False 'Невидимость второго рисунка

Panel1.Visible = True 'Видимость второй панели

Panel1.Location = PictureBox1.Location 'Перемещение панели 1 на место рисунка 2

4. Для отметки о выборе эелементов комплектации присваиваем ненулевые значения соответствующим переменным. Оглавления процедур приведены в сокращенном виде:

Private Sub RadioButton1_CheckedChanged(…

vol = 1.6

End Sub

Private Sub RadioButton2_CheckedChanged(…

vol = 2.0

End Sub

Private Sub RadioButton3_CheckedChanged(…

KPP = 1

End Sub

Private Sub RadioButton4_CheckedChanged(…

KPP = 2

End Sub

Private Sub CheckBox1_CheckedChanged(…

COMP = 1

End Sub

Private Sub CheckBox2_CheckedChanged(…

KK = 1

End Sub

Private Sub RadioButton5_CheckedChanged(…

COL = 1

End Sub

Private Sub RadioButton6_CheckedChanged(…

COL = 2

End Sub

Private Sub RadioButton7_CheckedChanged(…

COL = 3

End Sub

Private Sub RadioButton8_CheckedChanged(…

COL = 4

End Sub

5. Для анализа выполненного выбора в процедуру события кнопки, на которой помещен текст “Завершить выбор. Расчет полной комплектации”, добавляем следующий код (константа vbNewLine задает переход на новую строку в тексте):

Private Sub Label11_Click(…

Dim SUMP As Double 'сумарная стоимость выбранных элементов'

Dim Key As Integer 'вспомошательная переменная для оценки правильности выбора'

Dim Mess As String 'сообщение программы по итогам выбора'

Mess = " " 'начальное формирование сообщения'

Key = 0 'начальное задание правильности выбора'

SUMP = 400000 'присвоение значению суммы стоимости базовой куомплектации'

'анализ выбора объема двигателя'

If vol = 0 Then

Key = 1

Mess = Mess + "не задан объем двигателя"

End If

If vol = 1.6 Then SUMP = SUMP + 120000

If vol = 2.0 Then SUMP = SUMP + 150000

'анализ выбора коробки передач'

If KPP = 0 Then

Key = 1

Mess = Mess + vbNewLine + "не выбран тип коробки передач"

End If

If (KPP = 1) ^ (Key = 0) Then SUMP = SUMP + 50000

If (KPP = 2) ^ (Key = 0) Then SUMP = SUMP + 100000

If COMP = 1 Then SUMP = SUMP + 40000'анализ выбора компьютера'

If KK = 1 Then SUMP = SUMP + 60000'анализ выбора климат-контроля'

'анализ выбора цвета'

If COL = 0 Then

Key = 1

Mess = Mess + vbNewLine + "не выбран цвет "

End If

'итоговые действия при правильном выборе'

If Key = 0 Then

Label20.Text = "выбор закончен. сумма ="

Label22.Text = SUMP

End If

'итоговые действия при неправильном выборе'

If Key = 1 Then

Label20.Text = Mess+vbNewLine+"повторите выбор после выделения изображения"

End If

End Sub

IV. Аналогично сформировать панель выбора для Мазда-6 и создать необходимый программный код для ее элементов управления.