So verwenden Sie Visual Basic zum Erstellen eines Multiple-Choice-Tests

Öffnen Sie ein neues Visual Basic-Projekt. Fügen Sie dem Formular zwei Beschriftungen, drei Optionsfelder und zwei Schaltflächensteuerelemente hinzu. Ziehen Sie die beiden Labels nach oben, wobei Label1 über Label2 liegt. Ziehen Sie RadioButton1, RadioButton2 und RadioButton3, um sie vertikal unter den Beschriftungen auszurichten. Ziehen Sie die beiden Schaltflächen unter den Optionsfeldern mit Button1 links und Button2 rechts.

Die erste Zeile erstellt ein zweidimensionales Array. Die erste Dimension gilt für jede Frage und die zweite Dimension für die Frage selbst, drei Antwortmöglichkeiten und die richtige Antwort. Die zweite Zeile erstellt ein Array, um die Antworten des Benutzers zu speichern. Die dritte Zeile erstellt eine Zählervariable, die die Frage verfolgt, auf der sich der Benutzer befindet.

Private Sub GetQuestions() Fragen = New String(,) {{"Wie viele Farben hat ein Regenbogen?", "5", "6", "7", "7"}, {"Wer spielte in Fluch der Karibik?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"},

{"Was ist die Hauptstadt von Florida?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} End Sub

Diese Subroutine initialisiert einfach die drei Fragen und Antworten im Fragen-Array. Sie können zusätzliche Fragen hinzufügen oder auf andere Weise abrufen, z. B. über eine Textdatei, aber wenn Sie Denken Sie daran, die Größe der Frage- und Antwort-Arrays zu ändern, um die Anzahl der Fragen.

Private Sub MarkTest() Dim grade As Integer = 0 For i = 0 To 2 Wenn Antworten (i) = Fragen (i, 4) Dann grade += 1 End If Next Label1.Text = "Test beendet!" Label2.Text = "Sie haben mit " & bewertet & " von " & bewertet Antworten. Länge & "!" RadioButton1.Enabled = Falsch RadioButton2.Enabled = Falsch RadioButton3.Enabled = Falsch Button1.Enabled = Falsch Button2.Enabled = Falsch Ende Unter

Die erste Zeile deklariert ein Unterprogramm, das den Test markiert. Es erstellt eine lokale Variable, um die Punktzahl zu zählen, und durchläuft dann die Antworten im Fragen-Array und die vom Benutzer gesendeten Antworten. Für jede passende Antwort wird die Note um eins erhöht. Es zeigt dann die Punktzahl in den Beschriftungen an und deaktiviert die restlichen Steuerelemente.

Mich. Text = "Mein Multiple-Choice-Quiz!" GetQuestions() quesNum = 1 Label1.Text = "Frage" & quesNum & " von " & Antworten. Länge Label2.Text = Fragen (0, 0) Button1.Text = "Zurück" Button2.Text = "Weiter" RadioButton1.Text = Fragen (0, 1) RadioButton2.Text = Fragen (0, 2) RadioButton3.Text = Fragen (0, 3)

Die erste Zeile setzt den Titel in der Titelleiste. Die nächste Zeile ruft die Unterroutine GetQuestions() auf. Die dritte Zeile initialisiert die Fragezählervariable. Die vierte Zeile zeigt an, welche Fragenummer der Benutzer hat. In der fünften Zeile wird Frage 1 im Etikett angezeigt. Die sechste und siebte Zeile ändern den Text für die beiden Schaltflächen. Die letzten drei Zeilen fügen die drei Multiple-Choice-Antworten als Text für die drei Optionsfelder ein.

Wenn quesNum > 1 Then quesNum -= 1 Label1.Text = "Frage" & quesNum & " von 3" Label2.Text = Fragen (quesNum - 1, 0) RadioButton1.Text = Fragen (quesNum - 1, 1) RadioButton2.Text = Fragen (quesNum - 1, 2) RadioButton3.Text = Fragen (quesNum - 1, 3) If Button2.Text = "Submit" Then Button2.Text = "Next" End If End If

Dies ist der Code für die Schaltfläche "Zurück". Es prüft zunächst, ob der Benutzer die Schaltfläche bereits bei der ersten Frage gedrückt hat. Wenn nicht, wird der Fragenzähler um eins verringert und der Text für die Beschriftungen und Optionsfelder aktualisiert, um die vorherige Frage anzuzeigen. Wenn der Benutzer die letzte Frage beantwortet hat, ändert sich der Text auf Button2 von "Senden" zurück zu "Weiter".

If RadioButton1.Checked = True Dann antwortet (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True Dann antwortet (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True Then antwortet (quesNum - 1) = RadioButton3.Text End If RadioButton1.Focus() If quesNum < 3 Then quesNum += 1 Label1.Text = "Question " & quesNum & " of "& antwortet. Länge Label2.Text = Fragen (quesNum - 1, 0) RadioButton1.Text = Fragen (quesNum - 1, 1) RadioButton2.Text = Fragen (quesNum - 1, 2) RadioButton3.Text = Fragen (quesNum - 1, 3) If quesNum = 3 Then Button2.Text = "Submit" End If Else MarkTest() Ende, wenn

Dies ist der Code für die Schaltfläche "Weiter". In den ersten sieben Zeilen wird überprüft, welches Optionsfeld der Benutzer ausgewählt hat, und speichert diese Antwort dann im Antwort-Array. Die nächste Zeile fokussiert die Auswahl der Optionsfelder auf RadioButton1. In der nächsten Zeile wird überprüft, ob der Benutzer die letzte Frage nicht beantwortet. Wenn dies der Fall ist, wird der Fragenzähler um eins erhöht und die Beschriftungen und Optionsfelder aktualisiert, um die nächste Frage anzuzeigen. Anschließend wird überprüft, ob der Benutzer jetzt die letzte Frage beantwortet. Wenn dies der Fall ist, ändert es den Text für die Schaltfläche Weiter von "Weiter" in "Senden". Wenn der Benutzer bereits auf dem. war letzte Frage und klickt auf "Senden", ruft das Programm die "MarkTest"-Funktion auf, um die Punktzahl des Benutzers zu erhalten.