📄 校园导游.frm
字号:
Begin VB.Label Label1
BackStyle = 0 'Transparent
Caption = "我想知道从:"
BeginProperty Font
Name = "华文新魏"
Size = 18
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00C00000&
Height = 375
Left = 240
TabIndex = 15
Top = 4470
Width = 2055
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Base 1
Dim zuixiao(14) As Integer
Dim a(1 To 12, 1 To 12) As Integer
Const MAX = 999
Dim scount As Integer
Private Sub Command1_Click()
If Text2.Text = "" Then
Form3.Show
ElseIf Text3.Text = "" Then
Form3.Show
ElseIf Text2.Text = Text3.Text Then
Form5.Show
Else
If Label5.Caption = Text3.Text Then
Form4.Show
ElseIf Label6.Caption = Text3.Text Then
Form4.Show
ElseIf Label7.Caption = Text3.Text Then
Form4.Show
ElseIf Label8.Caption = Text3.Text Then
Form4.Show
ElseIf Label9.Caption = Text3.Text Then
Form4.Show
ElseIf Label10.Caption = Text3.Text Then
Form4.Show
ElseIf Label11.Caption = Text3.Text Then
Form4.Show
ElseIf Label12.Caption = Text3.Text Then
Form4.Show
ElseIf Label13.Caption = Text3.Text Then
Form4.Show
ElseIf Label14.Caption = Text3.Text Then
Form4.Show
ElseIf Label15.Caption = Text3.Text Then
Form4.Show
ElseIf Label16.Caption = Text3.Text Then
Form4.Show
ElseIf Text3.Text = "" Then
Form3.Show
Else
Text3.Text = ""
Form2.Show
End If
End If
If scount > 150 Then
Label19.BackStyle = 0
Label19.BorderStyle = 0
Label19.Caption = ""
End If
End Sub
Private Sub Command2_Click()
Dim n As Integer
Dim m As Integer
Dim i As Integer
Dim j As Integer
Dim z As Integer
Dim b, c, d, e, f, g, h, p, q, r, s As Integer
Dim drawline(100) As Integer
Dim js As Integer
'初始化画线计数数组
For js = 1 To 100
drawline(js) = 0
Next js
Dim zanxu(1 To 13)
zanxu(1) = 1
zanxu(2) = 0
For j = 3 To 13
zanxu(j) = 0
Next j
Dim ding(1 To 14) As Integer
For i = 1 To 14
ding(i) = 1
Next i
Dim zongdianxu(1 To 100) As Integer
For i = 1 To 100
zongdianxu(i) = 0
Next i
Dim mudidi(1 To 14) As Integer '存放要求经过的点
For i = 1 To 14
mudidi(i) = 0
Next i
Dim dianxu(1 To 12) As Integer '存放路径最短时的景点排序
For i = 1 To 12
dianxu(i) = 0
Next i
Dim changdu As Integer
changdu = 0
Dim min As Integer
min = MAX
'定义原始数据
For i = 1 To 12
For j = 1 To 12
a(i, j) = MAX
Next j
Next i
a(1, 2) = 5
a(2, 1) = 5
a(1, 6) = 4
a(6, 1) = 4
a(1, 7) = 3
a(7, 1) = 3
a(2, 3) = 2
a(3, 2) = 2
a(3, 4) = 2
a(4, 3) = 2
a(3, 5) = 4
a(5, 3) = 4
a(5, 10) = 6
a(10, 5) = 6
a(6, 7) = 5
a(7, 6) = 5
a(6, 8) = 3
a(8, 6) = 3
a(7, 8) = 4
a(8, 7) = 4
a(7, 11) = 2
a(11, 7) = 2
a(7, 12) = 2
a(12, 7) = 2
a(8, 9) = 3
a(9, 8) = 3
a(9, 10) = 3
a(10, 9) = 3
a(10, 11) = 1
a(11, 10) = 1
z = 1 '提取过程
If Check1.Value = 1 Then
mudidi(z) = 1
z = z + 1
mudidi(14) = mudidi(14) + 1
End If
If Check2.Value = 1 Then
mudidi(z) = 7
z = z + 1
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
If Check3.Value = 1 Then
mudidi(z) = 11
z = z + 1
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
If Check4.Value = 1 Then
mudidi(z) = 8
z = z + 1
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
If Check5.Value = 1 Then
mudidi(z) = 12
z = z + 1
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
If Check6.Value = 1 Then
mudidi(z) = 6
z = z + 1
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
If Check7.Value = 1 Then
mudidi(z) = 2
z = z + 1
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
If Check8.Value = 1 Then
mudidi(z) = 9
z = z + 1
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
If Check9.Value = 1 Then
mudidi(z) = 10
z = z + 1
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
If Check10.Value = 1 Then
mudidi(z) = 5
z = z + 1
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
If Check11.Value = 1 Then
mudidi(z) = 3
z = z + 1
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
If Check12.Value = 1 Then
mudidi(z) = 4
ding(z) = 0
mudidi(14) = mudidi(14) + 1
End If
mudidi(z + 1) = 0
'查寻多点最佳路径
Dim zanzuixiao(1 To 12, 1 To 12, 1 To 14) As Integer
For i = 1 To 12
For j = 1 To 12
For z = 1 To 14
zanzuixiao(i, j, z) = 0
Next z
Next j
Next i
'分别求出任意两点目的地间的最短路径
i = 1
j = 1
For i = 1 To 12
For j = 1 To 12
If mudidi(i) <> 0 And mudidi(j) <> 0 And i <> j Then
n = mudidi(i)
m = mudidi(j)
Call liangzuixiao(n, m)
For k = 1 To 14
zanzuixiao(n, m, k) = zuixiao(k)
Next k
End If
Next j
Next i
If mudidi(14) <= 10 Then
For b = 2 To mudidi(14) '求总路程最短时的景点排序
If ding(b) = 0 Then
zanxu(2) = mudidi(b)
zanxu(3) = 0
ding(b) = 1
changdu = changdu + zanzuixiao(1, mudidi(b), 14)
For c = 2 To mudidi(14) ''''''''''''
If mudidi(14) = 2 Then
If min > changdu Then
min = changdu
For i = 1 To mudidi(14)
dianxu(i) = zanxu(i)
Next i
End If
Exit For
End If
If c <> b And ding(c) = 0 Then
zanxu(3) = mudidi(c)
zanxu(4) = 0
ding(c) = 1
changdu = changdu + zanzuixiao(mudidi(b), mudidi(c), 14)
For d = 2 To mudidi(14) ''''''''''''''''
If mudidi(14) = 3 Then
If min > changdu Then
min = changdu
For i = 1 To mudidi(14)
dianxu(i) = zanxu(i)
Next i
End If
Exit For
End If
If ding(d) = 0 And d <> b And d <> c Then
zanxu(4) = mudidi(d)
ding(d) = 1
changdu = changdu + zanzuixiao(mudidi(c), mudidi(d), 14)
For e = 2 To mudidi(14) ''''''''''''''''
If mudidi(14) = 4 Then
If min > changdu Then
min = changdu
For i = 1 To mudidi(14)
dianxu(i) = zanxu(i)
Next i
End If
Exit For
End If
If ding(e) = 0 And e <> b And e <> c And e <> d Then
zanxu(5) = mudidi(e)
ding(e) = 1
changdu = changdu + zanzuixiao(mudidi(d), mudidi(e), 14)
For f = 2 To mudidi(14) ''''''''''''''''
If mudidi(14) = 5 Then
If min > changdu Then
min = changdu
For i = 1 To mudidi(14)
dianxu(i) = zanxu(i)
Next i
End If
Exit For
End If
If ding(f) = 0 And f <> b And f <> c And f <> d And f <> e Then
zanxu(6) = mudidi(f)
ding(f) = 1
changdu = changdu + zanzuixiao(mudidi(e), mudidi(f), 14)
For g = 2 To mudidi(14) ''''''''''''''
If mudidi(14) = 6 Then
If min > changdu Then
min = changdu
For i = 1 To mudidi(14)
dianxu(i) = zanxu(i)
Next i
End If
Exit For
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -