Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Hinweis |
|---|
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
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.
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 Subprivate 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.
Speichern Sie das Programm, führen Sie es aus, starten Sie ein Quiz, und geben Sie eine richtige Antwort für die Additionsaufgabe an.
HinweisBevor 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
Um zum nächsten Schritt des Lernprogramms zu wechseln, klicken Sie auf Schritt 5: Hinzufügen von Enter-Ereignishandlern für die NumericUpDown-Steuerelemente.
Um zum vorherigen Schritt des Lernprogramms zurückzukehren, klicken Sie auf Schritt 3: Hinzufügen eines Countdownzeitgebers.