
- •Введение
- •Теория программирования
- •Основы программирования
- •Базовые понятия объектно-ориентированного программирования
- •Возможности vb
- •Описание языка
- •Синтаксис
- •Типы данных
- •Описание данных
- •Массивы
- •Выражения
- •Арифметические выражения
- •Выражения отношения
- •Логические выражения
- •Строки и символьные выражения
- •Операторы
- •Оператор присваивания
- •Конструкции управления
- •Оператор перехода
- •Условный оператор
- •Оператор варианта Select Case
- •Оператор цикла с параметром For…Next
- •Цикл Do…Loop
- •Процедуры и функции
- •Пользовательские процедуры
- •Пользовательские функции
- •Стандартные функции
- •Среда разработки vb
- •Элементы среды разработки
- •Проект в vb
- •Создание приложений в vb
- •Разработка пользовательского интерфейса приложения
- •Основные элементы управления Visual Basic
- •Свойства, методы и процедуры обработки событий
- •Общие свойства
- •Текстовое окно
- •Командная кнопка
- •Переключатель
- •Комбинированный список
- •Встроенные окна диалога
- •Разработка кода программы
- •Запуск программы на выполнение, ее отладка и тестирование
- •Пример программы с элементами управления для принятия решений
- •Постановка задачи
- •Реализация задачи средствами Visual Basic
- •Пример программы с использованием пользовательских функций и элемента комбинированный список
- •Постановка задачи
- •Программная реализация задачи
- •Дополнение к задаче для самостоятельной реализации
- •Варианты заданий для самостоятельного выполнения Вариант 1. Тема "vb".
- •Вариант 2. Тема "vb".
- •Вариант 3. Тема "vb".
- •Вариант 4. Тема "vb".
- •Вариант 5. Тема "vb".
- •Вариант 6. Тема "vb".
- •Литература
Пример программы с элементами управления для принятия решений
Постановка задачи
Разработать программу для вычисления:
величины амортизации фондов линейным методом;
величины годовой амортизации фондов за определенный период.
Предусмотреть возможность изменения внешнего вида надписей и проверку корректности ввода данных.
Реализация задачи средствами Visual Basic
Приступая к реализации проекта на VB, необходимо представить алгоритм решения задачи:
во-первых, необходимо определиться, какими средствами можно реализовать данную задачу;
во-вторых, какие входные данные для этого необходимо иметь;
в-третьих, представить себе внешний вид пользовательского интерфейса.
Величина амортизации фондов линейным методом вычисляется по формуле:
А=
.
Величина годовой амортизации за определенный период вычисляется по формуле:
А=
.
В VB для решения данной задачи существуют две соответствующие встроенные функции:
SLN (Стоимость, Ликвидная_стоимость, Жизнь);
SYD (Стоимость, Ликвидная_стоимость, Жизнь, Период),
где величине Остаточная_Стоимость соответствует аргумент Ликвидная_Стоимость, а величине Время_Эксплуатации соответствует переменная Жизнь.
Перед выполнением вычислений необходимо проверить, являются ли числовыми входные данные, т.е. значения для величин Стоимости, Ликвидной_Стоимости, Жизни, а при вычислении величины годовой амортизации за определенный период – для величины Период. Для соблюдения корректности вычислений необходимо также выполнение следующих условий:
Стоимость не может быть меньше Ликвидной_Стоимости;
Период не может быть больше Жизни.
При помощи элемента Метка на форме размещаются необходимые комментарии. Для ввода необходимых данных используются элементы управления типа Текстовое поле. При помощи элементов Переключатели осуществляется выбор соответствующего метода вычисления величины амортизации. Флажки с именами "Жирный" и "Курсив" используются для изменения внешнего вида надписей. Флажки и переключатели помещаются в соответствующие элементы управления Рамка. Для реализации описанных выше функций необходимо в форму поместить элементы управления, представленные в таблице 5.2.
Вид пользовательского интерфейса проекта представлен на рис. 5.5.
Таблица 5.2.
Элементы управления программы «Расчет амортизации фондов» и значения их свойств
-
Элемент
Свойство
Значение
Форма
Caption
Вычисление величины амортизации
Текстовое поле
для переменой Stoim
Name
TextSt
Text
Enabled
True
Текстовое поле
для переменной Ostoim
Name
TextOst
Text
Enabled
True
Текстовое поле
для переменной TiE
Name
TextT
Text
Enabled
True
Текстовое поле
для переменной Per
Name
TextPer
Text
Enabled
True
Текстовое поле
для переменной Amort
Name
TextAm
Text
Enabled
False
Метка
для Стоимость
Name
LabelSt
Caption
Стоимость
Метка для Остаточная стоимость
Name
LabelOst
Caption
Остаточная стоимость
Метка для Время эксплуатации
Name
LabelT
Caption
Время эксплуатации
Метка для Период
Name
LabelPer
Caption
Период
Метка для Величина амортизации
Name
LabelAm
Caption
Величина амортизации
Кнопка для вычисления
Name
CmdCalc
Caption
Вычислить
Кнопка для выхода
Name
CmdExit
Caption
Выход
Рамка
Caption
Выбор метода расчета
Переключатель
Name
OptLin
Caption
Амортизация, расчитанная линейным методом
Value
True
Переключатель
Name
OptGod
Caption
Годовая амортизация за период
Value
False
Рамка
Caption
Выбор свойств шрифта
Флажок
Name
ChB
Caption
Жирный
Флажок
Name
ChI
Caption
Курсив
Рис. 5.5. Окно программы «Расчет амортизации фондов»
Полный текст программного кода приведен на рис.5.6.
Для проверки правильности работы программы на рис 5.5. представлены результаты расчета для годовой амортизации за определенный период. Для амортизации, рассчитанной линейным методом при тех же входных данных, величина амортизации должна быть равна 21666,67.
‘ Описание переменных:
Dim Stoim, OStoim, TiE, Per, Amort As Double
‘ Обработчик события кнопки «Вычислить»:
Private Sub CmdCalc_Click()
If Not IsNumeric(TextSt.Text) Then ‘ Проверка корректности входных
‘данных Стоимость при помощи встроенной функции IsNumeric
Beep ‘Генерация звукового сигнала
MsgBox "В поле Cтоимость не число !", vbOKOnly ‘Вывод
‘окна сообщения
Exit Sub ‘Выход из процедуры
End If
‘Сохранение в переменной Stoim Стоимости:
Stoim = Val(TextSt.Text)
‘ Проверка входных данных Остаточная стоимость:
If Not IsNumeric(TextOst.Text) Then
Beep
MsgBox "В поле Остаточная стоимость не число !", vbOKOnly
Exit Sub
End If
‘Сохранение в переменной OStoim Остаточной Стоимости:
OStoim = Val(TextOst.Text)
‘Проверка ограничений на входные данные:
If Stoim < OStoim Then
Beep
MsgBox "Стоимость не может быть меньше Остаточной стоимости !", _
vbOKOnly, "Error"
Exit Sub
End If
‘ Проверка входных данных Время эксплуатации:
If Not IsNumeric(TextT.Text) Then
Beep
MsgBox "В поле Время эксплуатации не число !", vbOKOnly, "Error"
Exit Sub
End If
‘Сохранение в переменной TiE значения для Время эксплуатации:
TiE = Val(TextT.Text)
If OptLin.Value = True Then ‘Проверка выбора метода расчета
Amort = SLN(Stoim, OStoim, TiE) ‘Вычисление амортизации линейным
‘ методом
Else
If Not IsNumeric(TextPer.Text) Then ‘ Проверка входных данных Период
Beep
MsgBox "В поле Период не число !", vbOKOnly, "Error"
Exit Sub
End If
Per = Val(TextPer.Text) ‘Сохранение в переменной Per значения Период
If TiE < Per Then ‘Проверка ограничений на входные данные
Beep
MsgBox "Время эксплуатации не может быть меньше Периода!", _
vbOKOnly, "Error"
Exit Sub
End If
Amort = SYD(Stoim, OStoim, TiE, Per) ‘Вычисление годовой амортизации
'за определенный период
End If
TextAm.Text = Str(round(Amort,2)) ‘Отображение вычисленного значения амортиз-и
‘Проверка выбора свойств шрифта:
If ChB.Value = 0 Then
LabelSt.Font.Bold = False : LabelOst.Font.Bold = False
LabelT.Font.Bold = False : LabelPer.Font.Bold = False
Else
LabelSt.Font.Bold = True : LabelOst.Font.Bold = True
LabelT.Font.Bold = True : LabelPer.Font.Bold = True
End If
If ChI.Value = 0 Then
LabelSt.Font.Italic = False
LabelOst.Font.Italic = False
LabelT.Font.Italic = False
LabelPer.Font.Italic = False
Else
LabelSt.Font.Italic = True
LabelOst.Font.Italic = True
LabelT.Font.Italic = True
LabelPer.Font.Italic = True
End If
End Sub
‘ Обработчик события кнопки «Выход»:
Private Sub CmdExit_Click()
End
End Sub
‘ Обработчик события переключателя «Аморт-я за определенный период»
Private Sub OptGod_Click()
LabelPer.Visible = True ‘Включение видимости для элемента LabelPer
TextPer.Visible = True ‘Включение видимости для элемента TextPer
If OptGod.Value = True Then OptLin.Value = False
End Sub
‘ Обработчик события переключателя «Линейная амортизация»
Private Sub OptLin_Click()
LabelPer.Visible = False ‘Отключение видимости для элемента LabelPer
TextPer.Visible = False ‘Отключение видимости для элемента TextPer
If OptLin.Value Then OptGod.Value = False
End Sub
‘ Обработчик события инициализации формы
Private Sub Form_Load()
LabelPer.Visible = False
TextPer.Visible = False
End Sub
Рис. 5.6. Листинг программы «Вычисление величины амортизации»