- •Лабораторная работа №3
- •Общие рекомендации
- •Пример решения экономической задачи с разветвлением
- •1. Постановка задачи
- •2. Экономико-математическая модель
- •3. Алгоритм решения задачи
- •4. Структура данных
- •5. Интерфейс проекта и пользователя
- •6. Код проекта
- •В результате выполнения процедуры на форме (в текстовом поле TxtОплата) отобразится сумма к оплате за купленный товар с учетом скидок на объем покупки, тип покупателя и день недели.
- •В результате выполнения процедуры на форме (в текстовом поле TxtСдача) отобразится сдача и пользователю будет выдано сообщение о результатах покупки или необходимости доплаты за покупку.
- •7. Реализация проекта
- •8. Анализ проекта
- •9. Выполнение программы и анализ полученных результатов
- •Варианты индивидуальных заданий
- •Контрольные вопросы
В результате выполнения процедуры на форме (в текстовом поле TxtОплата) отобразится сумма к оплате за купленный товар с учетом скидок на объем покупки, тип покупателя и день недели.
Расчет сдачи и вывод результата
На рис. 3.5 представлен программный код процедуры расчета сдачи и вывода результата в виде сообщения при наступлении события – снятие фокуса с текстового поля TxtНаличные (для VB-6.0 – LostFocus, а для VBA – Exit).
Private Sub TxtНаличные_Exit(ByVal Cancel As _ MSForms.ReturnBoolean)
Dim StrSoobsh As String
Dim StrSoobsh1 As String
CurNalch = CCur(TxtНаличные.Text)
'If CurNalch < CurOpl Then MsgBox "Мало денег" Else
CurSdasha = CurNalch - CurOpl
'Вывод результата
StrSoobsh = "Вы приобрели товара на сумму " & _
Format(CurSum, "# ##0.00") & " грн." & vbCrLf & _
"Сидки сегодня: " & vbCrLf & _
"на стоимость: " & Format(SngSk1, "##0.00") & " %, " & _
"на тип покупателя: " & Format(SngSk2, "##0.00") & " %, " & _
"на день недели: " & Format(SngSk3, "##0.00") & " %, " & vbCrLf & _
"К оплате: " & Format(CurOpl, "# ##0.00") & " грн." & vbCrLf & _
"Наличные: " & Format(CurNalch, "# ##0.00") & " грн." & vbCrLf & _
"Сдача: " & Format(CurSdasha, "# ##0.00") & " грн." & vbCrLf & _
"Спасибо за покупку! Будем рады Вас видеть!"
StrSoobsh1 = IIf(CurSdasha < 0, "Недоплата!!! Нужно доплатить " & Format(-CurSdasha, "# ##0.00") & " гривень", StrSoobsh)
MsgBox StrSoobsh1, vbInformation, "Супермаркет Класс"
TxtСдача.Text = Format(CurSdasha, "# ##0.00")
If CurSdasha > 0 Then
LblРезультат.Caption = StrSoobsh
TxtНаличные.BackColor = vbWhite
Else
TxtНаличные.BackColor = vbRed
Exit Sub
End If
End Sub
Рис. 3.5. Процедура расчета сдачи и вывода результата
В результате выполнения процедуры на форме (в текстовом поле TxtСдача) отобразится сдача и пользователю будет выдано сообщение о результатах покупки или необходимости доплаты за покупку.
Подготовка рабочего места к обслуживанию очередного покупателя
На рис. 3.6 представлен программный код процедуры подготовки рабочего места к работе при наступлении события – щелчок по кнопке на форме «СБРОС» (CmdСброс).
'Процедура подготовки рабочего места к работе
Private Sub CmdСброс_Click()
TxtКоличество.Text = Empty
TxtЦена.Text = Empty
TxtОплата.Text = Empty
TxtНаличные.Text = Empty
TxtСдача.Text = Empty
LblРезультат.Caption = Empty
TxtНаличные.BackColor = vbWhite
End Sub
Рис. 3.6. Процедура подготовки рабочего места к работе
В результате выполнения процедуры на форме будут очищены текстовые поля TxtЦена, TxtКоличество, TxtОплата, TxtНаличные, TxtСдача и надписи LblРезультат.
7. Реализация проекта
1. Запустить на выполнение VBA для создания нового проекта.
2. Построить форму согласно проекту.
3. Дважды щелкнуть на форме и в открывшемся окне кода в заготовку процедуры UserForm_Initialize ввести ее тело (операторы).
4. Дважды щелкнуть на кнопке РАСЧЕТ и в открывшемся окне кода в заготовку процедуры CmdРасчет_Click ввести соответствующие операторы.
5. Дважды щелкнуть на текстовом поле TxtНаличные и в открывшемся окне кода в заготовке процедуры TxtНаличные_Click заменить событие Click на событие Exit из раскрывающегося списка событий и ввести соответствующие операторы в заготовку процедуры.
6. Дважды щелкнуть на кнопке СБРОС и в открывшемся окне кода в заготовку процедуры CmdСброс_Click ввести соответствующие операторы.
