Sådan bruger du Visual Basic til at oprette en multiple choice-test

Åbn et nyt Visual Basic-projekt. Tilføj to etiketter, tre alternativknapper og to knapper til formularen. Træk de to etiketter til toppen med Label1 oven på Label2. Træk RadioButton1, RadioButton2 og RadioButton3 for at stille op lodret under etiketterne. Træk de to knapper under radioknapperne med knap1 til venstre og knap2 til højre.

Den første linje opretter et todimensionelt array. Den første dimension er for hvert spørgsmål, og den anden dimension er for selve spørgsmålet, tre svarvalg og det rigtige svar. Den anden linje opretter et array til at gemme brugerens svar. Den tredje linje opretter en tællervariabel, der holder styr på det spørgsmål, brugeren er på.

Private Sub GetQuestions() question = New String(,) {{"Hvor mange farver er der i en regnbue?", "5", "6", "7", "7"}, {"Hvem medvirkede 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 initialiserer simpelthen de tre spørgsmål og svar i spørgsmålsarrayet. Du kan tilføje yderligere spørgsmål eller få dem på andre måder, såsom gennem en tekstfil, men hvis du gør, husk at ændre størrelsen på spørgsmål og svar-arrays for at rumme antallet af spørgsmål.

Privat Sub MarkTest() Dim karakter Som heltal = 0 For i = 0 Til 2 Hvis svar (i) = spørgsmål (i, 4) Så karakter += 1 End If Next Label1.Text = "Test afsluttet!" Label2.Text = "Du scorede " & karakter & " ud af " & svar. Længde & "!" RadioButton1.Enabled = Falsk RadioButton2.Enabled = Falsk RadioButton3.Enabled = Falsk Button1.Enabled = Falsk Button2.Enabled = Falsk End Sub

Den første linje erklærer en underrutine, der markerer testen. Den opretter en lokal variabel til at tælle scoren og gennemgår derefter svarene i spørgsmålsarrayet og svarene indsendt af brugeren. For hvert svar, der matcher, stiger karakteren med én. Det viser derefter scoren i etiketterne og deaktiverer resten af ​​kontrollerne.

Mig. Tekst = "Min Multiple Choice Quiz!" GetQuestions() quesNum = 1 Label1.Text = "Spørgsmål " & quesNum & " af " & svar. Længde Label2.Tekst = spørgsmål (0, 0) Button1.Text = "Forrige" 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()-underrutinen. Den tredje linje initialiserer spørgsmålstællervariablen. Den fjerde linje viser hvilket spørgsmålsnummer brugeren er på. Den femte linje viser spørgsmål et på etiketten. Den sjette og syvende linje ændrer teksten for de to knapper. De sidste tre linjer indsætter de tre flervalgssvar som tekst til de tre alternativknapper.

Hvis quesNum > 1 Så quesNum -= 1 Label1.Text = "Spørgsmål " & quesNum & " af 3" 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) If Button2.Text = "Submit" Then Button2.Text = "Next" End If End If

Dette er koden for knappen "Forrige". Den kontrollerer først, om brugeren trykkede på knappen, mens han allerede var på det første spørgsmål. Hvis ikke, formindsker den spørgsmålstælleren med én og opdaterer teksten til etiketterne og alternativknapperne for at vise det forrige spørgsmål. Hvis brugeren var på det sidste spørgsmål, ændres teksten på Button2 fra "Send" tilbage til "Næste".

If RadioButton1.Checked = True Then answers (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True Then answers (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True Så svarer (quesNum - 1) = RadioButton3.Text End If RadioButton1.Focus() If quesNum < 3 Then quesNum += 1 Label1.Text = "Spørgsmål " & quesNum & " af " & svar. 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) If quesNum = 3 Then Button2.Text = "Submit" End If Else MarkTest() Afslut Hvis

Dette er koden til knappen "Næste". De første syv linjer kontrollerer, hvilken alternativknap brugeren havde valgt, og gemmer derefter svaret i svararrayet. Den næste linje fokuserer på valg af radioknap på RadioButton1. Den næste linje kontrollerer, at brugeren ikke er på det sidste spørgsmål. Hvis dette er sandt, øger den spørgsmålstælleren med én og opdaterer etiketterne og alternativknapperne for at vise det næste spørgsmål. Det tjekker derefter, om brugeren nu er på det sidste spørgsmål. Hvis det er tilfældet, ændres teksten for knappen Næste fra "Næste" til "Send". Hvis brugeren allerede var på sidste spørgsmål og klikkede på "Send", kalder programmet "MarkTest"-funktionen for at få brugerens score.