Kuinka käyttää Visual Basicia monivalintatestin luomiseen

Avaa uusi Visual Basic -projekti. Lisää lomakkeeseen kaksi tunnistetta, kolme valintanappia ja kaksi painikeohjainta. Vedä kaksi tarraa yläreunaan siten, että Label1 on Label2:n päällä. Vedä RadioButton1, RadioButton2 ja RadioButton3 pystysuunnassa tarrojen alle. Vedä radiopainikkeiden alla olevia kahta painiketta siten, että Button1 on vasemmalla ja Button2 oikealla.

Ensimmäinen rivi luo kaksiulotteisen taulukon. Ensimmäinen ulottuvuus on jokaiselle kysymykselle ja toinen ulottuvuus itse kysymykselle, kolmelle vastausvaihtoehdolle ja oikealle vastaukselle. Toinen rivi luo taulukon käyttäjän vastausten tallentamiseen. Kolmas rivi luo laskurimuuttujan, joka seuraa käyttäjän kysymystä.

Yksityiset Sub GetQuestions()-kysymykset = Uusi merkkijono(,) {{"Kuinka monta väriä sateenkaaressa on?", "5", "6", "7", "7"}, {"Kuka näytteli elokuvissa Pirates of the Caribbean?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"Mikä on Floridan pääkaupunki?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} End Sub

Tämä aliohjelma yksinkertaisesti alustaa kysymystaulukon kolme kysymystä ja vastausta. Voit lisätä kysymyksiä tai saada ne muilla tavoilla, kuten tekstitiedoston kautta, mutta jos haluat tee, muista muuttaa kysymys- ja vastaustaulukoiden kokoa vastaamaan niiden määrää kysymyksiä.

Yksityinen Sub MarkTest() Himmeä arvosana Kokonaisluku = 0 Jos i = 0 - 2 Jos vastaukset (i) = kysymykset (i, 4) Sitten arvosana += 1 End If Next Label1.Text = "Koe valmis!" Label2.Text = "Sait pisteet " & arvosana & " / " & vastauksia. Pituus & "!" RadioButton1.Enabled = Väärä RadioButton2.Enabled = Väärä RadioButton3.Enabled = Väärä painike1.Käytössä = Väärä painike2.Käytössä = Väärä End Sub

Ensimmäinen rivi ilmoittaa aliohjelman, joka merkitsee testin. Se luo paikallisen muuttujan pistemäärän laskemiseksi ja selaa sitten kysymystaulukon vastaukset ja käyttäjän lähettämät vastaukset. Jokaisen vastaavan vastauksen arvosana nousee yhdellä. Sitten se näyttää pisteet tarroissa ja poistaa muut säätimet käytöstä.

Minä. Text = "Monivalintakyselyni!" GetQuestions() quesNum = 1 Label1.Text = "Kysymys " & quesNum & " / " & vastaukset. Pituus Label2.Text = kysymykset (0, 0) Button1.Text = "Edellinen" Button2.Text = "Seuraava" RadioButton1.Text = kysymyksiä (0, 1) RadioButton2.Text = kysymyksiä (0, 2) RadioButton3.Text = kysymyksiä (0, 3)

Ensimmäinen rivi määrittää otsikon otsikkopalkissa. Seuraava rivi kutsuu GetQuestions()-alirutiinia. Kolmas rivi alustaa kysymyslaskurimuuttujan. Neljännellä rivillä näkyy, mikä kysymysnumero käyttäjä on. Viides rivi näyttää kysymyksen yksi tarrassa. Kuudes ja seitsemäs rivi muuttavat kahden painikkeen tekstiä. Kolme viimeistä riviä lisää kolme monivalintavastausta tekstinä kolmelle valintanapille.

Jos quesNum > 1, niin quesNum -= 1 Label1.Text = "Kysymys " & quesNum & " / 3" Label2.Text = kysymykset (quesNum - 1, 0) RadioButton1.Text = kysymykset (quesNum - 1, 1) RadioButton2.Text = kysymykset (quesNum - 1, 2) RadioButton3.Text = kysymykset (quesNum - 1, 3) If Button2.Text = "Lähetä" Then Button2.Text = "Seuraava" End If End If

Tämä on "Edellinen"-painikkeen koodi. Se tarkistaa ensin, onko käyttäjä painanut painiketta jo ensimmäisen kysymyksen yhteydessä. Jos ei, se pienentää kysymyslaskuria yhdellä ja päivittää tarrojen ja valintanappien tekstin näyttämään edellisen kysymyksen. Jos käyttäjä oli viimeisessä kysymyksessä, Button2:n teksti muuttuu "Lähetä" takaisin "Seuraavaksi".

Jos RadioButton1.Checked = True Sitten vastaukset (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True Sitten vastaukset (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True Sitten vastaukset (quesNum - 1) = RadioButton3.Text End If RadioButton1.Focus() If quesNum < 3 Then quesNum += 1 Label1.Text = "Kysymys " & quesNum & " / " & vastauksia. Pituus Label2.Text = kysymykset (quesNum - 1, 0) RadioButton1.Text = kysymykset (quesNum - 1, 1) RadioButton2.Text = kysymyksiä (quesNum - 1, 2) RadioButton3.Text = kysymykset (quesNum - 1, 3) If quesNum = 3 Then Button2.Text = "Lähetä" End If Else MarkTest() Loppu Jos

Tämä on "Seuraava"-painikkeen koodi. Ensimmäiset seitsemän riviä tarkistavat, minkä valintanapin käyttäjä on valinnut, ja tallentaa sitten vastauksen vastaustaulukkoon. Seuraava rivi keskittää valintanapin valinnan kohtaan RadioButton1. Seuraava rivi tarkistaa, ettei käyttäjä ole viimeisessä kysymyksessä. Jos tämä on totta, se lisää kysymyslaskuria yhdellä ja päivittää tarrat ja valintanapit näyttämään seuraavan kysymyksen. Sitten se tarkistaa, onko käyttäjä nyt viimeisen kysymyksen ääressä. Jos näin on, se muuttaa Seuraava-painikkeen tekstin "Seuraava" -tekstiksi "Lähetä". Jos käyttäjä oli jo viimeinen kysymys ja napsautettiin "Lähetä", ohjelma kutsuu "MarkTest"-funktiota saadakseen käyttäjän pisteet.