📄 动物识别系统.txt
字号:
Dim m As Integer '记录最后一个记录号
Dim Counter As Integer
Private Sub Command1_Click()
Dim str1 As String
Dim n As Integer '计数,当没有规则可以匹配时,结束循环判断
n = 1
m = 0
Open "d:\lib.dat" For Random As #1 Len = 20
If bird.Value = 1 Then
Put #1, , "bird"
m = m + 1
End If
If breast.Value = 1 Then
Put #1, , "breast"
m = m + 1
End If
If blackandwhite.Value = 1 Then
Put #1, , "blackandwhite"
m = m + 1
End If
If blacksplash.Value = 1 Then
Put #1, , "blacksplash"
m = m + 1
End If
If blackvitta.Value = 1 Then
Put #1, , "blackvitta"
m = m + 1
End If
If canine.Value = 1 Then
Put #1, , "canine"
m = m + 1
End If
If cannotfly.Value = 1 Then
Put #1, , "cannotfly"
m = m + 1
End If
If chewthecud.Value = 1 Then
Put #1, , "chewthecud"
m = m + 1
End If
If claw.Value = 1 Then
Put #1, , "claw"
m = m + 1
End If
If darkfleck.Value = 1 Then
Put #1, , "darkfleck"
m = m + 1
End If
If eatmeat.Value = 1 Then
Put #1, , "eatmeat"
m = m + 1
End If
If egg.Value = 1 Then
Put #1, , "egg"
m = m + 1
End If
If fearless.Value = 1 Then
Put #1, , "fearless"
m = m + 1
End If
If feather.Value = 1 Then
Put #1, , "feather"
m = m + 1
End If
If filemot.Value = 1 Then
Put #1, , "filemot"
m = m + 1
End If
If fly.Value = 1 Then
Put #1, , "fly"
m = m + 1
End If
If gazestraight.Value = 1 Then
Put #1, , "gazestraight"
m = m + 1
End If
If hairiness.Value = 1 Then
Put #1, , "hairiness"
m = m + 1
End If
If hoof.Value = 1 Then
Put #1, , "hoof"
m = m + 1
End If
If hoofanimal.Value = 1 Then
Put #1, , "hoofanimal"
m = m + 1
End If
If longleg.Value = 1 Then
Put #1, , "longleg"
m = m + 1
End If
If longneck.Value = 1 Then
Put #1, , "longneck"
m = m + 1
End If
If mammal.Value = 1 Then
Put #1, , "mammal"
m = m + 1
End If
If meatanimal.Value = 1 Then
Put #1, , "meatanimal"
m = m + 1
End If
If swim.Value = 1 Then
Put #1, , "swim"
m = m + 1
End If
If white.Value = 1 Then
Put #1, , "white"
m = m + 1
End If
Close #1
Dim i As Integer
Open "d:\lib.dat" For Random As #1 Len = 20
For Counter = 1 To 3
For i = 1 To m 'r1:若某动物有奶,则它是哺乳动物。
Get #1, i, str1
If StrComp(Trim(str1), "breast") = 0 Then
If result("mammal") Then Exit Sub
If check("mammal") Then
m = m + 1
Put #1, m, "mammal"
Counter = 1
Exit For
End If
End If
Next i
For i = 1 To m 'r2:若某动物有毛发,则它是哺乳动物。
Get #1, i, str1
If StrComp(Trim(str1), "hairiness") = 0 Then
If result("mammal") Then Exit Sub
If check("mammal") Then
m = m + 1
Put #1, m, "mammal"
Counter = 1
Exit For
End If
End If
Next i
For i = 1 To m 'r3:若某动物有羽毛,则它是鸟。
Get #1, i, str1
If StrComp(Trim(str1), "feather") = 0 Then
If result("bird") Then Exit Sub
If check("bird") Then
m = m + 1
Put #1, m, "bird"
Counter = 1
Exit For
End If
End If
Next i
Dim j As Integer
Dim k As Integer
Dim g As Integer
Dim h As Integer
Dim str3 As String
Dim str4 As String
Dim str5 As String
Dim str6 As String
For i = 1 To m 'r4:若某动物会飞且生蛋,则它是鸟。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
If StrComp(Trim(str1), "fly") = 0 And StrComp(Trim(str3), "egg") = 0 Then
If result("bird") Then Exit Sub
If check("bird") Then
m = m + 1
Put #1, m, "bird"
Counter = 1
Exit For
End If
End If
Next j
Next i
For i = 1 To m 'r5:若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
For g = 1 To m
Get #1, g, str4
For h = 1 To m
Get #1, h, str5
If StrComp(Trim(str1), "mammal") = 0 And StrComp(Trim(str3), "claw") = 0 And StrComp(Trim(str4), "canine") = 0 And StrComp(Trim(str5), "gazestraight") = 0 Then
If result("meatanimal") Then Exit Sub
If check("meatanimal") Then
m = m + 1
Put #1, m, "meatanimal"
Counter = 1
Exit For
End If
End If
Next h
Next g
Next j
Next i
For i = 1 To m 'r6:若某动物是哺乳动物且吃肉,则它是食肉动物。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
If StrComp(Trim(str1), "mammal") = 0 And StrComp(Trim(str3), "eatmeat") = 0 Then
If result("meatanimal") Then Exit Sub
If check("meatanimal") Then
m = m + 1
Put #1, m, "meatanimal"
Counter = 1
Exit For
End If
End If
Next j
Next i
For i = 1 To m 'r7:若某动物是哺乳动物且有蹄,则它是有蹄动物。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
If StrComp(Trim(str1), "mammal") = 0 And StrComp(Trim(str3), "hoof") = 0 Then
If result("hoofanimal") Then Exit Sub
If check("hoofanimal") Then
m = m + 1
Put #1, m, "hoofanimal"
Counter = 1
Exit For
End If
End If
Next j
Next i
For i = 1 To m 'r8:若某动物是有蹄动物且反刍食物,则它是偶蹄动物。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
If StrComp(Trim(str1), "hoofanimal") = 0 And StrComp(Trim(str3), "chewthecud") = 0 Then
If result("cloot") Then Exit Sub
If check("cloot") Then
m = m + 1
Put #1, m, "cloot"
Counter = 1
Exit For
End If
End If
Next j
Next i
For i = 1 To m 'r9:若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
For g = 1 To m
Get #1, g, str4
If StrComp(Trim(str1), "meatanimal") = 0 And StrComp(Trim(str3), "filemot") = 0 And StrComp(Trim(str4), "blackvitta") = 0 Then
If result("tiger") Then Exit Sub
If check("tiger") Then
m = m + 1
Put #1, m, "tiger"
Counter = 1
Exit For
End If
End If
Next g
Next j
Next i
For i = 1 To m ' r10:若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱豹。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
For g = 1 To m
Get #1, g, str4
If StrComp(Trim(str1), "meatanimal") = 0 And StrComp(Trim(str3), "filemot") = 0 And StrComp(Trim(str4), "blacksplash") = 0 Then
If result("leopard") Then Exit Sub
If check("leopard") Then
m = m + 1
Put #1, m, "leopard"
Counter = 1
Exit For
End If
End If
Next g
Next j
Next i
For i = 1 To m 'r11:若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
For g = 1 To m
Get #1, g, str4
For h = 1 To m
Get #1, h, str5
For k = 1 To m
Get #1, k, str6
If StrComp(Trim(str1), "hoofanimal") = 0 And StrComp(Trim(str3), "longleg") = 0 And StrComp(Trim(str4), "longneck") = 0 And StrComp(Trim(str5), "filemot") = 0 And StrComp(Trim(str6), "darkfleck") = 0 Then
If result("giraffe") Then Exit Sub
If check("giraffe") Then
m = m + 1
Put #1, m, "giraffe"
Counter = 1
Exit For
End If
End If
Next k
Next h
Next g
Next j
Next i
For i = 1 To m 'r12:若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
For g = 1 To m
Get #1, g, str4
If StrComp(Trim(str1), "hoofanimal") = 0 And StrComp(Trim(str3), "white") = 0 And StrComp(Trim(str4), "blackvitta") = 0 Then
If result("zebra") Then Exit Sub
If check("zebra") Then
m = m + 1
Put #1, m, "zebra"
Counter = 1
Exit For
End If
End If
Next g
Next j
Next i
For i = 1 To m 'r13:若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
For g = 1 To m
Get #1, g, str4
For h = 1 To m
Get #1, h, str5
For k = 1 To m
Get #1, k, str6
If StrComp(Trim(str1), "bird") = 0 And StrComp(Trim(str3), "cannotfly") = 0 And StrComp(Trim(str4), "longleg") = 0 And StrComp(Trim(str5), "longneck") = 0 And StrComp(Trim(str3), "cannotfly") = 0 And StrComp(Trim(str4), "longleg") = 0 And StrComp(Trim(str5), "longneck") = 0 And StrComp(Trim(str6), "blackandwhite") = 0 Then
If result("ostrich") Then Exit Sub
If check("ostrich") Then
m = m + 1
Put #1, m, "ostrich"
Counter = 1
Exit For
End If
End If
Next k
Next h
Next g
Next j
Next i
For i = 1 To m 'r14:若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
For g = 1 To m
Get #1, g, str4
For h = 1 To m
Get #1, h, str5
If StrComp(Trim(str1), "bird") = 0 And StrComp(Trim(str3), "cannotfly") = 0 And StrComp(Trim(str4), "swim") = 0 And StrComp(Trim(str5), "blackandwhite") = 0 Then
If result("penguin") Then Exit Sub
If check("penguin") Then
m = m + 1
Put #1, m, "penguin"
Counter = 1
Exit For
End If
End If
Next h
Next g
Next j
Next i
For i = 1 To m 'r15:若某动物是鸟且善飞且不怕风浪,则它是海燕。
Get #1, i, str1
For j = 1 To m
Get #1, j, str3
For g = 1 To m
Get #1, g, str4
If StrComp(Trim(str1), "bird") = 0 And StrComp(Trim(str3), "fly") = 0 And StrComp(Trim(str4), "fearless") = 0 Then
If result("salangane") Then Exit Sub
If check("salangane") Then
m = m + 1
Put #1, m, "salangane"
Counter = 1
Exit For
End If
End If
Next g
Next j
Next i
Next Counter
Close #1
MsgBox "您给出的证据太少,无法判断是什么动物"
End Sub
Private Function check(ByVal conclusion As String) As Integer
Dim j As Integer
Dim str2 As String
For j = 1 To m
Get #1, j, str2
If StrComp(str2, conclusion) = 0 Then
check = 0
Exit Function
End If
Next j
check = 1
End Function
Private Function result(ByVal res As String)
Select Case res
Case "tiger"
MsgBox "老虎", vbOKOnly, "结果"
result = 1
Exit Function
Case "leopard"
MsgBox "金钱豹"
result = 1
Exit Function
Case "giraffe"
MsgBox "长颈鹿"
result = 1
Exit Function
Case "zebra"
MsgBox "斑马"
result = 1
Exit Function
Case "ostrich"
MsgBox "驼鸟"
result = 1
Exit Function
Case "penguin"
MsgBox "企鹅"
result = 1
Exit Function
Case "salangane"
MsgBox "海燕"
result = 1
Exit Function
Case Else
result = 0
End Select
End Function
Private Sub Command2_Click()
Unload Me
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -