Автор работы: Пользователь скрыл имя, 17 Сентября 2014 в 20:56, курсовая работа
Целью настоящей работы является разработка программы для визуализации результатов статистической обработки экспериментальных данных.В ходе работы должен быть построен график визуализирующей зависимость температуры физического объекта от времени, регистрируемой тремя датчика на протяжении фиксированного промежутка времени. Исходные данные передаются на обработку из одного файла. Результаты исследования должны сохраняться в текстовом файле. Так же была создана электронная таблица, которая визуализирует данные и аппроксимирует их полиномиальной функцией 3-го порядка.
Введение 3
Теоретическая часть 3
Создание формы приложения 3
Пример работы с программой 13
Визуализация и аппроксимация данных в электронной таблице
Вывод 22
Код программы
ObsMin = min3 'нашли его'
End If
If Abs(ObsMax - srArif) > Abs(ObsMin - srArif) Then 'ищем max отклонение'
MaxOtkl = Abs(ObsMax - srArif)
Else
MaxOtkl = Abs(ObsMin - srArif)
frmObr.List2.AddItem Format(MaxOtkl, "##.## C") 'нашли максимальное отклонение от среднего'
End If
Dim s As Integer
Procent = srArif / 100 * 8 'нашли 8 процентов от средней температуры'
s = 0 'счетчик'
For i = 0 To UBound(Pokaz1)
TempProcent = Int(srArif) - Pokaz1(i) 'считаем'
If Abs(Int(TempProcent)) = Int(Procent) Then '.......'
s = s + 1
End If
Next i
For i = 0 To UBound(Pokaz2)
TempProcent = Int(srArif) - Pokaz2(i)
If Abs(Int(TempProcent)) = Int(Procent) Then
s = s + 1
End If
Next i
For i = 0 To UBound(Pokaz3)
TempProcent = Int(srArif) - Pokaz3(i) 'и для третьего'
If Abs(Int(TempProcent)) = Int(Procent) Then
s = s + 1
End If
Next i
frmObr.List3.AddItem s 'и вывели'
End Sub
Private Sub saveFile_Click()
Dim MyFile As Integer
MyFile = FreeFile
p = App.Path & "\" & "Data1" & ".txt"
Open p For Output As #MyFile
Do
For i = 0 To UBound(Pokaz1)
k = i
s = Val((Pokaz1(k)) + Val(Pokaz2(k)) + Val(Pokaz3(k))) / 3
k = k - 1
Print #MyFile, (Format(s, "#.##")) 'выгружаем среднюю температуру'
Next i
Loop Until k >= 0
For i = 0 To UBound(Pokaz1)
If Pokaz1(i) > Pokaz2(i) Then
A = Pokaz2(i)
Else
A = Pokaz1(i)
End If
If A > Pokaz3(i) Then
B = Pokaz3(i)
Else
B = A
End If
Print #MyFile, (Format(B, " ##")) 'выгружаем минимумы'
Next i
If MsgBox("Данные записаны", vbYes, " ") = vbYes Then
Unload Me
End If
End Sub
Private Sub Find1_Click()
Dim max1 As Integer, min1 As Integer
Dim i As Integer
k1 = 0: min1 = Pokaz1(0)
k2 = 0: max1 = Pokaz1(0)
For i = 0 To UBound(Pokaz1)
If Pokaz1(i) < min1 Then
k1 = i: min1 = Pokaz1(i) 'определяем минимум и номер элемента'
End If
If Pokaz1(i) > max1 Then
k2 = i: max1 = Pokaz1(i) 'определяем максимум и номер элемента'
End If
Next i
frmObr.max1.AddItem max1
frmObr.min1.AddItem min1
Dim MinMax1 As Integer, HourMax1 As Integer
Dim TempMin As Integer, TempHour As Integer
Dim Temp As String
MinMax1 = 7 'начальное значение минуты'
HourMax1 = 10 'начальное значение часы'
Temp = 18 * k2 / 60 'колдунство'
Temp = Temp + " " + "," 'добавляем пробел'
TempTime = Split(Temp, ",") 'разделяем на часы и минуты'
For i = 0 To UBound(TempTime)
TempHour = TempTime(0) 'записываем часы - 0 элемент'
If TempTime(1) = "" Then 'если 1 элементы - пробел'
TempMin = 0 'значит минут нет'
Else 'иначе'
TempMin = TempTime(1) 'минуты это 1 элемент'
End If
Next i
HourMax1 = HourMax1 + TempHour 'записываем часы'
MinMax1 = MinMax1 + 6 * TempMin 'записываем минуты'
If MinMax1 > 60 Then 'Цикл на случай'
HourMax1 = HourMax1 + 1 'если минут больше'
MinMaz1 = MinMax1 - 60 'чем 60'
End If
frmObr.HourMax1.AddItem HourMax1 'выводим часы'
frmObr.MinMax1.AddItem MinMax1 'выводим минуты'
Dim MinMin1 As Integer, HourMin1 As Integer
MinMin1 = 7 'ну и для минимума'
HourMin1 = 10 'и остальных 2 датчиков'
Temp = 18 * k1 / 60 'тоже самое'
Temp = Temp + " " + ","
TempTime = Split(Temp, ",")
For i = 0 To UBound(TempTime)
TempHour = TempTime(0)
If TempTime(1) = "" Then
TempMin = 0
Else
TempMin = TempTime(1)
End If
Next i
HourMin1 = HourMin1 + TempHour
MinMin1 = MinMin1 + 6 * TempMin
If MinMin1 > 60 Then
HourMin1 = HourMin1 + 1
MinMin1 = MinMin1 - 60
End If
frmObr.HourMin1.AddItem HourMin1
frmObr.MinMin1.AddItem MinMin1
End Sub
Private Sub find2_Click()
Dim max2 As Integer, min2 As Integer
k1 = 0: min2 = Pokaz2(0)
k2 = 0: max2 = Pokaz2(0)
For i = 0 To UBound(Pokaz2)
If Pokaz2(i) < min2 Then
k1 = i: min2 = Pokaz2(i)
End If
If Pokaz2(i) > max2 Then
k2 = i: max2 = Pokaz2(i)
End If
Next i
frmObr.max2.AddItem max2
frmObr.min2.AddItem min2
Dim MinMax2 As Integer, HourMax2 As Integer
Dim Temp As String
MinMax2 = 7
HourMax2 = 10
Temp = 18 * k2 / 60
Temp = Temp + " " + ","
TempTime = Split(Temp, ",")
For i = 0 To UBound(TempTime)
TempHour = TempTime(0)
If TempTime(1) = "" Then
TempMin = 0
Else
TempMin = TempTime(1)
End If
Next i
HourMax2 = HourMax2 + TempHour
MinMax2 = MinMax2 + 6 * TempMin
If MinMax2 > 60 Then
HourMax2 = HourMax2 + 1
MinMax2 = MinMax2 - 60
End If
frmObr.HourMax2.AddItem HourMax2
frmObr.MinMax2.AddItem MinMax2
Dim MinMin2 As Integer, HourMin2 As Integer
MinMin2 = 7
HourMin2 = 10
Temp = 18 * k1 / 60
Temp = Temp + " " + ","
TempTime = Split(Temp, ",")
For i = 0 To UBound(TempTime)
TempHour = TempTime(0)
If TempTime(1) = "" Then
TempMin = 0
Else
TempMin = TempTime(1)
End If
Next i
HourMin2 = HourMin2 + TempHour
MinMin2 = MinMin2 + 6 * TempMin
If MinMin2 > 60 Then
HourMin2 = HourMin2 + 1
MinMin2 = MinMin2 - 60
End If
frmObr.HourMin2.AddItem HourMin2
frmObr.MinMin2.AddItem MinMin2
End Sub
Private Sub find3_Click()
Dim max3 As Integer, min3 As Integer
k1 = 0: min3 = Pokaz3(0)
k2 = 0: max3 = Pokaz3(0)
For i = 0 To UBound(Pokaz3)
If Pokaz3(i) < min3 Then
k1 = i: min3 = Pokaz3(i)
End If
If Pokaz3(i) > max3 Then
k2 = i: max3 = Pokaz3(i)
End If
Next i
frmObr.max3.AddItem max3
frmObr.min3.AddItem min3
Dim MinMax3 As Integer, HourMax3 As Integer
Dim Temp As String
MinMax3 = 7
HourMax3 = 10
Temp = 18 * k2 / 60
Temp = Temp + " " + ","
TempTime = Split(Temp, ",")
For i = 0 To UBound(TempTime)
TempHour = TempTime(0)
If TempTime(1) = "" Then
TempMin = 0
Else
TempMin = TempTime(1)
End If
Next i
HourMax3 = HourMax3 + TempHour
MinMax3 = MinMax3 + 6 * TempMin
If MinMax3 > 60 Then
HourMax3 = HourMax3 + 1
MinMax3 = MinMax3 - 60
End If
frmObr.HourMax3.AddItem HourMax3
frmObr.MinMax3.AddItem MinMax3
Dim MinMin3 As Integer, HourMin3 As Integer
MinMin3 = 7
HourMin3 = 10
Temp = 18 * k1 / 60
Temp = Temp + " " + ","
TempTime = Split(Temp, ",")
For i = 0 To UBound(TempTime)
TempHour = TempTime(0)
If TempTime(1) = "" Then
TempMin = 0
Else
TempMin = TempTime(1)
End If
Next i
HourMin3 = HourMin3 + TempHour
MinMin3 = MinMin3 + 6 * TempMin
If MinMin3 > 60 Then
HourMin3 = HourMin3 + 1
MinMin3 = MinMin3 - 60
End If
frmObr.HourMin3.AddItem HourMin3
frmObr.MinMin3.AddItem MinMin3
End Sub
frmGrafick
Private Sub Command1_Click()
Picture1.Cls
Picture1.Scale (-3, 62)-(90, -8)
Picture1.Line (0, 0)-(80, 0)
Picture1.Line (80, 0)-(78, 2)
Picture1.Line (80, 0)-(78, -2)
For d = 0 To 75 Step 5
Picture1.PSet (d, 0)
Picture1.Print d
Next d
Picture1.Line (0, 0)-(0, 52)
Picture1.Line (0, 52)-(2, 50)
Picture1.Line (0, 52)-(-2, 50)
For d = 0 To 50 Step 5
Picture1.PSet (0, d)
Picture1.Print d
Next d
For Y = 5 To 80 Step 5
Picture1.Line (Y, 0)-(Y, 80), &H8000000B
Next Y
For X = 5 To 50 Step 5
Picture1.Line (0, X)-(80, X), &H8000000B
Next X
t = 0
For i = 0 To 13
Picture1.Line (t, Pokaz1(i))-(t + 5, Pokaz1(i + 1)), &HFF0000
t = t + 5
Next i
t = 0
For i = 0 To 13
Picture1.Line (t, Pokaz2(i))-(t + 5, Pokaz2(i + 1)), &H8E682
t = t + 5
Next i
t = 0
For i = 0 To 13
Picture1.Line (t, Pokaz3(i))-(t + 5, Pokaz3(i + 1)), &H1508E6
t = t + 5
Next i
End Sub
Информация о работе Визуализация результатов статистической обработки экспериментальных данных