Cum să utilizați Visual Basic pentru a crea un test cu alegeri multiple

click fraud protection

Deschideți un nou proiect Visual Basic. Adăugați două etichete, trei butoane radio și două butoane de control în formular. Trageți cele două etichete în partea de sus cu Label1 deasupra Label2. Trageți RadioButton1, RadioButton2 și RadioButton3 pentru a se alinia vertical sub etichete. Trageți cele două butoane de sub butoanele radio cu Button1 în stânga și Button2 în dreapta.

Prima linie creează o matrice bidimensională. Prima dimensiune este pentru fiecare întrebare, iar a doua dimensiune este pentru întrebarea în sine, trei variante de răspuns și răspunsul corect. A doua linie creează o matrice pentru a stoca răspunsurile utilizatorului. A treia linie creează o variabilă contor care ține evidența întrebării la care se află utilizatorul.

Private Sub GetQuestions() întrebări = New String(,) {{"Câte culori sunt într-un curcubeu?", "5", "6", "7", "7"}, {„Cine a jucat în Pirații din Caraibe?”, „Johnny Depp”, „John Malkovich”, „John Cusack”, „Johnny Depp”}, {„Care este capitala Floridei?”, „Miami”, „Tallahassee”, „Jacksonville”, „Tallahassee”}} End Sub

Această subrutină inițializează pur și simplu cele trei întrebări și răspunsuri din matricea de întrebări. Puteți adăuga întrebări suplimentare sau le puteți obține în alte moduri, cum ar fi printr-un fișier text, dar dacă dvs nu, nu uitați să modificați dimensiunea matricelor de întrebări și răspunsuri pentru a se potrivi cu numărul de întrebări.

Private Sub MarkTest() Dim grade As Integer = 0 Pentru i = 0 To 2 Dacă răspunsurile (i) = întrebări (i, 4) Atunci nota += 1 End If Next Label1.Text = "Testul terminat!" Label2.Text = „Ați obținut un punctaj” & nota & „din” & răspunsuri. Lungime și "!" RadioButton1.Enabled = Fals RadioButton2.Enabled = Fals RadioButton3.Enabled = Fals Button1.Enabled = Fals Button2.Enabled = Fals End Sub

Prima linie declară o subrutină care marchează testul. Acesta creează o variabilă locală pentru a număra scorul, apoi parcurge răspunsurile din matricea de întrebări și răspunsurile trimise de utilizator. Pentru fiecare răspuns care se potrivește, nota crește cu una. Apoi afișează scorul în etichete și dezactivează restul controalelor.

Pe mine. Text = "Testul meu cu alegeri multiple!" GetQuestions() quesNum = 1 Label1.Text = "Întrebare" și quesNum & "de" și răspunsuri. Lungime Label2.Text = întrebări (0, 0) Button1.Text = „Previous” Button2.Text = „Next” RadioButton1.Text = întrebări (0, 1) RadioButton2.Text = întrebări (0, 2) RadioButton3.Text = întrebări (0, 3)

Prima linie setează titlul în bara de titlu. Următoarea linie apelează subrutina GetQuestions(). A treia linie inițializează variabila contor de întrebări. Al patrulea rând afișează numărul întrebării pe care se află utilizatorul. Al cincilea rând afișează întrebarea unu în etichetă. Al șaselea și al șaptelea rând modifică textul celor două butoane. Ultimele trei rânduri inserează cele trei răspunsuri cu variante multiple ca text pentru cele trei butoane radio.

Dacă quesNum > 1 Then quesNum -= 1 Label1.Text = "Întrebare " & quesNum & " of 3" Label2.Text = întrebări (quesNum - 1, 0) RadioButton1.Text = întrebări (quesNum - 1, 1) RadioButton2.Text = întrebări (quesNum - 1, 2) RadioButton3.Text = întrebări (quesNum - 1, 3) If Button2.Text = "Trimite" Then Button2.Text = "Next" End If End If

Acesta este codul pentru butonul „Anterior”. Mai întâi verifică dacă utilizatorul a apăsat butonul în timp ce se afla deja la prima întrebare. Dacă nu, decrește contorul de întrebări cu una și actualizează textul pentru etichete și butoanele radio pentru a afișa întrebarea anterioară. Dacă utilizatorul a fost la întrebarea finală, textul de pe Button2 se schimbă de la „Trimite” înapoi la „Următorul”.

Dacă RadioButton1.Checked = True, atunci răspunsurile (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True Apoi răspunsuri (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True Then answers (quesNum - 1) = RadioButton3.Text End If RadioButton1.Focus() If quesNum < 3 Then quesNum += 1 Label1.Text = "Întrebare " & quesNum & " din " & răspunde. Lungime Label2.Text = întrebări (quesNum - 1, 0) RadioButton1.Text = întrebări (quesNum - 1, 1) RadioButton2.Text = întrebări (quesNum - 1, 2) RadioButton3.Text = întrebări (quesNum - 1, 3) Dacă quesNum = 3 Then Button2.Text = „Trimite” End If Else MarkTest() Încheiați dacă

Acesta este codul pentru butonul „Următorul”. Primele șapte linii verifică pentru a vedea ce buton radio a selectat utilizatorul, apoi salvează acel răspuns în matricea de răspunsuri. Următoarea linie concentrează selecția butonului radio pe RadioButton1. Următoarea linie verifică pentru a vedea dacă utilizatorul nu este la întrebarea finală. Dacă acest lucru este adevărat, crește contorul de întrebări cu unul și actualizează etichetele și butoanele radio pentru a afișa următoarea întrebare. Apoi verifică dacă utilizatorul este acum la întrebarea finală. Dacă da, se schimbă textul butonului Următorul din „Următorul” în „Trimite”. Dacă utilizatorul era deja pe întrebarea finală și a făcut clic pe „Trimite”, programul apelează funcția „MarkTest” pentru a obține scorul utilizatorului.