Hvordan bruke Visual Basic for å opprette en flervalgstest

Hvert spørsmål i en flervalgs testen består av et spørsmål seg og flere forskjellige svar, hvorav kun en er riktig. Du kan opprette en flervalgstest i Visual Basic bruke etiketter for å vise spørsmålene, radioknapper for de mulige svar og knappekontrollene til å navigere mellom ulike spørsmål. I koden, for å bruke arrays lagre spørsmål og svar som brukeren sender og opprettholde en tellervariabelen for å holde styr på hva spørsmålet brukeren er på. Ved slutten av testen, markerer brukerens svar og vise resultatet på skjemaet.

Bruksanvisning

1 Åpne en ny Visual Basic-prosjekt. Legg til to etiketter, tre radioknapper og to knappekontrollene til skjemaet. Dra de to etikettene til toppen med Label1 på toppen av Label2. Dra RadioButton1, RadioButton2 og RadioButton3 å stille opp vertikalt under etikettene. Dra de to knappene under radioknappene med Button1 på venstre og Button2 til høyre.

2 Trykk "F7" for å åpne koden vinduet. Skriv inn følgende kode på klassenivå:

Dim spørsmål (2, 4) Som String

Dim svar (2) Som String

Dim quesNum As Integer

Den første linjen danner en todimensjonal array. Den første dimensjonen er for hvert spørsmål og den andre dimensjonen er for selve spørsmålet, tre svaralternativer, og det riktige svaret. Den andre linjen skaper en matrise for å lagre brukerens svar. Den tredje linjen skaper en tellervariabelen som holder styr på spørsmålet brukeren er på.

3 Skriv inn følgende kode:

Private Sub GetQuestions ()

spørsmål = new String (,) {{ "Hvor mange farger er i en regnbue?", "5", "6", "7", "7"}, _

{ "Hvem spilte hovedrollen i Pirates of the Caribbean?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, _

{ "Hva er hovedstaden i Florida?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}}

End Sub

Denne subrutine initialiserer bare tre spørsmål og svar i spørsmål array. Du kan legge til flere spørsmål eller få dem på andre måter, for eksempel gjennom en tekstfil, men hvis du gjør det, må du huske å endre størrelsen på spørsmål og svar arrays for å imøtekomme antall spørsmål.

4 Skriv inn følgende kode:

Private Sub MarkTest ()

Dim grade As Integer = 0

For i = 0 til 2

Hvis svarene (i) = spørsmål (i, 4) Deretter

klasse + = 1

Slutt om

neste

Label1.Text = "Test ferdig!"

Label2.Text = "Du scoret" og karakteren & "ut av" & answers.Length & "!"

RadioButton1.Enabled = False

RadioButton2.Enabled = False

RadioButton3.Enabled = False

Button1.Enabled = False

Button2.Enabled = False

End Sub

Den første linjen erklærer en subrutine som markerer test. Det skaper en lokal variabel å telle poeng, deretter blar gjennom de svarene i spørsmål matrise og svarene er sendt inn av brukeren. For hvert svar som matcher, går karakteren opp med én. Den viser så scorer i etikettene og deaktiverer resten av kontrollene.

5 Åpne Form1_Load () subroutine og skriv inn følgende kode:

Me.Text = "Min Multiple Choice Quiz!"

GetQuestions ()

quesNum = 1

Label1.Text = "Spørsmål" og quesNum & "av" og answers.Length

Label2.Text = spørsmål (0, 0)

Button1.Text = "Forrige"

Button2.Text = "Neste"

RadioButton1.Text = spørsmål (0, 1)

RadioButton2.Text = spørsmål (0, 2)

RadioButton3.Text = spørsmål (0, 3)

Den første linjen setter tittelen på tittellinjen. Den neste linjen kaller GetQuestions () subrutine. Den tredje linjen initialiserer spørsmålet tellervariabelen. Den fjerde linjen viser hva spørsmål nummer brukeren er på. Den femte linjen viser spørsmålet en på etiketten. Den sjette og sjuende linjer endre teksten for de to knappene. De siste tre linjer inn de tre svaralternativer som tekst for de tre radioknappene.

6 Åpne button1_click () subroutine og skriv inn følgende kode:

Hvis quesNum> 1 Da

quesNum - = 1

Label1.Text = "Spørsmål" og quesNum & "av 3"

Label2.Text = spørsmål (quesNum - 1, 0)

RadioButton1.Text = spørsmål (quesNum - 1, 1)

RadioButton2.Text = spørsmål (quesNum - 1, 2)

RadioButton3.Text = spørsmål (quesNum - 1, 3)

Hvis Button2.Text = "Send" Da

Button2.Text = "Neste"

Slutt om

Slutt om

Dette er koden for "Forrige" -knappen. Det sjekker først for å se om brukeren trykker på knappen mens allerede på det første spørsmålet. Hvis ikke, svekkelser det spørsmålet telleren med én og oppdaterer teksten for etiketter og radioknapper for å vise forrige spørsmål. Hvis brukeren var på det siste spørsmålet, teksten på Button2 endres fra "Send" tilbake til "Next".

7 Åpne Button2_Click () subroutine og skriv inn følgende kode:

Hvis RadioButton1.Checked = True Deretter

svar (quesNum - 1) = RadioButton1.Text

ElseIf RadioButton2.Checked = True Deretter

svar (quesNum - 1) = RadioButton2.Text

ElseIf RadioButton3.Checked = True Deretter

svar (quesNum - 1) = RadioButton3.Text

Slutt om

RadioButton1.Focus ()

Hvis quesNum <3 Da

quesNum + = 1

Label1.Text = "Spørsmål" og quesNum & "av" og answers.Length

Label2.Text = spørsmål (quesNum - 1, 0)

RadioButton1.Text = spørsmål (quesNum - 1, 1)

RadioButton2.Text = spørsmål (quesNum - 1, 2)

RadioButton3.Text = spørsmål (quesNum - 1, 3)

Hvis quesNum = 3, så

Button2.Text = "Send"

Slutt om

Ellers

MarkTest ()

Slutt om

Dette er koden for "Neste" -knappen. De første sju linjene sjekke for å se hva alternativknappen brukeren hadde valgt, sparer da at svaret på svar array. Den neste linjen fokuserer på alternativknappen utvalg på RadioButton1. Den neste linjen kontrollerer at brukeren ikke er på det siste spørsmålet. Hvis dette er sant, det øker spørsmålet telleren med én og oppdaterer etiketter og radioknapper for å vise det neste spørsmålet. Den sjekker da å se om brukeren er nå på det siste spørsmålet. Hvis så, det forandrer teksten for Neste-knappen fra "Next" til "Send". Hvis brukeren allerede var på det siste spørsmålet og klikket på "Send", programmet kaller "MarkTest" funksjonen for å få brukerens poengsum.

8 Lagre Visual Basic-programmet. Trykk "F5" for å kjøre den.