
vb做一个找小偷的小程序,请高手帮忙!!谢谢!!
A,B,C和D人中有1个是小偷,审问中,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定是D”;D说:“C在冤枉人”。其中有三人说真话,一人说假话。请编程找出谁...
A,B,C和D人中有1个是小偷,审问中,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定是D”;D说:“C在冤枉人”。其中有三人说真话,一人说假话。请编程找出谁说谎,谁是小偷。下面是大概的界面
输入谁是小偷:( text1 )
A是否说谎(text2)
B是否说谎(text3) ( 判断command1)
C是否说谎(text4)
D是否说谎(text5)
请哪位高手写一下代码!!谢谢!! 展开
输入谁是小偷:( text1 )
A是否说谎(text2)
B是否说谎(text3) ( 判断command1)
C是否说谎(text4)
D是否说谎(text5)
请哪位高手写一下代码!!谢谢!! 展开
3个回答
展开全部
'------------------------定义变量
Dim IsA, IsB, IsC, IsD As Boolean '定义谁是小偷
Dim HA, HB, HC, HD As Boolean '定义是否说真话
Dim PdTrue As Boolean '判断是否为真
Private Sub Command1_Click()
'------------------------初始化
IsA = False
IsB = False
IsC = False
IsD = False
HA = True
HB = True
HC = True
HD = True
PdTrue = True
'------------------------获取用户输入谁是小偷
Text1.Text = UCase(Text1.Text) '使在text1输入的字母变成大写.
If Text1 <> "A" And Text1 <> "B" And Text1 <> "C" And Text1 <> "D" Then
MsgBox "请在text1中正确输入小偷..(可选A、B、C、D)", 48, "提示!"
Exit Sub
End If
Select Case Text1.Text
Case "A"
IsA = True
Case "B"
IsB = True
Case "C"
IsC = True
Case "D"
IsD = True
End Select
'------------------------------'根据只有一个小偷,引出判断。
Select Case PdTrue
Case IsA '如果A是小偷,则其他的人不是小偷
IsB = False
IsC = False
IsD = False
Case IsB '如果是B小偷
IsA = False
IsC = False
IsD = False
Case IsC '如果是C小偷
IsA = False
IsB = False
IsD = False
Case IsD '如果是D小偷
IsA = False
IsB = False
IsC = False
End Select
'---------------------------------根据语言矛盾,判断真假!
HA = Not (IsA)
HB = IsC
HC = IsD
HD = Not (IsD)
'---------------------------------
If HA = True Then
Text2 = "√"
Else
Text2 = "×"
End If
If HB = True Then
Text3 = "√"
Else
Text3 = "×"
End If
If HC = True Then
Text4 = "√"
Else
Text4 = "×"
End If
If HD = True Then
Text5 = "√"
Else
Text5 = "×"
End If
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
End Sub
Dim IsA, IsB, IsC, IsD As Boolean '定义谁是小偷
Dim HA, HB, HC, HD As Boolean '定义是否说真话
Dim PdTrue As Boolean '判断是否为真
Private Sub Command1_Click()
'------------------------初始化
IsA = False
IsB = False
IsC = False
IsD = False
HA = True
HB = True
HC = True
HD = True
PdTrue = True
'------------------------获取用户输入谁是小偷
Text1.Text = UCase(Text1.Text) '使在text1输入的字母变成大写.
If Text1 <> "A" And Text1 <> "B" And Text1 <> "C" And Text1 <> "D" Then
MsgBox "请在text1中正确输入小偷..(可选A、B、C、D)", 48, "提示!"
Exit Sub
End If
Select Case Text1.Text
Case "A"
IsA = True
Case "B"
IsB = True
Case "C"
IsC = True
Case "D"
IsD = True
End Select
'------------------------------'根据只有一个小偷,引出判断。
Select Case PdTrue
Case IsA '如果A是小偷,则其他的人不是小偷
IsB = False
IsC = False
IsD = False
Case IsB '如果是B小偷
IsA = False
IsC = False
IsD = False
Case IsC '如果是C小偷
IsA = False
IsB = False
IsD = False
Case IsD '如果是D小偷
IsA = False
IsB = False
IsC = False
End Select
'---------------------------------根据语言矛盾,判断真假!
HA = Not (IsA)
HB = IsC
HC = IsD
HD = Not (IsD)
'---------------------------------
If HA = True Then
Text2 = "√"
Else
Text2 = "×"
End If
If HB = True Then
Text3 = "√"
Else
Text3 = "×"
End If
If HC = True Then
Text4 = "√"
Else
Text4 = "×"
End If
If HD = True Then
Text5 = "√"
Else
Text5 = "×"
End If
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
End Sub
展开全部
给你个简单的
设ABCD分别人1234四人
Private Sub Form_Click()
Dim a(3) As String
Dim b(3) As Integer
Dim i, j
a(0) = "234"
a(1) = "3"
a(2) = "4"
a(3) = 123
i = 0
For i = 1 To 4
For j = 0 To 3
If InStr(a(j), CStr(i)) Then b(j) = b(j) + 1
Next
Next
For j = 1 To 3
If a(0) > a(j) Then a(0) = a(j): i = j
Next
Print i & "说慌"
End Sub
设ABCD分别人1234四人
Private Sub Form_Click()
Dim a(3) As String
Dim b(3) As Integer
Dim i, j
a(0) = "234"
a(1) = "3"
a(2) = "4"
a(3) = 123
i = 0
For i = 1 To 4
For j = 0 To 3
If InStr(a(j), CStr(i)) Then b(j) = b(j) + 1
Next
Next
For j = 1 To 3
If a(0) > a(j) Then a(0) = a(j): i = j
Next
Print i & "说慌"
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2008-11-17
展开全部
楼上的答案很牛X,我的就见笑了
Private Sub Command1_Click()
If Text1.Text = "C" or Text4.Text = "是" Then
MsgBox "你答对了"
Else
If MsgBox("你答错了,显示正确答案吗?", vbOKCancel + vbExclamation, "警告") = vbOK Then
Text1.Text = "c"
Text2.Text = "否"
Text3.Text = "否"
Text4.Text = "是"
Text5.Text = "否"
Else
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
End If
End If
End Sub
Private Sub Command1_Click()
If Text1.Text = "C" or Text4.Text = "是" Then
MsgBox "你答对了"
Else
If MsgBox("你答错了,显示正确答案吗?", vbOKCancel + vbExclamation, "警告") = vbOK Then
Text1.Text = "c"
Text2.Text = "否"
Text3.Text = "否"
Text4.Text = "是"
Text5.Text = "否"
Else
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
End If
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询