Wie Sie Visual Basic verwenden, um eine Multiple-Choice-Test erstellen

September 18

Jede Frage in einer multiple-Choice-Test besteht aus einer Frage selbst und mehrere verschiedene Antworten, nur eine davon ist richtig. Sie können in Visual Basic verwenden Etiketten zur Anzeige der Fragen, die Radio-Buttons für die möglichen Antworten und Button-Steuerelemente zu Navigation zwischen verschiedenen Fragen einen multiple-Choice-Test erstellen. Im Code Verwenden von Arrays, um die Fragen und Antworten, die der Benutzer zu speichern und pflegen eine Zählervariable um zu verfolgen was Frage der Benutzer befindet. Am Ende des Tests markieren Sie den Benutzer Antworten, und zeigen Sie das Ergebnis auf dem Formular an.

Anweisungen

1 Öffnen Sie ein neues Visual Basic-Projekt. Zwei Bezeichnungen, drei Radio-Buttons und zwei Button-Steuerelemente dem Formular hinzufügen. Ziehen Sie die zwei Bezeichnungen an die Spitze mit Label1 oben Label2 auf. Ziehen Sie RadioButton1, RadioButton2 und RadioButton3 Linie oben vertikal unter den Labels. Ziehen Sie Links die beiden Tasten unterhalb der Optionsfelder mit Button1 und Button2 auf der rechten Seite.

2 Presse "F7", um das Codefenster zu öffnen. Geben Sie den folgenden Code auf der Klassenebene:

Dim Fragen (2, 4) As String

Dim answers(2) As String

Dim QuesNum As Integer

Die erste Zeile erstellt ein zweidimensionales Array. Die erste Dimension ist für jede Frage und die zweite Dimension ist für die Frage selbst, drei Antwort-Möglichkeiten und die richtige Antwort. Die zweite Zeile erstellt ein Array zum Speichern der Benutzer Antworten. Die dritte Zeile erstellt eine Zählervariable, die protokolliert die Frage, die sich der Benutzer befindet.

3 Geben Sie den folgenden Code:

Private Sub GetQuestions()

Fragen neue String(,) = {{"wie viele Farben in einem Regenbogen sind?", "5", "6", "7", "7"}, _

{"Der Fluch der Karibik spielte?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, _

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

EndSub

Diese Unterroutine initialisiert einfach drei Fragen und Antworten im Array Fragen. Sie können zusätzliche Fragen hinzufügen oder erhalten sie auf andere Weise, z. B. durch eine Textdatei, aber wenn Sie tun, denken Sie daran, zum Ändern der Größe der Frage- und Antwort-Arrays die Anzahl der Fragen.

4 Geben Sie den folgenden Code:

Private Sub MarkTest()

Dim Klasse As Integer = 0

Für i = 0 bis 2

Wenn answers(i) = Fragen (i, 4) Then

Besoldungsgruppe += 1

EndIf

Nächste

Label1.Text = "Test beendet!"

Label2.Text = "Erzielte Sie" Klasse "aus dem" & & beantwortet. Länge & "!"

RadioButton1.Enabled = False

RadioButton2.Enabled = False

RadioButton3.Enabled = False

Button1.Enabled = False

Button2.Enabled = False

EndSub

Die erste Zeile deklariert eine Unterroutine, die den Test markiert. Es erstellt eine lokale Variable um die Punktzahl zu zählen, dann durchläuft die Antworten im Array Fragen und die Antworten, die vom Benutzer eingereicht. Für jede Antwort, die entspricht, steigt der Grad um eins. Dann zeigt das Ergebnis in den Bezeichnungen und den Rest der Steuerelemente deaktiviert.

5 Öffnen Sie die Unterroutine Form1_Load() und geben Sie den folgenden Code:

Me.Text = "Meine mehrere Wahl Quiz!"

GetQuestions()

QuesNum = 1

Label1.Text = "Frage" & QuesNum & "von" & Antworten. Länge

Label2.Text = Questions (0, 0)

Button1.Text = "Vorheriges"

Button2.Text = "Weiter"

RadioButton1.Text = Questions (0, 1)

RadioButton2.Text = Questions (0, 2)

RadioButton3.Text = Questions (0, 3)

Die erste Zeile setzt den Titel in der Titelleiste angezeigt. Die nächste Zeile Ruft die Subroutine GetQuestions(). Die dritte Zeile initialisiert die Zählervariable in Frage. Die vierte Zeile zeigt welche Fragenummer der Benutzer befindet. Die fünfte Zeile zeigt die Frage einer in der Bezeichnung. Die sechsten und siebten Linien ändern Sie den Text für die beiden Schaltflächen. Die letzten drei Zeilen einfügen, die drei Antworten multiple-Choice als Text für die drei Optionsfelder.

6 Öffnen Sie die Unterroutine Button1_Click() und geben Sie den folgenden Code:

Wenn QuesNum > 1 Then

QuesNum = 1

Label1.Text = "Frage" & QuesNum & "von 3"

Label2.Text = Questions (QuesNum - 1, 0)

RadioButton1.Text = Questions (QuesNum - 1, 1)

RadioButton2.Text = Questions (QuesNum - 1, 2)

RadioButton3.Text = Questions (QuesNum - 1, 3)

Wenn Button2.Text = "Submit" dann

Button2.Text = "Weiter"

EndIf

EndIf

Dies ist der Code für die Schaltfläche "Zurück". Es überprüft zuerst, wenn der Benutzer die Schaltfläche zwar schon auf die erste Frage. Wenn nicht, es verringert die Frage Zähler um eins und Updates der Text für die Etiketten und Radio buttons der vorhergehenden Frage zeigen. Wenn der Benutzer auf die letzte Frage war, ändert sich der Text auf Button2 von "Abschicken" zurück zu "Weiter."

7 Öffnen Sie die Unterroutine Button2_Click() und geben Sie den folgenden Code:

Wenn RadioButton1.Checked = True Then

Antworten (QuesNum - 1) = RadioButton1.Text

ElseIf RadioButton2.Checked = True Then

Antworten (QuesNum - 1) = RadioButton2.Text

ElseIf RadioButton3.Checked = True Then

Antworten (QuesNum - 1) = RadioButton3.Text

EndIf

RadioButton1.Focus()

Wenn dann QuesNum < 3

QuesNum += 1

Label1.Text = "Frage" & QuesNum & "von" & Antworten. Länge

Label2.Text = Questions (QuesNum - 1, 0)

RadioButton1.Text = Questions (QuesNum - 1, 1)

RadioButton2.Text = Questions (QuesNum - 1, 2)

RadioButton3.Text = Questions (QuesNum - 1, 3)

Wenn QuesNum = 3 Then

Button2.Text = "Submit"

EndIf

Sonst

MarkTest()

EndIf

Dies ist der Code für die Schaltfläche "Weiter". Die ersten sieben Zeilen prüfen, um zu sehen, welches Optionsfeld der Benutzer ausgewählt hatte, die Antwort auf die Antworten-Array speichert. Die nächste Zeile konzentriert sich die Radio-Taste Auswahl auf RadioButton1. Die nächste Zeile überprüft, dass der Benutzer nicht auf die letzte Frage ist. Wenn das stimmt, es wird den Frage Zähler um eins erhöht und aktualisiert die Kennungen und Radio-Buttons, die nächste Frage zu zeigen. Es wird dann geprüft, wenn der Benutzer nun auf die letzte Frage ist. Wenn ja, wird den Text für die Schaltfläche weiter aus "Weiter" in den "Absenden". Wenn der Benutzer bereits auf die letzte Frage war und auf "Absenden" geklickt, ruft das Programm die "MarkTest"-Funktion, um den Benutzer Kerbe zu erhalten.

8 Speichern Sie das Visual Basic-Programm. Drücken Sie die Taste "F5", um auszuführen.