2013-05-06 76 views
0

我正在写一个程序为我的vba类,它几乎完成,但我遇到了一个小问题。该程序应该问一个随机乘法问题,然后用户点击提交来检查天气是正确还是错误。所有这些都可以正常工作,但是对于第一个问题的答案是对所有问题的答案,即使用户在接下来的问题中碰到下一个问题。例如,第一个问题可能是6 * 3,用户输入21,它会说正确的。下一个问题会出现说3 * 2。如果用户输入6,它会说错,但如果21再次输入它的正确。我确定我错过了一些非常简单的事情,但它让我疯狂,而且我很新。任何帮助非常感谢!!很抱歉,如果任何这是令人困惑。错误的输出使用随机VB

Public Class MultiplicationTeacherForm 
    Dim randomObject As New Random 
    Dim one As Integer = randomObject.Next(1, 10) 
    Dim two As Integer = randomObject.Next(1, 10) 

Private Sub nextButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nextButton.Click 

    Dim one As Integer = randomObject.Next(1, 10) 
    Dim two As Integer = randomObject.Next(1, 10) 
    question.Text = ("How much is " & one & " times " & two) 

End Sub 

Private Sub submitButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles submit.Click 

    Dim three As Integer = randomObject.Next(1, 3) 
    Dim ans As Integer = one * two 
    Dim correct As String = answer.Text 
    Dim x As Integer = Convert.ToInt16(correct) 

    If (three = 1) And (ans = x) Then 
     response.Text = "Very Good!" 
    ElseIf (three = 2) And (ans = x) Then 
     response.Text = "Excellent!" 
    ElseIf (three = 3) And (ans = x) Then 
     response.Text = "Great Job!" 
    Else 
     response.Text = "No, Please try again." 
    End If 
End Sub 


Private Sub MultiplicationTeacherForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    question.Text = ("How much is " & one & " times " & two) 
End Sub 

回答

2

nextButton_Click没有更新形式的onetwo变量,而是创建被遮蔽形式的新的当地人。只要做:

one = randomObject.Next(1, 10) 
two = randomObject.Next(1, 10) 

而不是你已经拥有的前两行。

+0

我觉得这会是简单的事,谢谢先生! – 2013-05-06 20:51:46

+0

不要忘记在堆栈溢出中标记“正确”的答案。一旦你做到了,我的答案就会得到一个绿色的复选框。 – 2013-05-06 23:44:24

+0

@BrandanBassett - 顺便说一下,3 * 6是18而不是21! :P – 2013-05-07 14:55:08