Aprire un nuovo progetto di Visual Basic . Aggiungere due etichette, tre pulsanti radio e due controlli Button al form. Trascinare le due etichette al top con Label1 sopra Label2 . Trascinare RadioButton1 , RadioButton2 e RadioButton3 per allineare verticalmente sotto le etichette . Trascinare i due pulsanti sotto i pulsanti di opzione con Button1 a sinistra e Button2 a destra.
2
Premere " F7 " per aprire la finestra del codice . Digitare il seguente codice a livello di classe :
domande Dim ( 2 , 4) as String
risposte Dim ( 2) As String Dim
quesNum Come
Integer
La prima riga crea una matrice bidimensionale . La prima dimensione è per ogni domanda e la seconda dimensione è per la domanda stessa , tre opzioni di risposta e la risposta corretta . La seconda riga crea un array per memorizzare le risposte dell'utente. La terza riga crea una variabile contatore che tiene traccia della questione l'utente è in
3
digitare il seguente codice : .
Private Sub GetQuestions ()
domande
= new String ( , ) { {" quanti sono i colori in un arcobaleno ? " , " 5 " , " 6 " , " 7 " , "7" } , _
{ "Chi protagonista di Pirati dei Caraibi ? "," Johnny Depp " , " John Malkovich " , " John Cusack " , " Johnny Depp "} , _
{" Qual è la capitale della Florida ? "," Miami " , " Tallahassee " , " Jacksonville " , " Tallahassee "} }
End Sub
Questa subroutine inizializza semplicemente le tre domande e risposte nella matrice domande. È possibile aggiungere ulteriori domande o ottenere in altri modi , ad esempio attraverso un file di testo , ma se lo fate , ricordate di cambiare le dimensioni della domanda e risposta array per contenere il numero di domande.
4
Digitare il seguente codice: private Sub
MarkTest ( ) per
grado Dim As Integer = 0
For i = 0 To 2
risposte ( i) = domande ( i, 4) Poi
grado + = 1
End If
Avanti
Label1.Text = "Test finiti! "
Label2.Text =" il tuo punteggio " e grado e " fuori " e answers.Length &" ! "
RadioButton1.Enabled = False
RadioButton2.Enabled = False
RadioButton3.Enabled = False
Button1.Enabled = False
Button2.Enabled = False
End Sub
prima riga dichiara una subroutine che segna il test . Si crea una variabile locale per contare il punteggio, poi i cicli attraverso le risposte dell'array domande e le risposte inviate dall'utente. Per ciascuna risposta che corrisponde , il grado aumenta di uno. Quindi visualizza il punteggio nelle etichette e disabilita il resto dei controlli
5
Aprire il Form1 Load ( ) subroutine e digitare il seguente codice : .
Me.Text = " Il mio quiz a scelta multipla ! "
GetQuestions ()
quesNum = 1
Label1.Text = " domanda " e quesNum &" di " &
answers.Length
Label2.Text = domande ( 0 , 0 ) per
Button1.Text = "Indietro "
Button2.Text = " Avanti "
RadioButton1.Text domande = ( 0 , 1 ) per
RadioButton2.Text = domande ( 0 , 2 ) per
RadioButton3.Text = domande ( 0 , 3 ) per
la prima riga imposta il documento nella barra del titolo . La riga seguente chiama le GetQuestions () subroutine . La terza riga inizializza la variabile contatore domanda . La quarta riga visualizza quello che mettono in discussione il numero che l'utente è attivo. La quinta riga visualizza interrogano uno in etichetta. La sesta e la settima linee cambiano il testo per i due pulsanti . Le ultime tre righe inserire le tre risposte a scelta multipla come testo per i pulsanti tre radiofonici
6
Aprire il Button1_Click ( ) subroutine e digitare il seguente codice : .
QuesNum > 1 Poi
quesNum - = 1
Label1.Text = " domanda " e quesNum & " di 3"
Label2.Text = domande ( quesNum - 1 , 0 )
RadioButton1.Text = domande ( quesNum - 1 , 1 ) per
RadioButton2.Text = domande ( quesNum - 1 , 2 ) per
RadioButton3.Text = domande ( quesNum - 1 , 3 ) per
Button2.Text = " Invia" Allora
Button2.Text = " Avanti"
End If End If
Questo è il codice per il pulsante " Indietro " . Prima controlla se l'utente preme il pulsante mentre si è al primo quesito . In caso contrario , si decrementa il contatore di domanda per uno e un aggiornamento del testo per le etichette e pulsanti di opzione per visualizzare la domanda precedente . Se l'utente era sulla domanda finale , il testo su Button2 cambia da " Invia" torna a
7
Aprire il Button2_Click ( ) subroutine e digitare il seguente codice "Next ". :
Se RadioButton1.Checked = true allora
risposte ( quesNum - 1 ) = RadioButton1.Text
ElseIf RadioButton2.Checked = true allora
risposte ( quesNum - 1 ) = RadioButton2.Text
ElseIf RadioButton3.Checked = true allora
risposte ( quesNum - 1 ) = RadioButton3.Text
End IF e
RadioButton1.Focus ( ) per
quesNum <3 Poi
quesNum + = 1
Label1.Text = " domanda " e quesNum & " di " &
answers.Length
Label2.Text = domande ( quesNum - 1 , 0 ) per
RadioButton1.Text = domande ( quesNum - 1 , 1 ) per
RadioButton2.Text = domande ( quesNum - 1 , 2 ) per
RadioButton3.Text = domande ( quesNum - 1 , 3 ) per
quesNum = 3 Quindi
Button2.Text = " Invia"
End Se
Else
MarkTest ( ) per
End If
Questo è il codice per il pulsante "Avanti". Le prime sette righe controllano per vedere che il pulsante radio era selezionato l'utente , quindi salva la risposta alla matrice delle risposte. La riga successiva si concentra la selezione del pulsante radio RadioButton1 . La riga successiva verifica che l'utente non si trova sulla domanda finale . Se questo è vero , la questione contatore aumenta di uno e aggiorna le etichette e pulsanti di opzione per visualizzare la domanda successiva . Quindi controlla per vedere se l'utente è ora sulla domanda finale . Se è così , cambia il testo per il pulsante Avanti da " Next" su " Invia". Se l'utente era già sulla domanda finale e cliccato "Invia ", il programma chiama la funzione " MarkTest " per ottenere il punteggio dell'utente .
8
Salva il programma Visual Basic . Premere il tasto " F5 " per eseguirla.
Programmazione © www.354353.com