Интерфейс с пользователем
Решение задачи производится с помощью формы, приведенной на рис. 5.3.
На форме слова «План» и «Факт» представляются надписями. Соответствующие исходные данные вводятся в текстовые поля. Вычисления производятся при нажатии кнопки «Вычислить». Результат помещается в вогнутую область под кнопкой. В зависимости от результата вычисления переменная sngОтклонение может принимать одно из следующих значений:
1) План перевыполнен на "0,00" %;
2) План недовыполнен на "0,00" %;
3) План выполнен на 100 % .
Здесь принято условное обозначение "0,00", которое означает, что результат sngОтклонение выводится с двумя разрядами в дробной части.
Область результата представляется надписью lblРезультат.
| |||
Рис. 5.3. Проект формы для решения задачи
Код программы
Процедура, которая обрабатывает событие "Щелчок на кнопке Вычислить", представлена ниже.
Option Explicit
Private Sub cmdВычислить_Click()
'Объявление переменных
Dim sngПроцент As Single, _
sngОтклонение As Single, _
strОтклонение As String
'Вычисление процента выполнения плана
sngПроцент = CSng(txtФакт) / CSng(txtПлан) * 100
'Вычисление процента отклонения от плана
If sngПроцент > 100 Then
sngОтклонение = sngПроцент - 100
strОтклонение = "План перевыполнен на " & _
Format(sngОтклонение, "0.00") & "%"
ElseIf sngПроцент < 100 Then
sngОтклонение = 100 - sngПроцент
strОтклонение = "План недовыполнен на " & _
Format(sngОтклонение, "0.00") & "%"
Else
strОтклонение = "План выполнен на 100%"
End If
'Вывод сообщения
lblРезультат = strОтклонение
End Sub
Реализация проекта
1. Запустить на выполнение VB для создания нового проекта.
2. Задать заголовок формы «Отклонение от плана» и ее имя frmОтклонение.
3. На форме создать надписи и текстовые поля для исходных данных План и Факт.
4. Создать кнопку «Вычислить».
5. Под кнопкой «Вычислить» создать надпись для области результата.
6. Ввести код процедуры, обрабатывающей нажатие кнопки «Вычислить».
7. Сохранить форму и проект в папке на диске D:.
Анализ проекта
Объявление переменных осуществляется в операторе Dim (явное объявление). Поскольку оператор занимает несколько строк, то для его продолжения на следующей строке использованы символы переноса «пробел» и «подчеркивание».
Для выполнения вычислений в правой части оператора присваивания используется функция CSng(), преобразующая строковое значение к типу Single.
Для реализации разветвления применяется расширенная форма условного оператора.
При формировании сообщения о результатах вычислений употребляется операция сцепления строк &. Для представления численного значения результата strОтклонение с точностью до двух разрядов в дробной части используется функция Format.
Вывод результата осуществляется путем присвоения надписи lblРезультат значения переменной strОтклонение, которая содержит текст сообщения.
Для вывода результата можно также использовать оператор MsgBox, который в простейшем случае имеет вид:
MsgBox <Сообщение>
Выполнение этого оператора приводит к появлению диалогового окна с указанным текстом (рис. 5.4). В нашем случае строку в коде
lblРезультат = strОтклонение
нужно заменить строкой
MsgBox strОтклонение
Рис. 5.4. Вывод результата с использованием оператора MsgBox
Оператор MsgBox можно также использовать для вывода сообщения об ошибке, если не задан план или он равен нулю (деление на ноль запрещено). Для обработки такой ошибки нужно в коде программы перед вычислением процента вставить следующий фрагмент:
'Обработка ошибки
If (txtПлан = "") Or (txtПлан = "0") Then
MsgBox "Не задан план"
Exit Sub
End If
Здесь использована краткая форма оператора If.
Проверка обоих условий основана на том, что значение текстового поля имеет тип String (константа "" обозначает пустую строку, а «0» – что в поле txtПлан введен ноль).
Условие после слова If выполняется (то есть имеется ошибка), если выполняется хотя бы одно из условий, поэтому два условия связаны логической операцией Or.
В случае обнаружения ошибки выводится сообщение оператором MsgBox, а затем происходит выход из процедуры обработки события нажатия на кнопку «Вычислить» благодаря наличию оператора Exit Sub. Поэтому при обнаружении ошибки вычисления не производятся, но выполнение приложения продолжается. Пользователь имеет возможность ввести значение плана или прекратить выполнение приложения, закрыв его окно.
Дата добавления: 2020-10-14; просмотров: 346;