Вычисление суммы к оплате за купленный товар
На рис. 4.10 представлен программный код процедуры расчета суммы к оплате за купленный товар при наступлении события – щелчок по кнопке «Расчет» (CmdРасчет) на форме.
Option Explicit
'Объявление глобальных переменных Public CurZena, CurStoimost, CurNalich, CurSdacha As Currency
Private Sub CmdРасчет_Click() 'Объявление локальных переменных Dim IntKolichestvo, IntI As Integer Dim StrSoobschenie, StrVid, StrText As String CurStoimost = 0 'Подготовка к накоплению стоимости IntI = 0 Do 'Начало тела цикла IntI = IntI + 1 1: StrText = InputBox("Введите количество " & _ Format(IntI, "# ##0") & "-го товара", "СуперМаркет КЛАСС") If StrText = "" Then MsgBox "Что же ты делаешь? Повтори попытку!" GoTo 1 Else: IntKolichestvo = CInt(StrText) End If 2: StrText = InputBox("Введите цену " & Format(IntI, "# ##0 ") & _ "-го товара", "СуперМаркет КЛАСС") If StrText = "" Then MsgBox "Опять? Что же ты делаешь? Повтори попытку!" GoTo 2 Else: CurZena = CCur(StrText) End If CurStoimost = CurStoimost + CurZena * IntKolichestvo Loop While MsgBox("Будем еще покупать? ", vbQuestion + vbYesNoCancel, _ "СуперМаркет КЛАСС") = vbYes ' Завершение цикла при ответе "Нет" TxtОплата.Text = Format(CurStoimost, "# ##0.00") ' Нужно обеспечить согласование в предложениях Select Case IntI Case 1: StrVid = " вид товара" Case 2, 3, 4: StrVid = " вида товара" Case Else: StrVid = " видов товаров" End Select
'Вывод результатов StrSoobschenie = "Вы приобрели " & IntI & " " & StrVid & _ " на общую сумму " & _ Format(CurStoimost, "# ##0.00") & " гривень" LblРезультат.Caption = StrSoobschenie
End Sub
Рис. 4.10. Процедура расчета суммы к оплате за купленный товар
В результате выполнения процедуры на форме (в текстовом поле TxtОплата) отобразится сумма к оплате за купленный товар. Расчет сдачи и вывод результата На рис. 4.11 представлен программный код процедуры расчета сдачи и вывода результата в виде сообщения при наступлении события – снятие фокуса с текстового поля TxtНаличные (для VB-6.0 – LostFocus, а для VBA – Exit).
Private Sub TxtНаличные_Exit(ByVal Cancel As _ 'Расчет сдачи CurNalich = CCur(TxtНаличные.Text) CurSdacha = CurNalich – CurStoimost TxtСдача.Text = Format(CurSdacha, "# ##0.00") End Sub
Рис. 4.11. Процедура расчета сдачи и вывода результата В результате выполнения процедуры на форме (в текстовом поле TxtСдача) отобразится сдача.
Подготовка рабочего места к обслуживанию очередного покупателя На рис. 4.12 представлен программный код процедуры подготовки рабочего места к работе при наступлении события – щелчок по кнопке «Сброс» (CmdСброс) на форме.
'Подготовка рабочего места к работе со следующим покупателем Private Sub CmdСброс_Click() LblРезультат.Caption = Empty TxtНаличные.Text = Empty TxtОплата.Text = Empty TxtСдача.Text = Empty End Sub
Рис. 4.12. Процедура подготовки рабочего места к работе
В результате выполнения процедуры на форме будут очищены текстовые поля TxtОплата, TxtНаличные, TxtСдача и надписи LblРезультат.
Реализация проекта 1. Запустить на выполнение VBA для создания нового проекта. 2. Построить форму согласно проекту. 3. Дважды щелкнуть на кнопке Расчет и в открывшемся окне кода в заготовку процедуры CmdРасчет_Click ввести соответствующие операторы. 4. Дважды щелкнуть на текстовом поле TxtНаличные и в открывшемся окне кода в заготовке процедуры TxtНаличные_Click заменить событие Click на событие Exit из раскрывающегося списка событий и ввести соответствующие операторы в заготовку процедуры. 6. Дважды щелкнуть на кнопке Сброс и в открывшемся окне кода в заготовку процедуры CmdСброс_Click ввести соответствующие операторы.
Анализ проекта Процедура cmdРасчет_Click предназначена для вычисления стоимости приобретенных товаров с учетом предусмотренных скидок. Для организации повторений по вводу и обработке данных для каждой покупки используется цикл Do Loop, поскольку заранее не известно количество покупок. Так как возможен случай, когда не произведено ни одной покупки, применяется конструкция While с верхним окончанием (цикл с предусловием). В качестве условия повторения использовано сравнение
MsgBox("Будут еще покупки?", vbQuestion + vbYesNo, _ "Покупки") = vbYes
Действие встроенной функции MsgBox состоит в вызове окна сообщений, в котором выводится заданное сообщение (первый параметр) и заголовок (третий параметр). В окне сообщений могут выводиться различные рисунки и кнопки, которые определяются суммой соответствующих констант (второй параметр). Названия констант запоминать не нужно, т.к. они выводятся при задании соответствующего параметра в виде подсказок. Второй параметр можно опустить, тогда на окне сообщений выводится только кнопка «ОК». Если же в окне сообщений несколько кнопок, то пользователь может нажать любую из них. В этом случае значением функции MsgBoxбудет соответствующая этой кнопке константа. Названия констант-результатов также выводятся в виде подсказок. В условии после слова While проверяется, нажата ли кнопка «Да» (MsgBox(…) = vbYes). Для ввода исходных данных цены и количества по каждому виду товара используется функция InputBox, которая вызывает диалоговое окно ввода, на котором выводится подсказка (первый параметр) и заголовок (второй параметр). Нужное значение вводится в поле ввода на этом окне. Ввод значения завершается нажатием кнопки «ОК». Значением функции является введенное пользователем значение. Оно имеет строковый тип. Для преобразования в нужный числовой тип используются функции CСur (для цены – в денежный тип) и CInt (для количества – в целый тип). Процедура TxtНаличные_Exit запускается при переводе курсора в любое другое место формы, что соответствует снятию фокуса с поля TxtНаличные, и предназначена для расчета сдачи и вывода результатов. В процедуре подготовки рабочего места к работе CmdСброс_Click() использована константа Empty для обнуления результатов расчетов.
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (371)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |