Kuidas kasutada Visual Basicit valikvastustega testi loomiseks

click fraud protection

Avage uus Visual Basicu projekt. Lisage vormile kaks silti, kolm raadionuppu ja kaks nupu juhtelementi. Lohistage kaks silti ülaosas, nii et Label1 oleks sildi 2 peal. Lohistage RadioButton1, RadioButton2 ja RadioButton3, et asuda vertikaalselt siltide all. Lohistage raadionuppude all olevad kaks nuppu nii, et Button1 on vasakul ja Button2 paremal.

Esimene rida loob kahemõõtmelise massiivi. Esimene mõõde on iga küsimuse jaoks ja teine ​​mõõde on küsimuse enda jaoks, kolm vastusevalikut ja õige vastus. Teine rida loob massiivi kasutaja vastuste salvestamiseks. Kolmas rida loob loenduri muutuja, mis jälgib küsimust, milles kasutaja on.

Privaatsed Sub GetQuestions() küsimused = New String(,) {{"Mitu värvi on vikerkaarel?", "5", "6", "7", "7"}, {"Kes mängis filmides Kariibi mere piraadid?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"Mis on Florida pealinn?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} End Sub

See alamprogramm lihtsalt initsialiseerib küsimuste massiivi kolm küsimust ja vastust. Saate lisada täiendavaid küsimusi või hankida neid muul viisil, näiteks tekstifaili kaudu, kuid kui soovite ärge unustage muuta küsimuste ja vastuste massiivide suurust, et kohandada nende arvu küsimused.

Privaatne Sub MarkTest() Hämar hinne täisarv = 0 i jaoks = 0 kuni 2 Kui vastused (i) = küsimused (i, 4) Siis hinne += 1 End If Next Label1.Text = "Test lõpetatud!" Label2.Text = "Sa said hinde " & hinde & " / " & vastuseid. Pikkus & "!" RadioButton1.Enabled = vale RadioButton2.Enabled = vale RadioButton3.Enabled = vale nupp1.Enabled = vale nupp2.Enabled = vale End Sub

Esimene rida deklareerib alamprogrammi, mis märgib testi. See loob skoori loendamiseks kohaliku muutuja, seejärel vaatab läbi küsimuste massiivi vastused ja kasutaja esitatud vastused. Iga sobiva vastuse korral tõuseb hinne ühe võrra. Seejärel kuvab see siltidel skoori ja keelab ülejäänud juhtnupud.

Mina. Text = "Minu valikvastustega viktoriin!" GetQuestions() quesNum = 1 Label1.Text = "Küsimus " & quesNum & " / " & vastused. Pikkus Silt2.Tekst = küsimused (0, 0) Nupp1.Tekst = "Eelmine" Nupp2.Tekst = "Järgmine" RadioButton1.Tekst = küsimused (0, 1) RadioButton2.Tekst = küsimused (0, 2) RadioButton3.Tekst = küsimused (0, 3)

Esimene rida määrab pealkirja tiitliribal. Järgmine rida kutsub välja GetQuestions() alamprogrammi. Kolmas rida initsialiseerib küsimuste loenduri muutuja. Neljas rida näitab, millise küsimuse numbriga kasutaja on. Viiendal real kuvatakse sildi esimene küsimus. Kuues ja seitsmes rida muudavad kahe nupu teksti. Viimased kolm rida sisestavad kolm valikvastust kolme raadionupu tekstina.

Kui quesNum > 1, siis quesNum -= 1 Label1.Text = "Küsimus " & quesNum & " 3-st" Label2.Text = küsimused (quesNum - 1, 0) RadioButton1.Text = küsimused (quesNum - 1, 1) RadioButton2.Text = küsimused (quesNum - 1, 2) RadioButton3.Text = küsimused (quesNum - 1, 3) Kui Button2.Text = "Esita" Siis Button2.Text = "Next" End If End If

See on nupu "Eelmine" kood. Esmalt kontrollib see, kas kasutaja vajutas nuppu juba esimese küsimuse esitamise ajal. Kui ei, siis vähendab see küsimuste loendurit ühe võrra ja värskendab siltide ja raadionuppude teksti, et näidata eelmist küsimust. Kui kasutaja oli viimasel küsimusel, muutub Button2 tekst "Esita" asemel "Järgmine".

Kui RadioButton1.Checked = Tõene Siis vastused (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True Siis vastused (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = Tõene Siis vastused (quesNum - 1) = RadioButton3.Text End If RadioButton1.Focus() Kui quesNum < 3 Siis quesNum += 1 Label1.Text = "Küsimus " & quesNum & " / " & vastused. Pikkus Silt2.Tekst = küsimused (quesNum - 1, 0) RadioButton1.Text = küsimused (quesNum - 1, 1) RadioButton2.Text = küsimused (quesNum - 1, 2) RadioButton3.Text = küsimused (quesNum - 1, 3) Kui quesNum = 3 Siis Button2.Text = "Esita" Lõpeta, kui muidu MarkTest() Lõpeta Kui

See on nupu "Järgmine" kood. Esimesed seitse rida kontrollivad, millise raadionupu kasutaja valis, seejärel salvestatakse see vastus vastuste massiivi. Järgmine rida keskendub raadionupu valikule RadioButton1. Järgmisel real kontrollitakse, kas kasutaja pole viimase küsimuse juures. Kui see on tõsi, suurendab see küsimuste loendurit ühe võrra ja värskendab silte ja raadionuppe, et näidata järgmist küsimust. Seejärel kontrollib see, kas kasutaja on nüüd viimase küsimuse käes. Kui jah, muudab see nupu Edasi teksti teksti "Järgmine" asemel "Esita". Kui kasutaja oli juba rakenduses viimane küsimus ja klõpsanud "Esita", kutsub programm kasutaja skoori saamiseks funktsiooni "MarkTest".