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


Среди исходных данных есть величина, общая для всей задачи – предельная сумма денег. Ее можно ввести с помощью текстового поля txtSПред на форме. Все остальные исходные данные (расходы по месяцам) вводятся с помощью окна ввода. Результат выводится в вогнутую область на форме, которая представляется надписью lblРезультат. Процесс ввода расхода денег по месяцам и вывода результатов начинается после щелчка на кнопке «Вычислить». Таким образом, задача решается с помощью формы, приведенной на рис. 6.9.

В области результата выводится сообщение "За первых i месяцев Вы предполагаете израсходовать SОбщ грн. Это больше предельной суммы на SОбщ - SПред" или сообщение "За год Вы предполагаете израсходовать SОбщ грн.". Здесь вместо i, SОбщ и SПред будут подставлены соответствующие значения.

Ввод данных по расходам за i-тый месяц производится с помощью окна ввода (рис. 6.10).

 

 

Рис. 6.9. Форма дляРис. 6.10. Окно для ввода

Решения задачи расходов

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

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

 

Option Explicit

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

Const KМес = 3 'Количество месяцев при планировании

Dim curРасход As Currency, _

curSОбщ As Currency, _

curSПред As Currency, _

i As Integer

'Ввод предельной суммы

curSПред = CCur(txtSПред)

curSОбщ = 0

i = 0

'Планирование расходов по месяцам

Do

i = i + 1

curРасход = CCur(InputBox("Введите расходы", _

Str(i) & "-й месяц"))

curSОбщ = curSОбщ + curРасход

Loop Until (i = KМес) Or (curSОбщ > curSПред)

'Подготовка и вывод результата

If curSОбщ > curSПред Then

lblРезультат = "За первых " & Str(i) _

& " месяцев Вы предполагаете израсходовать " _

& Format(curSОбщ, "0.00") & " грн." & vbCrLf _

& "Это больше предельной суммы на" _

& Format(curSОбщ - curSПред, "0.00") & " грн."

Else

lblРезультат = _

"За год Вы предполагаете израсходовать " _

& Format(curSОбщ, "0.00") & " грн."

End If

End Sub

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

В проекте использована константа КМес для определения количества месяцев, в течение которых будут производиться расходы планируемых финансов. Это позволяет быстро изменять период планирования. Например, при отладке программы достаточно взять 3 месяца, а для эксплуатации программы – 12 месяцев.

Перед началом ввода планируемых расходов производится преобразование предельной суммы, введенной в текстовое поле txtSПред, к денежному типу, поскольку дальнейшие действия будут выполняться с числовыми данными.

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

Условием выхода из цикла является или окончание планируемого периода (i = КМес), или превышение предельной суммы денег (curSОбщ > curSПред), или то и другое. Поэтому эти два условия объединены логической операцией Or. Так как при выполнении хотя бы одного из этих условий должно прекращаться дальнейшее планирование расходов (выход из цикла), то в операторе цикла используется ключевое слово Until.

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

В каждом из случаев сформированные строки ответов присваиваются надписи lblРезультат, что обеспечивает их вывод на форму в область, отведенную для результата.



Дата добавления: 2020-10-14; просмотров: 343;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.