📄 modmain.bas
字号:
Attribute VB_Name = "modMain"
Option Explicit
Public Enum ELayerStyle
LayerA '目标层
LayerC '准则层
LayerP '方案层
End Enum
Public Type TProperty
vCR As Double '一次性比率
vCI As Double '一致性指标
vRI As Double '随机一致性指标
vNmax As Double '最大特征值
End Type
Public Type TLayer '层的数据结构
Name As String
Grid As MSFlexGrid '所对应的一个表,只有[A],[C]层有
Style As ELayerStyle
ContainObj As String '这个个体所包含的对象
Property As TProperty '用来存放其他的重要数据
GArray() As Double '用来存放表格数据的数组
W() As Double '用来存放权值ω的数组
txtInf As String '用于保存txtOutput的信息
Finished As Boolean '标记是否已经完成了权值计算
End Type
Public Type TDeclare '层的说明结构
Name As String
Dec As String
End Type
Public Type TFinalResult '层次总排序表的结构
C As Double
P() As Double
End Type
Public vLayer() As TLayer '定义层变量数组
Public vDecC() As TDeclare
Public vDecP() As TDeclare
Public pLCount As Long '方案层个体总数
Public cLCount As Long '准则层个体总数
Public aLCount As Long '目标层个体总数
Public TotalGridNum As Long '表格的总数
Public NMax As Double '最大特征值
Public RI(1 To 15) As Double '随机一致性指标
Public CI As Double '一致性指标
Public CR As Double '一次性比率
Public AllProperty As TProperty '总排序表的
Public TempW() As Double '临时的权值数组
Sub InitVars()
aLCount = 1 '目标层个体限定为一个
TotalGridNum = 1
RI(1) = 0: RI(2) = 0: RI(3) = 0.58: RI(4) = 0.9: RI(5) = 1.12
RI(6) = 1.24: RI(7) = 1.32: RI(8) = 1.41: RI(9) = 1.45: RI(10) = 1.49
RI(11) = 1.52: RI(12) = 1.54: RI(13) = 1.56: RI(14) = 1.58: RI(15) = 1.59
End Sub
'主程序
Sub Main()
On Error GoTo errH
InitVars
frmMain.Show
Exit Sub
errH:
ShowUnknownErr
End Sub
'显示未知错误
Public Sub ShowUnknownErr()
MsgBox "发现未知错误!", vbOKOnly + vbInformation, "出错了啦:O"
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -