2013-05-06 2 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

나는 그것이 단순 할 것이라고 생각했다. 고마워요! –

+0

스택 오버 플로우와 같이 "올바른"답을 표시하는 것을 잊지 마십시오. 일단 대답하면 녹색 체크 박스가 나타납니다. –

+0

@BrandanBassett - 그건 그렇고, 3 * 6은 21이 아니라 18입니다! :피 –