Jak używać języka Visual Basic do tworzenia testu wielokrotnego wyboru

Otwórz nowy projekt Visual Basic. Dodaj do formularza dwie etykiety, trzy przyciski radiowe i dwie kontrolki przycisków. Przeciągnij dwie etykiety na górę, tak aby etykieta1 znajdowała się na górze etykiety2. Przeciągnij RadioButton1, RadioButton2 i RadioButton3, aby wyrównać pionowo pod etykietami. Przeciągnij dwa przyciski pod przyciski opcji z Button1 po lewej i Button2 po prawej.

Pierwsza linia tworzy dwuwymiarową tablicę. Pierwszy wymiar dotyczy każdego pytania, a drugi wymiar dotyczy samego pytania, trzech możliwości wyboru odpowiedzi i prawidłowej odpowiedzi. Drugi wiersz tworzy tablicę do przechowywania odpowiedzi użytkownika. Trzecia linia tworzy zmienną licznika, która śledzi pytanie, na którym znajduje się użytkownik.

Private Sub GetQuestions() question = New String(,) {{"Ile kolorów ma tęcza?", "5", "6", "7", "7"}, {"Kto zagrał w Piraci z Karaibów?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"Jaka jest stolica Florydy?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} Koniec Sub

Ten podprogram po prostu inicjuje trzy pytania i odpowiedzi w tablicy pytań. Możesz dodać dodatkowe pytania lub uzyskać je w inny sposób, na przykład za pomocą pliku tekstowego, ale jeśli tak, pamiętaj, aby zmienić rozmiar tablic pytań i odpowiedzi, aby pomieścić liczbę pytania.

Private Sub MarkTest() Dim grade As Integer = 0 For i = 0 To 2 Jeśli odpowiedzi (i) = pytania (i, 4) Wtedy grade += 1 End If Next Label1.Text = "Test zakończony!" Label2.Text = "Uzyskałeś " & ocena & " z " & odpowiedzi. Długość & "!" RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton3.Enabled = False Button1.Enabled = False Button2.Enabled = False End Sub

Pierwsza linia deklaruje podprogram oznaczający test. Tworzy zmienną lokalną do zliczania punktów, a następnie przechodzi przez odpowiedzi w tablicy pytań oraz odpowiedzi przesłane przez użytkownika. Dla każdej pasującej odpowiedzi ocena wzrasta o jeden. Następnie wyświetla wynik na etykietach i wyłącza pozostałe elementy sterujące.

Ja. Text = "Mój quiz wielokrotnego wyboru!" GetQuestions() quesNum = 1 Label1.Text = "Pytanie " & quesNum & " z " & odpowiedzi. Długość Label2.Text = pytania (0, 0) Button1.Text = "Poprzedni" Button2.Text = "Dalej" RadioButton1.Text = pytania (0, 1) RadioButton2.Text = pytania (0, 2) RadioButton3.Text = pytania (0, 3)

Pierwsza linia ustawia tytuł na pasku tytułu. Następna linia wywołuje podprogram GetQuestions(). Trzecia linia inicjuje zmienną licznika pytań. Czwarty wiersz wyświetla numer pytania, na którym znajduje się użytkownik. Piąta linia wyświetla pytanie pierwsze na etykiecie. Szósty i siódmy wiersz zmieniają tekst dla dwóch przycisków. Ostatnie trzy wiersze wstawiają trzy odpowiedzi wielokrotnego wyboru jako tekst dla trzech przycisków opcji.

Jeśli quesNum > 1 Wtedy quesNum -= 1 Label1.Text = "Pytanie " & quesNum & " z 3" Label2.Text = pytania (quesNum - 1, 0) RadioButton1.Text = pytania (quesNum - 1, 1) RadioButton2.Text = pytania (quesNum - 1, 2) RadioButton3.Text = pytania (quesNum - 1, 3) If Button2.Text = "Prześlij" Then Button2.Text = "Dalej" End If End If

To jest kod przycisku „Poprzedni”. Najpierw sprawdza, czy użytkownik nacisnął przycisk już przy pierwszym pytaniu. Jeśli nie, zmniejsza licznik pytań o jeden i aktualizuje tekst etykiet i przycisków opcji, aby pokazać poprzednie pytanie. Jeśli użytkownik był na ostatnim pytaniu, tekst na przycisku 2 zmienia się z „Prześlij” z powrotem na „Dalej”.

If RadioButton1.Checked = True To odpowiada (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True To odpowiada (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True Następnie odpowiedzi (quesNum - 1) = RadioButton3.Text End If RadioButton1.Focus() If quesNum < 3 Then quesNum += 1 Label1.Text = "Pytanie " & quesNum & " z " i odpowiedzi. Długość Label2.Text = pytania (quesNum - 1, 0) RadioButton1.Text = pytania (quesNum - 1, 1) RadioButton2.Text = pytania (quesNum - 1, 2) RadioButton3.Text = pytania (quesNum - 1, 3) If quesNum = 3 Then Button2.Text = "Prześlij" End If Else MarkTest() Zakończ, jeśli

To jest kod przycisku „Dalej”. Pierwsze siedem wierszy sprawdza, jaki przycisk opcji wybrał użytkownik, a następnie zapisuje tę odpowiedź w tablicy odpowiedzi. Następna linia skupia wybór przycisku radiowego na RadioButton1. Następna linia sprawdza, czy użytkownik nie jest na ostatnim pytaniu. Jeśli to prawda, zwiększa licznik pytań o jeden i aktualizuje etykiety i przyciski opcji, aby wyświetlić następne pytanie. Następnie sprawdza, czy użytkownik jest teraz na ostatnim pytaniu. Jeśli tak, zmienia tekst przycisku Dalej z „Dalej” na „Prześlij”. Jeśli użytkownik był już na ostatnie pytanie i kliknął „Prześlij”, program wywołuje funkcję „MarkTest”, aby uzyskać wynik użytkownika.