Hvert spørsmål i en multiple choice testen består av et spørsmål i seg selv og flere forskjellige svar , bare en som er riktig. Du kan opprette en multiple choice test i Visual Basic ved hjelp av etiketter å vise spørsmålene , radio knapper for mulige svar og knapp kontroller for å navigere mellom ulike spørsmål. I koden , bruker arrays for å lagre spørsmål og svar som brukeren sender og opprettholde en tellervariabelen å holde oversikt over hva spørsmålet brukeren er på . Ved slutten av testen, markere brukerens svar og vise resultatet på skjemaet. Instruksjoner
en
Åpne et nytt Visual Basic-prosjekt . Legg til to etiketter, tre radioknapper og to knapper kontroller i 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 linje skaper 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 array til å 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 = Ny String ( , ) { {" Hvor mange farger er i en regnbue ? " , " 5 " , "6" , "7" , " 7 "} , _
{" Who stjerne i Pirates of the Caribbean ? "," Johnny Depp "," John Malkovich "," John Cusack "," Johnny Depp "} , _
{" Hva er hovedstaden i Florida ? "," Miami "," Tallahassee "," Jacksonville " , " Tallahassee "} }
End Sub
p Dette subrutine initialiserer bare de tre spørsmålene og svarene 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 å ta hensyn til antall spørsmål.
4 < p> Skriv inn følgende kode :
Private Sub MarkTest ( )
Dim klasse As Integer = 0
For i = 0 til 2
p Hvis svar ( i) = spørsmål ( i, 4 ) Deretter
klasse + = 1
End If
Neste
Label1.Text = "Test ferdig ! "
Label2.Text =" Du scoret "& karakter &" av "& answers.Length &" ! "
RadioButton1.Enabled = False
RadioButton2.Enabled = False
RadioButton3.Enabled = False
Button1.Enabled = False
Button2.Enabled = False
End Sub
første linje erklærer en subrutine som markerer testen . Det skaper en lokal variabel å telle poeng , deretter sykler gjennom svarene i spørsmål matrise og svarene sendt inn av brukeren . For hvert svar som samsvarer , går klasse opp ved en. Den viser så scorer på etikettene og deaktiverer resten av kontrollene
5
Åpne Form1_Load ( ) subrutine og skriv inn følgende kode : .
Me.Text = " My multiple Choice Quiz ! "
GetQuestions ()
quesNum = 1
Label1.Text =" Question "& quesNum &" av "& answers.Length
< p> 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 angir tittelen i tittellinjen. Den neste linjen kaller GetQuestions () Subrutinen . Den tredje linjen initialiserer spørsmålet tellervariabelen . Den fjerde linjen viser hva spørsmålet nummer brukeren er på . Den femte linje som spørsmålstegn ett i etiketten. Den sjette og syvende linjer endre teksten for de to knappene . De tre siste linjene Sett de tre svaralternativer som tekst for de tre radioknappene
6
Åpne button1_click ( ) subrutine og skriv inn følgende kode : .
P Hvis quesNum > 1 Da
quesNum - = 1
Label1.Text = " Question " & 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 )
p Hvis Button2.Text = "Send " Da
Button2.Text = "Next "
End If
End If
p Dette er koden for " Forrige "-knappen . Den 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 det forrige spørsmålet . Hvis brukeren var på det siste spørsmålet , teksten på knappen2 endres fra " Submit" tilbake til
7
Åpne Button2_Click ( ) subrutine og skriv inn følgende kode "Next". :
< p > Hvis RadioButton1.Checked = sant da
svar ( quesNum - 1 ) = RadioButton1.Text
Elseif RadioButton2.Checked = sant da
svar ( quesNum - 1 ) = RadioButton2.Text
Elseif RadioButton3.Checked = sant da
svar ( quesNum - 1 ) = RadioButton3.Text
End If
RadioButton1.Focus ( )
p Hvis quesNum < 3 Så
quesNum + = 1
Label1.Text = " Question " & quesNum & " av " & 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 )
p Hvis quesNum = 3 Så
Button2.Text = "Send"
End Hvis
Else
MarkTest ( )
End If
p Dette er koden for "Next "-knappen . De første sju linjene sjekk for å se hva radio -knappen brukeren hadde valgt, sparer da at svaret på svar array. Den neste linjen fokuserer på valgknappen 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 for å se om brukeren er nå på det siste spørsmålet . Hvis så , endrer det teksten for på Neste-knappen fra "Next " til " Send". Hvis brukeren allerede var på det siste spørsmålet og klikket på " Submit ", i programmet kalles " MarkTest "-funksjonen for å få brukerens score.
8
Lagre Visual Basic program . Trykk "F5 " for å kjøre den.