
- •Лабораторная работа №4
- •Общие рекомендации
- •Основные типы циклов
- •Проектирование приложения на базе цикла со счетчиком
- •Проектирование приложения на базе условного цикла
- •Таким образом, в цикле с постусловием в отличие от цикла с предусловием, цикл всегда выполняется хотя бы один раз.
- •Пример решения экономической задачи на базе условного цикла
- •1. Постановка задачи
- •2. Экономико-математическая модель
- •3. Алгоритм решения задачи
- •4. Структура данных
- •5. Интерфейс проекта и пользователя
- •Основные свойства элементов управления на форме
- •6. Код проекта
- •В результате выполнения процедуры на форме (в текстовом поле TxtОплата) отобразится сумма к оплате за купленный товар.
- •7. Реализация проекта
- •8. Анализ проекта
- •9. Выполнение программы и анализ полученных результатов
- •Варианты индивидуальных заданий
- •Контрольные вопросы
Основные свойства элементов управления на форме
Элемент управления |
Основные свойства |
||
Name |
Caption |
Text |
|
Form1 |
FrmКасса |
Касса |
|
Label1 |
LblОплата |
Оплата |
- |
Label2 |
LblНаличные |
Наличные |
- |
Label3 |
LblСдача |
Сдача |
- |
Label4 |
LblРезультат |
- |
- |
TextBox1 |
TxtОплата |
- |
пусто |
TextBox2 |
TxtНаличные |
- |
пусто |
TextBox3 |
TxtСдача |
- |
пусто |
CommandButton1 |
CmdРасчет |
Расчет |
- |
CommandButton2 |
CmdСброс |
Сброс |
- |
В табл. 4.3 символом «-» указаны свойства, которые для соответствующего элемента управления отсутствуют.
Поскольку исходных данных, которые используются при решении задачи, может оказаться много (в зависимости от количества видов покупок), то вводить их значения с помощью текстовых полей на форме не представляется целесообразным. Для этой цели обычно используют специальные диалоговые окна ввода.
Ввод цены товара i -го вида производится с помощью окна ввода, приведенного на рис. 4.6, а количества товара – с помощью аналогичного окна (рис. 4.7).
Рис. 4.6. Диалоговое окно ввода цены вида товара
Перед вводом данных по товару очередного вида пользователь должен ответить на запрос с помощью окна сообщений (рис. 4.8).
Рис. 4.7. Диалоговое окно ввода количества вида товара
Рис. 4.8. Окно сообщений
После ввода значений цены и количества приобретенного товара необходимо нажать на кнопке «Расчет» (событие Щелчок). Происходит вычисление суммы к оплате за купленный товар с учетом скидок на объем покупки, тип покупателя и день недели и вывод результата расчета в текстовое поле TxtОплата.
Пользователь вводит в текстовое поле TxtНаличные количество наличных денег и в случае когда их достаточно для расчета в текстовое поле TxtСдача выводится значение сдачи, а в LblРезультат – сообщение о результатах покупки.
Полученный результат решения задачи выводится в диалоговом окне (рис. 4.9).
рис. 4.9 Результат решения задачи
При нажатии на кнопку «Сброс» происходит подготовка рабочего места к работе.
6. Код проекта
Для реализации задачи в коде проекта необходимо предусмотреть обработку следующих процедур:
1) вычисление суммы к оплате за купленный товар;
2) расчет сдачи и вывод результата.
3) подготовка рабочего места к работе.
Тексты соответствующих процедур представлены ниже.
Вычисление суммы к оплате за купленный товар
На рис. 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. Процедура расчета суммы к оплате за купленный товар