Schritt 4: Hinzufügen der CheckTheAnswer()-Methode

Im vierten Teil dieses Lernprogramms schreiben Sie eine Methode, CheckTheAnswer(), die bestimmt, ob die Antworten auf die Mathematikaufgaben korrekt sind.Dieses Thema ist Teil einer Reihe von Lernprogrammen zu grundlegenden Konzepte der Codierung.Eine Übersicht des Lernprogramms finden Sie unter Lernprogramm 2: Erstellen eines Mathequiz mit Zeitmessung.

HinweisHinweis

Wenn Sie weiterhin in Visual Basic arbeiten, verwenden Sie das Schlüsselwort Function anstelle des üblichen Schlüsselworts Sub, da diese Methode einen Wert zurückgibt.Es ist wirklich ganz einfach: Ein Sub-Schlüsselwort gibt keinen Wert zurück, aber ein Function-Schlüsselwort gibt einen Wert zurück.

So überprüfen Sie, ob die Antworten richtig sind

  1. Fügen Sie die CheckTheAnswer()-Methode hinzu.

    Wenn diese Methode aufgerufen wird, werden die Werte von addend1 und addend2 hinzugefügt und das Ergebnis mit dem Wert im NumericUpDown-Steuerelement "sum" verglichen.Wenn die Werte gleich sind, gibt die Methode den Wert true zurück.Anderenfalls gibt die Methode den Wert false zurück.Der Code sollte wie folgt aussehen.

    ''' <summary> 
    ''' Check the answer to see if the user got everything right. 
    ''' </summary> 
    ''' <returns>True if the answer's correct, false otherwise.</returns> 
    ''' <remarks></remarks> 
    Public Function CheckTheAnswer() As Boolean 
    
        If addend1 + addend2 = sum.Value Then 
            Return True 
        Else 
            Return False 
        End If 
    
    End Function
    
    /// <summary> 
    /// Check the answer to see if the user got everything right. 
    /// </summary> 
    /// <returns>True if the answer's correct, false otherwise.</returns> 
    private bool CheckTheAnswer()
    {
        if (addend1 + addend2 == sum.Value)
            return true;
        else 
            return false;
    }
    

    Nun überprüfen Sie die Antwort, indem Sie die Code in der Methode aktualisieren, damit der Tick-Ereignishandler des Zeitgebers die neue CheckTheAnswer()-Methode aufruft.

  2. Fügen Sie der if else-Anweisung folgenden Code hinzu.

    Private Sub Timer1_Tick() Handles Timer1.Tick
    
        If CheckTheAnswer() Then 
            ' If CheckTheAnswer() returns true, then the user  
            ' got the answer right. Stop the timer   
            ' and show a MessageBox.
            Timer1.Stop()
            MessageBox.Show("You got all of the answers right!", "Congratulations!")
            startButton.Enabled = True 
        ElseIf timeLeft > 0 Then 
            ' If CheckTheAnswer() return false, keep counting 
            ' down. Decrease the time left by one second and  
            ' display the new time left by updating the  
            ' Time Left label.
            timeLeft -= 1
            timeLabel.Text = timeLeft & " seconds" 
        Else 
            ' If the user ran out of time, stop the timer, show  
            ' a MessageBox, and fill in the answers.
            Timer1.Stop()
            timeLabel.Text = "Time's up!"
            MessageBox.Show("You didn't finish in time.", "Sorry!")
            sum.Value = addend1 + addend2
            startButton.Enabled = True 
        End If 
    
    End Sub
    
    private void timer1_Tick(object sender, EventArgs e)
    {
        if (CheckTheAnswer())
        {
            // If CheckTheAnswer() returns true, then the user  
            // got the answer right. Stop the timer   
            // and show a MessageBox.
            timer1.Stop();
            MessageBox.Show("You got all the answers right!",
                            "Congratulations!");
            startButton.Enabled = true;
        }
        else if (timeLeft > 0)
        {
           // If CheckTheAnswer() return false, keep counting 
           // down. Decrease the time left by one second and  
           // display the new time left by updating the  
           // Time Left label.
           timeLeft--;
            timeLabel.Text = timeLeft + " seconds";
        }
        else
        {
            // If the user ran out of time, stop the timer, show  
            // a MessageBox, and fill in the answers.
            timer1.Stop();
            timeLabel.Text = "Time's up!";
            MessageBox.Show("You didn't finish in time.", "Sorry!");
            sum.Value = addend1 + addend2;
            startButton.Enabled = true;
        }
    }
    

    Wenn die Antwort richtig ist, gibt **CheckTheAnswer()**true zurück.Der Ereignishandler beendet den Zeitgeber, zeigt eine Glückwunschmeldung an, und dann ist die Schaltfläche Start erneut verfügbar.Anderenfalls wird das Quiz fortgesetzt.

  3. Speichern Sie das Programm, führen Sie es aus, starten Sie ein Quiz, und geben Sie eine richtige Antwort für die Additionsaufgabe an.

    HinweisHinweis

    Bevor Sie die Antwort eingeben, müssen Sie entweder den Standardwert auswählen, oder Sie müssen die Null manuell löschen.Später in diesem Lernprogramm wird dieses Verhalten korrigiert.

    Wenn Sie eine richtige Antwort angegeben, wird ein Meldungsfeld geöffnet, die Schaltfläche Start wird verfügbar, und der Zeitgeber wird angehalten.

So fahren Sie fort oder überprüfen die Angaben