⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 计算机专业的同学注意了:我个人做对网络路由选择
💻 FRM
📖 第 1 页 / 共 2 页
字号:
   Begin VB.Line Line1 
      Index           =   37
      X1              =   7800
      X2              =   3120
      Y1              =   4440
      Y2              =   5520
   End
   Begin VB.Line Line1 
      Index           =   36
      X1              =   6840
      X2              =   7800
      Y1              =   1440
      Y2              =   3960
   End
   Begin VB.Line Line1 
      Index           =   35
      X1              =   7800
      X2              =   3120
      Y1              =   4200
      Y2              =   1440
   End
   Begin VB.Line Line1 
      Index           =   34
      X1              =   6480
      X2              =   1800
      Y1              =   5640
      Y2              =   4440
   End
   Begin VB.Line Line1 
      Index           =   33
      X1              =   1680
      X2              =   2520
      Y1              =   4440
      Y2              =   5640
   End
   Begin VB.Line Line1 
      Index           =   32
      X1              =   6480
      X2              =   2040
      Y1              =   1200
      Y2              =   4080
   End
   Begin VB.Line Line1 
      Index           =   31
      X1              =   2760
      X2              =   1920
      Y1              =   1440
      Y2              =   3840
   End
   Begin VB.Line Line1 
      Index           =   30
      X1              =   7800
      X2              =   2040
      Y1              =   4320
      Y2              =   4320
   End
   Begin VB.Line Line1 
      Index           =   29
      X1              =   7800
      X2              =   6960
      Y1              =   3000
      Y2              =   5520
   End
   Begin VB.Line Line1 
      Index           =   28
      X1              =   7800
      X2              =   3120
      Y1              =   2880
      Y2              =   5520
   End
   Begin VB.Line Line1 
      Index           =   27
      X1              =   8160
      X2              =   7080
      Y1              =   2400
      Y2              =   1320
   End
   Begin VB.Line Line1 
      Index           =   26
      X1              =   7800
      X2              =   3120
      Y1              =   2640
      Y2              =   1320
   End
   Begin VB.Line Line1 
      Index           =   25
      X1              =   8160
      X2              =   8160
      Y1              =   3000
      Y2              =   3960
   End
   Begin VB.Line Line1 
      Index           =   24
      X1              =   7800
      X2              =   2040
      Y1              =   2760
      Y2              =   4200
   End
   Begin VB.Line Line1 
      Index           =   23
      X1              =   6480
      X2              =   5160
      Y1              =   5880
      Y2              =   6120
   End
   Begin VB.Line Line1 
      Index           =   22
      X1              =   4560
      X2              =   3120
      Y1              =   6120
      Y2              =   5760
   End
   Begin VB.Line Line1 
      Index           =   21
      X1              =   6720
      X2              =   4920
      Y1              =   1440
      Y2              =   5760
   End
   Begin VB.Line Line1 
      Index           =   20
      X1              =   2880
      X2              =   4680
      Y1              =   1440
      Y2              =   5760
   End
   Begin VB.Line Line1 
      Index           =   19
      X1              =   7800
      X2              =   5160
      Y1              =   4440
      Y2              =   6000
   End
   Begin VB.Line Line1 
      Index           =   18
      X1              =   2040
      X2              =   4560
      Y1              =   4320
      Y2              =   6000
   End
   Begin VB.Line Line1 
      Index           =   17
      X1              =   7800
      X2              =   4920
      Y1              =   2880
      Y2              =   5760
   End
   Begin VB.Line Line1 
      Index           =   16
      X1              =   6480
      X2              =   2040
      Y1              =   5640
      Y2              =   2640
   End
   Begin VB.Line Line1 
      Index           =   15
      X1              =   1920
      X2              =   2760
      Y1              =   2880
      Y2              =   5400
   End
   Begin VB.Line Line1 
      Index           =   14
      X1              =   6480
      X2              =   2040
      Y1              =   1200
      Y2              =   2520
   End
   Begin VB.Line Line1 
      Index           =   13
      X1              =   2520
      X2              =   1680
      Y1              =   1320
      Y2              =   2280
   End
   Begin VB.Line Line1 
      Index           =   12
      X1              =   7800
      X2              =   2040
      Y1              =   4320
      Y2              =   2640
   End
   Begin VB.Line Line1 
      Index           =   11
      X1              =   1680
      X2              =   1680
      Y1              =   2880
      Y2              =   3840
   End
   Begin VB.Line Line1 
      Index           =   10
      X1              =   7800
      X2              =   2040
      Y1              =   2640
      Y2              =   2640
   End
   Begin VB.Line Line1 
      Index           =   9
      X1              =   4560
      X2              =   2040
      Y1              =   5760
      Y2              =   2640
   End
   Begin VB.Line Line1 
      Index           =   8
      X1              =   4920
      X2              =   6840
      Y1              =   840
      Y2              =   5520
   End
   Begin VB.Line Line1 
      Index           =   7
      X1              =   4680
      X2              =   2760
      Y1              =   840
      Y2              =   5400
   End
   Begin VB.Line Line1 
      Index           =   6
      X1              =   6480
      X2              =   5040
      Y1              =   1200
      Y2              =   480
   End
   Begin VB.Line Line1 
      Index           =   5
      X1              =   4440
      X2              =   3120
      Y1              =   480
      Y2              =   1080
   End
   Begin VB.Line Line1 
      Index           =   4
      X1              =   5040
      X2              =   7800
      Y1              =   840
      Y2              =   4200
   End
   Begin VB.Line Line1 
      Index           =   3
      X1              =   4560
      X2              =   2040
      Y1              =   840
      Y2              =   4080
   End
   Begin VB.Line Line1 
      Index           =   2
      X1              =   5040
      X2              =   7800
      Y1              =   720
      Y2              =   2640
   End
   Begin VB.Line Line1 
      Index           =   1
      X1              =   4800
      X2              =   4800
      Y1              =   840
      Y2              =   5760
   End
   Begin VB.Line Line1 
      Index           =   0
      X1              =   4440
      X2              =   2040
      Y1              =   720
      Y2              =   2520
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim a
Dim g As map
Dim p1(1 To 10) As Integer         '这里计算机名也为数字,用于在D()中做参数
Dim d1(1 To 10) As Integer
Dim v00  As Integer


'这里计算机名为数字,用于P()中做参数!
Private Sub Shortestpath(g As map, v0 As Integer, p() As Integer, d() As Integer)   '不让:Type As String * 1  !?;暂时把G当全局!
Dim final(1 To 11) As Integer
Dim v, i, w, min, pre As Integer                '究:能代表全是integer?
For v = 1 To 10
 final(v) = 0
 d(v) = g.edges(v0, v)
 p(v0) = -1
 If d(v) < 400 And v <> v0 Then
   p(v) = v0
 End If
 If d(v) = 400 Then
    p(v) = -2
 End If

Next v

                                  'v=20 为了后面的final(v) = 1不越界:好像也不是这样
d(v0) = 0
final(v0) = 1
For i = 1 To 10
  min = 400
  For w = 1 To 10
 
    If final(w) = 0 And d(w) < min Then              '终于找见症结:这里faulse是用0代替而不是<0!
      v = w
      min = d(w)
  
    End If
  Next w
  final(v) = 1
  For w = 1 To 10
   If final(w) = 0 And min + g.edges(v, w) < d(w) Then '此处0待究?
     d(w) = min + g.edges(v, w)
     p(w) = v
   End If
  Next w
Next i

List1(v0 - 1).Clear
u = a
For i = 1 To u  ' 在特定的PC列表显示相应的陆由,显示a列!
 
  If p(i) = -2 Then
   List1(v0 - 1).AddItem i
  Else
   List1(v0 - 1).AddItem Str$(i) & "L:" & Str$(d(i)) & "R:" & Str$(i)    'chr$是把‘值’转成相应的字符!

   pre = p(i)

   While pre > 0
     List1(v0 - 1).AddItem "<-" & pre
     pre = p(pre)
     z = z + 1
   Wend

  
  End If


  
    
  
Next i
  

End Sub






Private Sub Command1_Click()
Dim l As Integer

j = Combo1.Text                       '界面输入的也是1 到10!
k = Combo2.Text
s = Val(Text2.Text)
l = Val(j + k)              '线路标号的标准化判断!
m = Val(k + j)

p = Val(j)
q = Val(k)

If l > m And q <> 10 Then               '当第二个数字是10时属特殊情况!
 p = Val(k)
 q = Val(j)

End If
If p = 10 Then
   p = Val(k)
 q = Val(j)
End If

g.edges(p, q) = s                   '似乎不能联写!?
g.edges(q, p) = s
 If p = 1 Then  '在此添加对应线路的显示!
   Line1(q - 2).Visible = "True"
 ElseIf p = "2" Then                                  '带上“”也却通过了
   Line1(6 + q).Visible = "True"
 ElseIf p = "3" Then
   Line1(13 + q).Visible = "True"
 ElseIf p = "4" Then
   Line1(19 + q).Visible = "True"
 ElseIf p = "5" Then
   Line1(24 + q).Visible = "True"
 ElseIf p = "6" Then
   Line1(28 + q).Visible = "True"
 ElseIf p = "7" Then
   Line1(31 + q).Visible = "True"
 ElseIf p = "8" Then
   Line1(33 + q).Visible = "True"
 ElseIf p = "9" Then
   Line1(34 + q).Visible = "True"
 End If
End Sub

Private Sub Command2_Click()
Dim v00 As Integer
 Frame2.Visible = True
 For v00 = 1 To a                          '调a次算法,这里a已是10!
 
  Call Shortestpath(g, v00, p1(), d1())
 Next v00
 
End Sub


Private Sub Command3_Click()
Dim l As Integer

j = Combo1.Text                       '界面输入的也是1 到10!
k = Combo2.Text

l = Val(j + k)              '线路标号的标准化判断!
m = Val(k + j)
p = Val(j)
q = Val(k)
If l > m And q <> 10 Then
 p = Val(k)
 q = Val(j)
End If

g.edges(p, q) = 400
g.edges(q, p) = 400
 If p = "1" Then  '在此添加对应线路的显示!
   Line1(q - 2).Visible = "false"
 ElseIf p = "2" Then
   Line1(6 + q).Visible = "false"
                  
 ElseIf p = "3" Then
   Line1(13 + q).Visible = "false"
 ElseIf p = "4" Then
   Line1(19 + q).Visible = "false"
 ElseIf p = "5" Then
   Line1(24 + q).Visible = "false"
 ElseIf p = "6" Then
   Line1(28 + q).Visible = "false"
 ElseIf p = "7" Then
   Line1(31 + q).Visible = "false"
 ElseIf p = "8" Then
   Line1(33 + q).Visible = "false"
 ElseIf p = "9" Then
   Line1(34 + q).Visible = "false"
 End If
End Sub

Private Sub Command4_Click()

If a > 9 Then                                    '需改成9!
 Exit Sub
End If
Picture1(a).Visible = "True"
 Text1(a).Visible = True
a = a + 1                             '待究:后面还要-1

End Sub



Private Sub Form_Load()
a = 0
Frame2.Visible = False
Dim i As Integer
Dim j As Integer                             '在此增加了PC与线的初始化
  For i = 0 To 44
    Line1(i).Visible = "false"
  Next i
  For i = 0 To 9
    Picture1(i).Visible = "false"
    Text1(i).Visible = False
    List1(i).BackColor = &H8000000F
  Next i



Dim p(1 To 10) As String * 4     '用P代表了C中的LUJING!
g.vert(1) = "PC1"
g.vert(2) = "PC2"
g.vert(3) = "PC3"
g.vert(4) = "PC4"
g.vert(5) = "PC5"
g.vert(6) = "PC6"
g.vert(7) = "PC7"
g.vert(8) = "PC8"
g.vert(9) = "PC9"
g.vert(10) = "PC10"
For i = 1 To 10
 For j = 1 To 10
 
   g.edges(i, j) = 400

 Next j
Next i

End Sub
     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -