Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по VB. Часть2.doc
Скачиваний:
23
Добавлен:
02.02.2015
Размер:
870.4 Кб
Скачать

Используемые переменные

Реквизит

Имя

Назначение

Ценаi

curЦена

Цена текущего товара, грн.

Количествоi

intКоличество

Количество текущего товара, шт.

i

i

Номер по порядку текущего товара

S

curS

Общая стоимость купленных товаров, грн.

6.3.5. Интерфейс с пользователем

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

Ввод цены товара i-того вида производится с помощью окна ввода, приведенного на рис. 6.2, а количества товара – с помощью аналогичного окна (рис. 6.3).

Перед вводом данных по товару очередного вида пользователь должен ответить на запрос с помощью окна сообщений (рис. 6.4). Полученный результат решения задачи выводится в диалоговом окне (рис. 6.5).

Рис. 6.2. Диалоговое окно ввода Рис. 6.3. Диалоговое окно ввода

цены вида товара количества вида товара

Рис. 6.4. Окно Рис. 6.5. Диалоговое окно

сообщений вывода результата

Поскольку ввод и вывод осуществляется с помощью специальных окон, на форме имеется только одна кнопка, нажатием на которую начинается процесс определения стоимости покупок (рис. 6.6).

Рис. 6.6. Форма для расчета стоимости покупок

6.3.6. Код программы

В процедуре, которая обрабатывает событие "Щелчок на кнопке «Вычислить»", используются следующие операторы:

Option Explicit

Private Sub cmdВычислить_Click()

'Описание переменных

Dim curЦена As Currency, _

intКоличество As Integer, _

i As Integer, _

curS As Currency

curS = 0 'Общая стоимость

i = 0 'Номер покупки

'Цикл по обработке покупок

Do While MsgBox("Будут еще покупки?", vbQuestion + vbYesNo, _

"Покупки") = vbYes 'Условие продолжения

i = i + 1

'Ввод цены и количества

curЦена = CCur(InputBox("Введите цену", _

i & "-й товар"))

intКоличество = CInt(InputBox("Введите количество", _

i & "-й товар"))

'Вычисление общей стоимости

curS = curS + curЦена * intКоличество

Loop 'Конец цикла

'Вывод результата

MsgBox "Стоимость всех покупок " _

& Format(curS, "0.00") & " грн.", , _

"Благодарим за покупки"

End Sub

6.3.7. Анализ проекта

Объявление переменных осуществляется в операторе Dim. Их имена и типы соответствуют параметрам, указанным в п. 6.3.4.

Для организации повторений по вводу и обработке данных для каждой покупки используется цикл Do Loop, поскольку заранее не известно количество покупок. Так как возможен случай, когда не произведено ни одной покупки, применяется конструкция While с верхним окончанием (цикл с предусловием).

В качестве условия повторения использовано сравнение

MsgBox("Будут еще покупки?", vbQuestion + vbYesNo, _

"Покупки") = vbYes

Действие встроенной функции MsgBox состоит в вызове окна сообщений, в котором выводится заданное сообщение (первый параметр) и заголовок (третий параметр). В окне сообщений могут выводиться различные рисунки и кнопки, которые определяются суммой соответствующих констант (второй параметр). Названия констант запоминать не нужно, т.к. они выводятся при задании соответствующего параметра в виде подсказок. Второй параметр можно опустить, тогда на окне сообщений выводится только кнопка «ОК».

Если же в окне сообщений несколько кнопок, то пользователь может нажать любую из них. В этом случае значением функции MsgBox будет соответствующая этой кнопке константа. Названия констант-результатов также выводятся в виде подсказок. В условии после слова While проверяется, нажата ли кнопка «Да» (MsgBox(…)=vbYes).

Функция MsgBox может использоваться как оператор вызова процедуры. В этом случае она указывается в отдельной строке, ее параметры не заключаются в скобки. В программе она так применена для вывода результата об общей стоимости покупок

Для ввода исходных данных цены и количества по каждому виду товара используется функция InputBox, которая вызывает диалоговое окно ввода, на котором выводится подсказка (первый параметр) и заголовок (второй параметр). Нужное значение вводится в поле ввода на этом окне. Ввод значения завершается нажатием кнопки «ОК».

Значением функции является введенное пользователем значение. Оно имеет строковый тип. Для преобразования в нужный числовой тип используются функции CСur (для цены – в денежный тип) и CInt (для количества – в целый тип).