- •Лабораторная работа №3
- •Общие рекомендации
- •Пример решения экономической задачи с разветвлением
- •1. Постановка задачи
- •2. Экономико-математическая модель
- •3. Алгоритм решения задачи
- •4. Структура данных
- •5. Интерфейс проекта и пользователя
- •6. Код проекта
- •В результате выполнения процедуры на форме (в текстовом поле TxtОплата) отобразится сумма к оплате за купленный товар с учетом скидок на объем покупки, тип покупателя и день недели.
- •В результате выполнения процедуры на форме (в текстовом поле TxtСдача) отобразится сдача и пользователю будет выдано сообщение о результатах покупки или необходимости доплаты за покупку.
- •7. Реализация проекта
- •8. Анализ проекта
- •9. Выполнение программы и анализ полученных результатов
- •Варианты индивидуальных заданий
- •Контрольные вопросы
6. Код проекта
Для реализации задачи в коде проекта необходимо предусмотреть обработку следующих процедур:
1) загрузка (инициализация) формы;
2) вычисление суммы к оплате за купленный товар;
3) расчет сдачи и вывод результата.
4) подготовка рабочего места к работе.
Тексты соответствующих процедур представлены ниже.
Загрузка формы (установка системного времени и даты)
На рис. 3.3 представлен программный код процедуры установки на форме системного времени и даты, ввода исходных данных (значений скидок и порогового значения стоимости), а также установка движка полосы прокрутки на текущий день недели. Данная реализуется при наступлении события – загрузка формы (нажатие на панели управления кнопки Run Sub/UserForm).
Private Sub UserForm_Initialize()
'Установка движка полосы прокрутки на текущий день недели
If Weekday(Date) = 1 Then ScrlНеделя.Value = 7 Else _
ScrlНеделя.Value = Weekday(Date) - 1
'Заполнение полей значения скидок
TxtОбычный.Text = 0
TxtОптовый.Text = 5
TxtЛьготный.Text = 10
TxtПорог.Text = 100
TxtПн.Text = 0
TxtВт.Text = 1
TxtСр.Text = 2
TxtЧт.Text = 3
TxtПт.Text = 4
TxtСб.Text = 5
TxtВс.Text = 6
TxtСкидка1.Text = 2
'Вывод системного времени и даты
Dim DtmSegodnya As Date
Dim DtmSejchas As Date
DtmSegodnya = Date
DtmSejchas = Time
TxtДата.Text = FormatDateTime(DtmSegodnya, vbShortDate)
TxtВремя.Text = FormatDateTime(DtmSejchas, vbLongTime)
End Sub
Рис. 3.3. Процедура загрузки формы
Вычисление суммы к оплате за купленный товар
На рис. 3.4 представлен программный код процедуры расчета суммы к оплате за купленный товар с учетом скидок при наступлении события – щелчок по кнопке на форме «РАСЧЕТ» (CmdРасчет).
Option Explicit
Public CurZena As Currency, CurSum As Currency, CurOpl As Currency, _
CurNalch As Currency, CurSdasha As Currency, CurPorog As Currency, _
SngSk1 As Single, SngSk2 As Single, SngSk3 As Single
Private Sub CmdРасчет_Click()
'Объявление переменных
Dim IntKolich As Integer
'Ввод исходных данных
CurZena = CCur(TxtЦена.Text)
CurPorog = CCur(TxtПорог.Text)
IntKolich = CInt(TxtКоличество.Text)
'Расчеты
CurSum = CurZena * IntKolich
'Однострочный оператор If
If (ChkСкидка.Value = True) And (CurSum >= CurPorog) _
Then SngSk1 = CCur(TxtСкидка1.Text) Else SngSk1 = 0
'Расширенный оператор If
If (OptОбычный.Value = True) Then
SngSk2 = CCur(TxtОбычный.Text)
ElseIf (OptОптовый.Value = True) Then
SngSk2 = CCur(TxtОптовый.Text)
Else
SngSk2 = CCur(TxtЛьготный.Text)
End If
'Оператор выбора Select Case
Select Case ScrlНеделя.Value
Case 1: SngSk3 = CCur(TxtПн.Text)
Case 2: SngSk3 = CCur(TxtВт.Text)
Case 3: SngSk3 = CCur(TxtСр.Text)
Case 4: SngSk3 = CCur(TxtЧт.Text)
Case 5: SngSk3 = CCur(TxtПт.Text)
Case 6: SngSk3 = CCur(TxtСб.Text)
Case 7: SngSk3 = CCur(TxtВс.Text)
End Select
CurOpl = CurSum * (1 - (SngSk1 + SngSk2 + SngSk3) / 100)
'Вывод результата
TxtОплата.Text = Format(CurOpl, "# ##0.00")
End Sub
Рис. 3.4. Процедура расчета суммы к оплате за купленный товар
