Jak používat Visual Basic k vytvoření testu s více možnostmi

Otevřete nový projekt jazyka Visual Basic. Přidejte do formuláře dva štítky, tři přepínače a dva ovládací prvky tlačítek. Přetáhněte dva štítky nahoru s Label1 na štítku2. Přetáhněte RadioButton1, RadioButton2 a RadioButton3, abyste je seřadili svisle pod štítky. Přetáhněte dvě tlačítka pod přepínači s Button1 nalevo a Button2 napravo.

První řádek vytvoří dvourozměrné pole. První rozměr je pro každou otázku a druhý rozměr je pro otázku samotnou, tři možnosti odpovědi a správnou odpověď. Druhý řádek vytvoří pole pro uložení odpovědí uživatele. Třetí řádek vytváří proměnnou čítače, která sleduje otázku, na které se uživatel nachází.

Private Sub GetQuestions() otázky = New String(,) {{"Kolik barev má duha?", "5", "6", "7", "7"}, {"Kdo hrál v Pirátech z Karibiku?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"Jaké je hlavní město Floridy?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} End Sub

Tento podprogram jednoduše inicializuje tři otázky a odpovědi v poli otázek. Můžete přidat další otázky nebo je získat jinými způsoby, například prostřednictvím textového souboru, ale pokud ano nezapomeňte změnit velikost polí otázek a odpovědí tak, aby odpovídala počtu otázky.

Private Sub MarkTest() Dim grade As Integer = 0 For i = 0 To 2 If odpovědi (i) = Questions (i, 4) Then stupeň += 1 End If Next Label1.Text = "Test dokončen!" Label2.Text = "Dosáhli jste " & známku & " z " & odpovědi. Délka & "!" RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton3.Enabled = False Button1.Enabled = False Button2.Enabled = False End Sub

První řádek deklaruje podprogram, který označuje test. Vytvoří místní proměnnou pro počítání skóre, poté cyklicky prochází odpovědi v poli otázek a odpovědi zadané uživatelem. Za každou shodující se odpověď se známka zvýší o jednu. Poté zobrazí skóre v popiscích a deaktivuje zbytek ovládacích prvků.

Mě. Text = "Můj kvíz s více možnostmi!" GetQuestions() quesNum = 1 Label1.Text = "Otázka " & quesNum & " z " & odpovědi. Délka Label2.Text = otázky (0, 0) Button1.Text = "Předchozí" Button2.Text = "Další" RadioButton1.Text = otázky (0, 1) RadioButton2.Text = otázky (0, 2) RadioButton3.Text = otázky (0, 3)

První řádek nastavuje název v záhlaví. Další řádek volá podprogram GetQuestions(). Třetí řádek inicializuje proměnnou čítače otázek. Čtvrtý řádek zobrazuje číslo otázky, na které se uživatel nachází. Pátý řádek zobrazuje otázku jedna ve štítku. Šestý a sedmý řádek změní text pro dvě tlačítka. Poslední tři řádky vloží tři odpovědi s více možnostmi jako text pro tři přepínače.

If quesNum > 1 Then quesNum -= 1 Label1.Text = "Otázka " & quesNum & " ze 3" Label2.Text = otázky (quesNum - 1, 0) RadioButton1.Text = otázky (quesNum - 1, 1) RadioButton2.Text = otázky (quesNum - 1, 2) RadioButton3.Text = otázky (quesNum - 1, 3) If Button2.Text = "Submit" Then Button2.Text = "Next" End If End If

Toto je kód pro tlačítko "Předchozí". Nejprve zkontroluje, zda uživatel stiskl tlačítko již na první otázce. Pokud ne, sníží počítadlo otázek o jednu a aktualizuje text štítků a přepínačů tak, aby zobrazoval předchozí otázku. Pokud byl uživatel na poslední otázce, text na Button2 se změní z "Odeslat" zpět na "Další."

If RadioButton1.Checked = True Then odpovědi (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True Then odpovědi (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True Pak odpovědi (quesNum - 1) = RadioButton3.Text End If RadioButton1.Focus() If quesNum < 3 Then quesNum += 1 Label1.Text = "Question" & quesNum & " of “ a odpovědi. Délka Label2.Text = otázky (quesNum - 1, 0) RadioButton1.Text = otázky (quesNum - 1, 1) RadioButton2.Text = otázky (quesNum - 1, 2) RadioButton3.Text = otázky (quesNum - 1, 3) If quesNum = 3 Then Button2.Text = "Submit" End If Else MarkTest() End If

Toto je kód pro tlačítko "Další". Prvních sedm řádků zkontroluje, jaký přepínač uživatel vybral, a poté tuto odpověď uloží do pole odpovědí. Další řádek zaměří výběr přepínače na RadioButton1. Další řádek zkontroluje, zda uživatel není na poslední otázce. Pokud je to pravda, zvýší počítadlo otázek o jednu a aktualizuje štítky a přepínače, aby se zobrazila další otázka. Poté zkontroluje, zda je uživatel nyní na poslední otázce. Pokud ano, změní text tlačítka Další z „Další“ na „Odeslat“. Pokud byl uživatel již na poslední otázka a klikli na "Odeslat", program zavolá funkci "MarkTest", aby získal skóre uživatele.