- •Информатика
- •Цели проведения курсовой работы, содержание, сроки выполнения, правила оформления и критерии оценки
- •Описание программыVisual Basicдля вычисления значения и построения графика финансового показателя Разработка интерфейса приложения
- •Проверка исходных данных для расчета
- •Пример проверки параметра Pна допустимость введенного значения.
- •Расчет значения показателя
- •Принципы построения приближенного графика
- •Вычисление максимума функции
- •Установка системы координат
- •Рисование осей координат
- •Рисование ломаной линии графика
- •Задание
- •Пример разработанного приложения (описание экранной формы и назначения элементов управления)
- •Процедуры обработки событий (описание программного кода приложения)
- •Работа приложения
- •Построение диаграммы структуры расходов по смете
- •Разработка сценариев для расчета расходов при изменении цен на материалы и расценок на выполнение работ
- •Подбор параметров для расчета цен
- •Варианты заданий Варианты заданий по Visual Basic
- •Варианты заданий по Excel
- •Объект ремонта
- •Объект ремонта
- •Варианты оформления, задания word. Варианты №1, №8, №16
- •Варианты №2, №9, №15
- •Варианты №3, №14
- •Варианты №4, №11
- •Варианты №5, №12
- •Варианты №6, №13
- •Варианты №7, №10
- •Темы рефератов по актуальным направлениям развития вычислительной техники и программного обеспечения
- •Рекомендуемая литература
- •Титульный лист
- •Курсовая работа
- •Кондрашов Юрий Николаевич
Процедуры обработки событий (описание программного кода приложения)
Примечание: Количество и тип переменных выбирается в соответствии с вариантом задания и физическим смыслом, который параметры играют в формуле расчета финансового показателя.
Option Explicit
Dim p As Double ' первоначальная сумма
Dim i As Double ' ставка наращения
Dim n As Double ' срок ссуды
‘ Функция для расчета значений финансового показателя
Public Function s(ByVal p As Double, ByVal i As Double, _
ByVal n As Double) As Double
Const Msg As String = "Ошибка при вычислении показателя !"
' Функция для расчета финансового показателя
On Error GoTo err1 ' в случае ошибки - перейти на метку err1
s = p * (1 + i) ^ n ' функция наращения при
‘сложных процентах
On Error GoTo 0
Exit Function ' выйти из функции
err1: 'обработка ошибки
If Err.Number = 6 Then ' если ошибка - переполнение,
‘вывести на экран сообщение
MsgBox Msg, , "Переполнение"
Err.Clear ' очистка поля ошибки
Else
MsgBox Msg & Err.Number
Err.Clear
End If
' очистка формы
Picture1.Cls 'очистка PictureBox
Frame1.Enabled = False 'фрейм недоступен
Frame2.Enabled = False 'фрейм недоступен
End Function
‘кнопка с именем Command1 используется для
‘активизации рамки frame1
‘и подготовки формы к вводу исходных данных
‘для расчета показателя
Private Sub Command1_Click()
'После нажатия кнопки "Расчет показателя" становится
‘доступным фрейм "Расчет показателя",
‘остальные элементы формы становятся недоступными.
Frame1.Enabled = True 'фрейм доступен
Frame2.Enabled = False 'фрейм недоступен
mText1.SetFocus 'курсор переводится в
‘текстовое окно Text1
mText8.Text = "" 'очистка текста строки результата
End Sub
‘кнопка с именем Command2 используется
‘для активизации рамки frame2
‘и подготовки формы к вводу исходных данных
‘для построения графика
Private Sub Command2_Click()
'После нажатия кнопки "Расчет показателя" становится
‘доступным фрейм "Расчет показателя",
‘остальные элементы формы становятся недоступными.
Frame1.Enabled = False 'фрейм доступен
Frame2.Enabled = True 'фрейм недоступен
mText4.SetFocus 'курсор переводится в текстовое
‘окно Text1
mText8.Text = "" 'очистка текста строки результата
End Sub
‘кнопка с именем Command3 используется для
‘проверки введенных исходных данных
‘ для расчета и выполнения расчета показателя
Private Sub Command3_Click()
'проверка проверка исходных данных
'Проверка на пустоту
If mText1.Text = "" Then
MsgBox "Сумма кредита не задана.", vbExclamation + _
vbOKOnly, "Проверка исходных данных"
mText1.SetFocus
Exit Sub
End If
' проверка на число
If Not IsNumeric(mText1.Text) Then
MsgBox "Сумма кредита - не число.<" & mText1.Text & ">", _
vbExclamation + vbOKOnly, "Проверка исходных данных"
mText1.SetFocus
Exit Sub
End If
p = CDbl(mText1.Text)
' проверка на допустимость значения параметра
If p < 0 Then
MsgBox "Сумма кредита - должна быть неотрицательна .", _
vbExclamation + vbOKOnly, "Проверка исходных данных"
mText1.SetFocus
Exit Sub
End If
‘аналогично организуется проверка задаваемых пользователем
‘значений для других показателей mText2.Text,mText3.Text
'Проверка исходных данных закончена
mText8.Text = CStr(s(p, i, n)) ' в текстовое окно передать
‘результаты расчета показателя
End Sub
‘кнопка с именем Command4 используется для проверки
‘введенных исходных данных для расчета и выполнения
‘построения графика
Private Sub Command4_Click()
Dim maxfx As Double
Dim maxX As Double
Dim step_t As Double
Dim st As Double
'проверка исходных данных
If mText4.Text = "" Then
MsgBox "Сумма кредита не задана.", vbExclamation + vbOKOnly, _
"Проверка исходных данных"
mText4.SetFocus
Exit Sub
End If
If Not IsNumeric(mText4.Text) Then
MsgBox "Сумма кредита - не число.<" & mText4.Text & _
">", vbExclamation + vbOKOnly, "Проверка исходных данных"
mText4.SetFocus
Exit Sub
End If
p = CDbl(mText4.Text)
‘ аналогично организуется проверка для других параметров
‘расчета mText5.Text, mText6.Text
If Not IsNumeric(mText7.Text) Then
MsgBox "Шаг графика - не число.<" & mText7.Text & _
">", vbExclamation + vbOKOnly, "Проверка исходных данных"
mText7.SetFocus
Exit Sub
End If
step_t = CDbl(mText7.Text)
'Проверка исходных данных закончена
Picture1.Cls ' очистка элемента PictureBox
'зададим систему координат формы
'для чего найдем максимальное значение принимаемое
'функций на отрезке
' начальное значение выбираем произвольное
maxfx = s(p, i, 0) ' максимальное значение функции
‘ (до их вычисления)
For st = 0 To n Step step_t ' вычислим максимальное
‘значения функции
If maxfx < s(p, i, st) Then ' вычислим максимальное
‘значение функции
maxfx = s(p, i, st) '
maxx=st
End If '
Next st
'задание пользовательской системы координат в окне изображения
'проверяем на принадлежность диапазону значений
'0 и 1.401298E-45 to 3.402823E38
If (maxfx >= 1.401298E-45 And maxfx <= 3.402823E+38) Or _
maxfx = 0 Then
'все в порядке
maxfx = CSng(maxfx)
Else
MsgBox "Значение максимума функции не принадлежит” & _
“ допустимому диапазону!" & maxfx, vbCritical, ""
Exit Sub
End If
'создание системы координат
Picture1.Scale (CSng(0), CSng(maxfx))-(CSng(n), CSng(0))
' Рисуем оси координат
'устанавливаем толщину линии 6
Picture1.DrawWidth = 6 ' толщина точки равна 6
' рисуем ось X
Picture1.Line (0, 0)-(n, 0), RGB(0, 255, 0)
' рисуем ось Y
Picture1.Line (0, 0)-(0, maxfx), RGB(0, 255, 0)
'Устанавливаем толщину линии и координаты начала рисования ломаной линии
Picture1.DrawWidth = 1 ' толщина точки равна 1
Picture1.CurrentX = 0 ' задание координат пера
Picture1.CurrentY = s(p, i, 0) ' задание координат пера
' рисование ломаной линии графика
For st = 0 To n Step step_t
Picture1.DrawWidth = 5 ' толщина точки равна 5
' рисование точек построения графика
Picture1.PSet (Picture1.CurrentX, Picture1.CurrentY)
Picture1.DrawWidth = 1 ' толщина точки равна 1
Picture1.Line -(st, s(p, i, st)) ' рисование графика
Next st
' дорисовываем график до конечной точки ( если интервал "шаг по
‘ строения" укладывается не целое число раз
Picture1.Line -(n, s(p, i, n)) ' рисование графика
' выводим максимальное значение функции на экран
mLabel10.Caption = s(p, i, maxX) ' значение метки –
‘сумма наращенного платежа
mLabel10.Visible = True ' метка видима
End Sub
'При загрузке формы обе рамки становятся недоступными.
Private Sub Form_Load()
'При загрузке формы производится задание начального вида ‘формы и задание недоступности фреймов.
Frame1.Enabled = False 'фрейм недоступен
Frame2.Enabled = False 'фрейм недоступен
End Sub
Private Sub mText1_KeyPress(KeyAscii As Integer)
'После нажатия кнопки "Enter" производится перевод курсора в ‘следующее текстовое окно.
If KeyAscii = 13 Then ' если нажата клавиша Enter
mText2.SetFocus ' перевести курсор в текстовое окно
End If
End Sub
Private Sub mText2_KeyPress(KeyAscii As Integer)
'После нажатия кнопки "Enter" производится перевод курсора в следующее текстовое окно.
If KeyAscii = 13 Then ' если нажата клавиша Enter
mText3.SetFocus ' перевести курсор в текстовое окно
End If
End Sub
Процедуры обработки событий keyPress для элементов управления mtext3,mtext4,mtext5,mtext6,mtext7 аналогичны mText2_KeyPress.