Ako používať Visual Basic na vytvorenie testu s viacerými možnosťami

click fraud protection

Otvorte nový projekt jazyka Visual Basic. Pridajte do formulára dva štítky, tri prepínače a dva ovládacie prvky tlačidiel. Potiahnite dva štítky nahor, pričom štítok1 je umiestnený na štítku2. Potiahnite RadioButton1, RadioButton2 a RadioButton3, aby ste sa zoradili vertikálne pod štítky. Potiahnite dve tlačidlá pod prepínačmi s tlačidlom 1 vľavo a tlačidlom 2 vpravo.

Prvý riadok vytvára dvojrozmerné pole. Prvý rozmer je pre každú otázku a druhý rozmer je pre otázku samotnú, tri možnosti odpovede a správnu odpoveď. Druhý riadok vytvorí pole na uloženie odpovedí používateľa. Tretí riadok vytvára premennú počítadla, ktorá sleduje otázku, na ktorú sa používateľ nachádza.

Private Sub GetQuestions() otázky = New String(,) {{"Koľko farieb má dúha?", "5", "6", "7", "7"}, {"Kto hral vo filme Piráti z Karibiku?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"Aké je hlavné mesto Floridy?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} End Sub

Tento podprogram jednoducho inicializuje tri otázky a odpovede v poli otázok. Môžete pridať ďalšie otázky alebo ich získať iným spôsobom, napríklad prostredníctvom textového súboru, ale ak áno nezabudnite zmeniť veľkosť polí otázok a odpovedí, aby sa prispôsobili ich počtu otázky.

Private Sub MarkTest() Dim grade As Integer = 0 Pre i = 0 až 2 Ak odpovede (i) = otázky (i, 4) Potom stupeň += 1 End If Next Label1.Text = "Test ukončený!" Label2.Text = "Dosiahli ste " & známku & " z " & odpovede. Dĺžka & "!" RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton3.Enabled = False Button1.Enabled = False Button2.Enabled = False End Sub

Prvý riadok deklaruje podprogram, ktorý označuje test. Vytvára lokálnu premennú na počítanie skóre, potom cyklicky prechádza odpoveďami v poli otázok a odpoveďami zadanými používateľom. Za každú zhodnú odpoveď sa známka zvýši o jednu. Potom zobrazí skóre v štítkoch a deaktivuje ostatné ovládacie prvky.

ja. Text = "Môj kvíz s viacerými možnosťami!" GetQuestions() quesNum = 1 Label1.Text = "Otázka " & quesNum & " z " & odpovede. Dĺžka Label2.Text = otázky (0, 0) Button1.Text = "Predchádzajúci" Button2.Text = "Ďalší" RadioButton1.Text = otázky (0, 1) RadioButton2.Text = otázky (0, 2) RadioButton3.Text = otázky (0, 3)

Prvý riadok nastavuje názov v záhlaví. Ďalší riadok volá podprogram GetQuestions(). Tretí riadok inicializuje premennú počítadla otázok. Štvrtý riadok zobrazuje číslo otázky, na ktorej sa používateľ nachádza. Piaty riadok zobrazuje otázku jedna v označení. Šiesty a siedmy riadok zmení text pre dve tlačidlá. Posledné tri riadky vkladajú tri odpovede s viacerými možnosťami ako text pre tri prepínače.

Ak quesNum > 1, potom quesNum -= 1 Label1.Text = "Otázka " & quesNum & " z 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 pre tlačidlo „Predchádzajúce“. Najprv skontroluje, či používateľ stlačil tlačidlo už pri prvej otázke. Ak nie, zníži počítadlo otázok o jednu a aktualizuje text štítkov a prepínačov, aby sa zobrazila predchádzajúca otázka. Ak bol používateľ na poslednej otázke, text na Button2 sa zmení z „Odoslať“ späť na „Ďalej“.

Ak RadioButton1.Checked = True Then odpovede (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True Then odpovede (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True Potom odpovede (quesNum - 1) = RadioButton3.Text End If RadioButton1.Focus() If quesNum < 3 Then quesNum += 1 Label1.Text = "Otázka " & quesNum & " z “ a odpovede. Dĺžka 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() Koniec Ak

Toto je kód pre tlačidlo „Ďalej“. Prvých sedem riadkov skontroluje, ktorý prepínač si používateľ vybral, a potom túto odpoveď uloží do poľa odpovedí. Ďalší riadok zameria výber prepínača na RadioButton1. Ďalší riadok skontroluje, či používateľ neodpovedá na poslednú otázku. Ak je to pravda, zvýši sa počítadlo otázok o jednu a aktualizujú sa štítky a prepínače, aby sa zobrazila ďalšia otázka. Potom skontroluje, či je používateľ teraz na poslednej otázke. Ak áno, zmení text tlačidla Ďalej z „Ďalej“ na „Odoslať“. Ak používateľ už bol na posledná otázka a kliknutie na „Odoslať“, program zavolá funkciu „MarkTest“, aby získal skóre používateľa.