Hvert spørgsmål i en multiple choice test består af et spørgsmål selv og flere forskellige svar , hvoraf kun én er korrekt. Du kan oprette en multiple choice test i Visual Basic ved hjælp af etiketter til at vise de spørgsmål , radioknapper for de mulige svar og knap kontrol til at navigere mellem de forskellige spørgsmål. I koden , brug arrays til at redde de spørgsmål og svar , som brugeren har gjort , og opretholde en tællervariablen at holde styr på, hvad spørgsmålstegn ved brugeren er på . Ved afslutningen af testen , markere brugerens svar og vise resultatet på formularen . Instruktioner
1
Åbn et nyt Visual Basic-projekt . Tilføj to etiketter, tre radioknapper og to knapperne til formularen. Træk de to etiketter på toppen med Label1 oven på Label2 . Træk RadioButton1 , RadioButton2 og RadioButton3 at line op lodret under etiketterne. Træk de to knapper under radioknapperne med Button1 til venstre og button2 til højre.
2
Tryk på " F7 " for at åbne koden vinduet. Indtast følgende kode på klasseniveau :
Dim spørgsmål ( 2 , 4) As String
Dim svar (2) As String
Dim quesNum As Integer
første linje skaber et todimensionalt array. Den første dimension er for hvert spørgsmål , og den anden dimension er for selve spørgsmålet , tre svarmuligheder , og det korrekte svar. Den anden linje skaber et array til at gemme brugerens svar. Den tredje linje skaber en tæller variabel, der holder styr på det spørgsmål, brugeren er på
3
Indtast følgende kode : .
Private Sub GetQuestions ()
spørgsmål = Ny String (,) {{ "Hvor mange farver er i en regnbue ? ", " 5", "6" , "7" , "7" }, _
{ "Hvem medvirket i Pirates of the Caribbean? "," Johnny Depp "," John Malkovich "," John Cusack "," Johnny Depp "}, _
{" Hvad er hovedstaden i Florida? "," Miami "," Tallahassee "," Jacksonville "," Tallahassee "}}
End Sub
Denne subrutine simpelthen initialiserer de tre spørgsmål og svar i spørgsmål array. Du kan tilføje yderligere spørgsmål eller få dem på andre måder, såsom via en tekstfil , men hvis du gør , så husk at ændre størrelsen på spørgsmål og svar arrays til at rumme antallet af spørgsmål .
4 < p> Indtast følgende kode : Hej
Private Sub MarkTest ()
Dim klasse As Integer = 0
for i = 0 til 2
p Hvis svar ( i) = spørgsmål ( i, 4) Så
kvalitet + = 1
End If
Næste
Label1.Text = "Test færdig! "
Label2.Text =" Du scorede "& kvalitet &" af "& 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 , der markerer testen . Det skaber en lokal variabel til at tælle score, så cykler gennem svarene i spørgsmål array og svarene indsendt af brugeren. For hvert svar , der matcher , går den lønklasse op med én. Det viser derefter score i de etiketter og deaktiverer resten af kontrollerne
5
Åbn Form1_Load () subrutine , og skriv følgende kode : .
Me.Text = " My multiple Choice Quiz! "
GetQuestions ()
quesNum = 1
Label1.Text =" Spørgsmål "& quesNum &" af "& answers.Length
< p> Label2.Text = spørgsmål ( 0, 0)
Button1.Text = "Tidligere "
Button2.Text = " Næste "
RadioButton1.Text = spørgsmål ( 0 , 1)
RadioButton2.Text = spørgsmål ( 0, 2 )
RadioButton3.Text = spørgsmål ( 0, 3)
den første linje angiver titlen i titellinjen. Den næste linje kalder GetQuestions () subrutine . Den tredje linje initialiserer spørgsmålet tællervariablen . Den fjerde linje vises , hvad spørgsmål nummer brugeren er på . Den femte linje vises spørgsmålstegn én i etiketten. Det sjette og syvende linje ændre teksten for de to knapper. De sidste tre linjer indsætte de tre multiple choice-svar som tekst for de tre radioknapper
6
Åbn Button1_Click () subrutine og skriv følgende kode :.
P Hvis quesNum > 1 Så
quesNum - = 1
Label1.Text = " spørgsmål " & quesNum & " på 3 "
Label2.Text = spørgsmål ( quesNum - 1, 0) Salg
RadioButton1.Text = spørgsmål ( quesNum - 1, 1)
RadioButton2.Text = spørgsmål ( quesNum - 1, 2)
RadioButton3.Text = spørgsmål ( quesNum - 1 , 3)
p Hvis Button2.Text = "Submit" Så
Button2.Text = "Næste "
End If
End If < br > p Dette er koden for " Forrige " knappen. Det kontrollerer først , om brugeren har trykket på knappen, mens der allerede er på det første spørgsmål. Hvis ikke, Mindsker det spørgsmålet tæller med én og opdaterer teksten til etiketter og radioknapper til at vise det foregående spørgsmål. Hvis brugeren var på det sidste spørgsmål , teksten på button2 skifter fra "Submit " back to
7
Åbn Button2_Click () subrutine , og skriv følgende kode "Næste". : Hej < p > Hvis RadioButton1.Checked = true Så
svar ( quesNum - 1) = RadioButton1.Text
elseif RadioButton2.Checked = sandt, så
svar ( quesNum - 1) = RadioButton2.Text
elseif RadioButton3.Checked = true Så
svar ( quesNum - 1) = RadioButton3.Text
End If
RadioButton1.Focus ()
p Hvis quesNum <3 Så
quesNum + = 1
Label1.Text = " Spørgsmål " & quesNum & " af " & answers.Length
Label2.Text = spørgsmål ( quesNum - 1 , 0)
RadioButton1.Text = spørgsmål ( quesNum - 1, 1)
RadioButton2.Text = spørgsmål ( quesNum - 1, 2 )
RadioButton3.Text = spørgsmål ( quesNum - 1, 3)
p Hvis quesNum = 3 Så
Button2.Text = " Submit "
End Hvis
Else
MarkTest ()
End If
p Dette er koden til knappen "Næste" . De første syv linjer check for at se , hvad valgknappen brugeren havde valgt, så gemmer der svaret på svarene array. Den næste linje fokuserer alternativknappen markering på RadioButton1 . Den næste linje kontrollerer , at brugeren ikke er på det sidste spørgsmål . Hvis dette er sandt , det øger spørgsmålet disken af en og opdaterer de etiketter og radio knapper til at vise det næste spørgsmål. Derefter kontrollerer at se, om brugeren er nu på det sidste spørgsmål . Hvis det er tilfældet , ændrer det teksten til knappen Næste fra " Next " til " Send". Hvis brugeren var allerede på det sidste spørgsmål og klikket på "Send ", programmet kalder " MarkTest "-funktionen for at få brugerens score.
8
Gem Visual Basic-program . Tryk på " F5 " for at køre den.