Kako uporabiti Visual Basic za ustvarjanje testa z več izbirami

Odprite nov projekt Visual Basic. Obrazcu dodajte dve oznaki, tri izbirne gumbe in dva gumba. Povlecite obe nalepki na vrh z oznako 1 na vrhu oznake 2. Povlecite RadioButton1, RadioButton2 in RadioButton3, da se poravnajo navpično pod nalepkami. Povlecite oba gumba pod izbirna gumba z gumbom1 na levi in ​​gumbom 2 na desni.

Prva vrstica ustvari dvodimenzionalni niz. Prva dimenzija je za vsako vprašanje, druga dimenzija pa za samo vprašanje, tri možnosti odgovorov in pravilen odgovor. Druga vrstica ustvari matriko za shranjevanje uporabnikovih odgovorov. Tretja vrstica ustvari spremenljivko števca, ki spremlja vprašanje, na katerega je uporabnik.

Zasebna vprašanja GetQuestions() = New String(,) {{"Koliko barv je v mavrici?", "5", "6", "7", "7"}, {"Kdo je igral v Piratih s Karibov?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"Kaj je glavno mesto Floride?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} End Sub

Ta podprogram preprosto inicializira tri vprašanja in odgovore v nizu vprašanj. Dodate lahko dodatna vprašanja ali jih dobite na druge načine, na primer prek besedilne datoteke, če pa ne, ne pozabite spremeniti velikosti nizov vprašanj in odgovorov, da se prilagodijo številu vprašanja.

Private Sub MarkTest() Dim grade As Integer = 0 Za i = 0 do 2 Če so odgovori (i) = vprašanja (i, 4) Potem ocena += 1 Konec, če Next Label1.Text = "Test končan!" Label2.Text = "Dobili ste " & ocenili & " od " & odgovori. Dolžina & "!" RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton3.Enabled = False Button1.Enabled = False Button2.Enabled = False End Sub

Prva vrstica razglasi podprogram, ki označuje test. Ustvari lokalno spremenljivko za štetje rezultatov, nato pa kroži po odgovorih v nizu vprašanj in odgovorih, ki jih je predložil uporabnik. Za vsak odgovor, ki se ujema, se ocena dvigne za eno. Nato prikaže rezultat v oznakah in onemogoči preostale kontrole.

jaz. Besedilo = "Moj kviz z več izbirami!" GetQuestions() quesNum = 1 Label1.Text = "Vprašanje " & quesNum & " od " & odgovori. Dolžina Label2.Text = vprašanja (0, 0) Button1.Text = "Prejšnji" Button2.Text = "Naprej" RadioButton1.Text = vprašanja (0, 1) RadioButton2.Text = vprašanja (0, 2) RadioButton3.Text = vprašanja (0, 3)

Prva vrstica nastavi naslov v naslovni vrstici. Naslednja vrstica kliče podprogram GetQuestions(). Tretja vrstica inicializira spremenljivko števca vprašanj. V četrti vrstici je prikazano, na kateri številki vprašanja je uporabnik. V peti vrstici je v nalepki prikazano prvo vprašanje. Šesta in sedma vrstica spremenita besedilo za dva gumba. Zadnje tri vrstice vstavijo tri odgovore z več možnostmi kot besedilo za tri izbirne gumbe.

Če je quesNum > 1 Potem quesNum -= 1 Label1.Text = "Vprašanje " & quesNum & " od 3" Label2.Text = vprašanja (quesNum - 1, 0) RadioButton1.Text = vprašanja (quesNum - 1, 1) RadioButton2.Text = vprašanja (quesNum - 1, 2) RadioButton3.Text = vprašanja (quesNum - 1, 3) Če Button2.Text = "Pošlji" Potem Button2.Text = "Naprej" Konec, če Konec Če

To je koda za gumb "Prejšnji". Najprej preveri, ali je uporabnik že pri prvem vprašanju pritisnil gumb. Če ne, zmanjša števec vprašanj za eno in posodobi besedilo za oznake in izbirne gumbe, da prikaže prejšnje vprašanje. Če je bil uporabnik na zadnjem vprašanju, se besedilo na Button2 spremeni iz »Pošlji« nazaj v »Naprej«.

Če RadioButton1.Checked = True, potem odgovori (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True Potem odgovori (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True Potem odgovori (quesNum - 1) = RadioButton3.Text End Če RadioButton1.Focus() Če quesNum < 3 Potem quesNum += 1 Label1.Text = "Vprašanje " & quesNum & " od « & odgovori. Dolžina Label2.Text = vprašanja (quesNum - 1, 0) RadioButton1.Text = vprašanja (quesNum - 1, 1) RadioButton2.Text = vprašanja (quesNum - 1, 2) RadioButton3.Text = vprašanja (quesNum - 1, 3) Če je quesNum = 3 Potem Button2.Text = "Pošlji" Konec, če je drugače MarkTest() Konec Če

To je koda za gumb "Naprej". Prvih sedem vrstic preveri, kateri izbirni gumb je uporabnik izbral, nato pa ta odgovor shrani v niz odgovorov. Naslednja vrstica osredotoča izbiro izbirnega gumba na RadioButton1. Naslednja vrstica preveri, ali uporabnik ni na zadnjem vprašanju. Če je to res, poveča števec vprašanj za eno in posodobi oznake in izbirne gumbe, da prikažejo naslednje vprašanje. Nato preveri, ali je uporabnik zdaj na zadnjem vprašanju. Če je tako, spremeni besedilo za gumb Naprej iz "Naprej" v "Pošlji". Če je bil uporabnik že na zadnje vprašanje in kliknil "Pošlji", program pokliče funkcijo "MarkTest", da dobi rezultat uporabnika.