←предыдущая следующая→
1 2 3
Приложение 3
Программная реализация функций системы
1. Реализация функций расчета трудоемкости разработки ПС
'Значение Кн из таблицы 2.1
'Только для чтения
Public Property Get Kn() As Double
Kn = da.table21GetKn(novelty, isNewComp, isNewOS)
End Property
'Определение значения Li из таблицы 2.2
Public Property Get Li(index As Integer) As Double
If checkStage(index) Then
Li = da.table22GetLi(novelty, casetech, index)
Else
Li = 0
End If
End Property
'Значение Кт из таблицы 2.3
Public Property Get Kt() As Double
Kt = da.table23GetKt(usage)
End Property
'Добавление Ki из таблицы 2.6
Public Sub setKi(ByVal index As Integer)
KiPr(index) = da.table26GetKi(index)
End Sub
'Удаление Ki
Public Sub unsetKi(ByVal index As Integer)
KiPr(index) = 0#
End Sub
'Проверка добавлено Ki или нет
Public Function checkKi(ByVal index As Integer) As Boolean
If KiPr(index) = 0# Then
checkKi = False
Else
checkKi = True
End If
End Function
' Определение значения Ki по таблице 2.6
Public Property Get Ki(index As Integer) As Double
Ki = da.table26GetKi(index)
End Property
Public Property Get Ksl() As Double
Dim i As Integer
Ksl = 0#
For i = 1 To 4
Ksl = Ksl + KiPr(i)
Next i
Select Case CountCharPS
Case 2
setKi (5)
Ksl = Ksl + KiPr(5)
Case 3
setKi (6)
Ksl = Ksl + KiPr(6)
Case Is > 3
setKi (7)
Ksl = Ksl + KiPr(7)
End Select
Ksl = Ksl + 1
End Property
'Добавление CharPS из таблицы 2.5
Public Sub setCharPS(ByVal index As Integer)
CharPSPr(index) = index
End Sub
'Удаление CharPS
Public Sub unsetCharPS(ByVal index As Integer)
CharPSPr(index) = 0#
End Sub
'Проверка добавлено CharPS или нет
Public Function checkCharPS(ByVal index As Integer) As Boolean
If CharPSPr(index) = 0# Then
checkCharPS = False
Else
checkCharPS = True
End If
End Function
Public Property Get CountCharPS() As Double
Dim i As Integer
CountCharPS = 0#
For i = 1 To 12
If checkCharPS(i) Then
CountCharPS = CountCharPS + 1
End If
Next i
End Property
'Добавление стадии из таблицы
Public Sub setStage(ByVal index As Integer)
Stage(index) = index
End Sub
'Удаление стадии
Public Sub unsetStage(ByVal index As Integer)
Stage(index) = -1#
End Sub
'Проверка добавлена стадия или нет
Public Function checkStage(ByVal index As Integer) As Boolean
If Stage(index) = -1# Then
checkStage = False
Else
checkStage = True
End If
End Function
'Добавление функции из таблицы 2.7
Public Sub setVi(ByVal index As Integer)
ViPr(index) = da.table27GetVi(index, compType)
End Sub
'Удаление функции из таблицы 2.7
Public Sub unsetVi(ByVal index As Integer)
ViPr(index) = 0#
End Sub
'Проверка на наличие функции
Public Function checkVi(ByVal index As Integer) As Boolean
If ViPr(index) = 0# Then
checkVi = False
Else
checkVi = True
End If
End Function
'Определение значения Vi
Public Property Get Vi(index As Integer) As Double
Vi = da.table27GetVi(index, compType)
End Property
'Общий объем ПС
Public Property Get Vo() As Double
Dim i As Integer
Vo = 0#
For i = 1 To 16
Vo = Vo + ViPr(i)
Next i
Vo = Format(Vo, "#####0.00")
End Property
'Кур из таблицы 2.8
Public Property Get Kur() As Double
Kur = da.table28GetKur(tools, osType)
End Property
'Тб из таблицы 2.4
Public Property Get Tb() As Double
Tb = Format(da.table24GetTimeNorm(Vo / 1000, difficulty), "#####0.00")
End Property
'Расчет Тур
Public Property Get Tur() As Double
Tur = Format(Tb * Kur, "#####0.00")
End Property
'Расчет To
Public Property Get T() As Double
T = Format(Tur * Ksl, "#####0.00")
End Property
'Public Property Get Ti(index As Integer) As Double
If index = 3 Then
If isep Then
Ti = Li(3) * Kn * T
Else
Ti = (Li(2) + Li(3)) * Kn * T
End If
If isTrp Then
Ti = Format(Ti(3) * 0.85, "#####0.00")
End If
Else
Ti = Li(index) * Kn * T
If index = 4 Then
Ti = Ti * Kt
End If
End If
Ti = Format(Ti, "#####0.00")
End Property
'Расчет Tобщ
Public Property Get Tob() As Double
Tob = 0#
If isCase Then
Tob = Ti(0) + Ti(4) + Ti(5)
Else
Tob = Ti(1) 'стадия тз
If isep Then
Tob = Tob + Ti(2)
End If
If isTrp Then
Tob = Tob + Trp
Else
Tob = Tob + Ti(3) + Ti(4)
End If
Tob = Tob + Ti(5)
End If
Tob = Format(Tob, "#####0.00")
End Property
2. Реализация функции расчета сопровождения ПС.
' Определение значения Кан из таблицы 3.1
Public Property Get Kan() As Double
Kan = da.table31GetKan(haveAnalog)
End Property
‘Определение значения Kuch из таблицы 3.2
Public Property Get Kuch() As Double
Kuch = da.table32GetKuch(PartService)
End Property
‘Определение значения Ksli по таблице 3.3
Public Property Get Ksli(index As Integer) As Double
Ksli = da.table33GetKsli(index)
End Property
'Добавление Ksli
Public Sub setKsli(ByVal index As Integer)
KsliPr(index) = da.table33GetKsli(index)
End Sub
'Удаление Ksli
Public Sub unsetKsli(ByVal index As Integer)
KsliPr(index) = 0#
End Sub
'Проверка добавлено Ksli или нет
Public Function checkKsli(ByVal index As Integer) As Boolean
If KsliPr(index) = 0# Then
checkKsli = False
Else
checkKsli = True
End If
End Function
Public Property Get Ksl()
←предыдущая следующая→
1 2 3
|
|