>> Électroniques Technologie >  >> Maison intelligente >> Vie intelligente

Comment utiliser Visual Basic pour créer un test à choix multiples

Chaque question d'un test à choix multiples se compose d'une question elle-même et de plusieurs réponses différentes, dont une seule est correcte. Vous pouvez créer un test à choix multiples dans Visual Basic en utilisant des étiquettes pour afficher les questions, des boutons radio pour les réponses possibles et des contrôles de bouton pour naviguer entre les différentes questions. Dans le code, utilisez des tableaux pour enregistrer les questions et les réponses que l'utilisateur soumet et maintenez une variable de compteur pour garder une trace de la question à laquelle l'utilisateur se trouve. À la fin du test, cochez les réponses de l'utilisateur et affichez le résultat sur le formulaire.

Étape 1

Ouvrez un nouveau projet Visual Basic. Ajoutez deux étiquettes, trois boutons radio et deux contrôles de bouton au formulaire. Faites glisser les deux étiquettes vers le haut avec Label1 au-dessus de Label2. Faites glisser RadioButton1, RadioButton2 et RadioButton3 pour les aligner verticalement sous les étiquettes. Faites glisser les deux boutons sous les boutons radio avec Button1 à gauche et Button2 à droite.

Étape 2

Appuyez sur "F7" pour ouvrir la fenêtre de code. Saisissez le code suivant au niveau de la classe :

Dim questions(2, 4) As String Dim answers(2) As String Dim quesNum As Integer

La première ligne crée un tableau à deux dimensions. La première dimension est pour chaque question et la deuxième dimension est pour la question elle-même, trois choix de réponse et la bonne réponse. La deuxième ligne crée un tableau pour stocker les réponses de l'utilisateur. La troisième ligne crée une variable de compteur qui garde une trace de la question à laquelle l'utilisateur se trouve.

Étape 3

Saisissez le code suivant :

Private Sub GetQuestions() questions =New String(,) {{"Combien y a-t-il de couleurs dans un arc-en-ciel ?", "5", "6", "7", "7"}, {"Qui a joué dans Pirates des Caraïbes ?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"Quelle est la capitale de la Floride ?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} End Sub

Ce sous-programme initialise simplement les trois questions et réponses dans le tableau des questions. Vous pouvez ajouter des questions supplémentaires ou les obtenir par d'autres moyens, par exemple via un fichier texte, mais si vous le faites, n'oubliez pas de modifier la taille des tableaux de questions et de réponses pour tenir compte du nombre de questions.

Étape 4

Saisissez le code suivant :

Private Sub MarkTest() Dim grade As Integer =0 For i =0 To 2 If answers(i) =questions(i, 4) Then grade +=1 End If Next Label1.Text ="Test terminé !" Label2.Text ="Vous avez obtenu " ¬e &" sur " &réponses.Longueur &"!" RadioButton1.Enabled =Faux RadioButton2.Enabled =Faux RadioButton3.Enabled =Faux Button1.Enabled =Faux Button2.Enabled =Faux End Sub

La première ligne déclare un sous-programme qui marque le test. Il crée une variable locale pour compter le score, puis parcourt les réponses dans le tableau des questions et les réponses soumises par l'utilisateur. Pour chaque réponse qui correspond, la note augmente de un. Il affiche ensuite le score dans les étiquettes et désactive le reste des contrôles.

Étape 5

Ouvrez la sous-routine Form1_Load() et tapez le code suivant :

Me.Text ="Mon quiz à choix multiples !" GetQuestions() quesNum =1 Label1.Text ="Question " &quesNum &" of " &answers.Length Label2.Text =questions(0, 0) Button1.Text ="Précédent" Button2.Text ="Suivant" RadioButton1.Text =questions(0, 1) RadioButton2.Text =questions(0, 2) RadioButton3.Text =questions(0, 3)

La première ligne définit le titre dans la barre de titre. La ligne suivante appelle la sous-routine GetQuestions(). La troisième ligne initialise la variable compteur de questions. La quatrième ligne affiche le numéro de la question à laquelle l'utilisateur se trouve. La cinquième ligne affiche la question un dans l'étiquette. Les sixième et septième lignes modifient le texte des deux boutons. Les trois dernières lignes insèrent les trois réponses à choix multiples sous forme de texte pour les trois boutons radio.

Étape 6

Ouvrez la sous-routine Button1_Click() et saisissez le code suivant :

Si quesNum> 1 Alors quesNum -=1 Label1.Text ="Question " &quesNum &" of 3" Label2.Text =questions(quesNum - 1, 0) RadioButton1.Text =questions(quesNum - 1, 1) RadioButton2.Text =questions(quesNum - 1, 2) RadioButton3.Text =questions(quesNum - 1, 3) If Button2.Text ="Submit" Then Button2.Text ="Next" End If End If

C'est le code du bouton "Précédent". Il vérifie d'abord si l'utilisateur a appuyé sur le bouton alors qu'il était déjà sur la première question. Si ce n'est pas le cas, il décrémente le compteur de questions d'une unité et met à jour le texte des étiquettes et des boutons radio pour afficher la question précédente. Si l'utilisateur était sur la dernière question, le texte sur Button2 passe de "Soumettre" à "Suivant".

Étape 7

Ouvrez la sous-routine Button2_Click() et saisissez le code suivant :

Si RadioButton1.Checked =True Alors réponses(quesNum - 1) =RadioButton1.Text ElseIf RadioButton2.Checked =True Alors réponses(quesNum - 1) =RadioButton2.Text ElseIf RadioButton3.Checked =True Alors réponses(quesNum - 1) =RadioButton3. Text End If RadioButton1.Focus() If quesNum <3 Then quesNum +=1 Label1.Text ="Question " &quesNum &" of " &answers.Length Label2.Text =questions(quesNum - 1, 0) RadioButton1.Text =questions(quesNum - 1, 1) RadioButton2.Text =questions(quesNum - 1, 2) RadioButton3.Text =questions(quesNum - 1, 3) If quesNum =3 Then Button2.Text ="Submit" End If Else MarkTest() Fin si

C'est le code du bouton "Suivant". Les sept premières lignes vérifient le bouton radio sélectionné par l'utilisateur, puis enregistrent cette réponse dans le tableau des réponses. La ligne suivante concentre la sélection du bouton radio sur RadioButton1. La ligne suivante vérifie que l'utilisateur n'est pas sur la dernière question. Si cela est vrai, il augmente le compteur de questions d'une unité et met à jour les étiquettes et les boutons radio pour afficher la question suivante. Il vérifie ensuite si l'utilisateur est maintenant sur la question finale. Si tel est le cas, il modifie le texte du bouton Suivant de "Suivant" à "Soumettre". Si l'utilisateur était déjà sur la question finale et a cliqué sur "Soumettre", le programme appelle la fonction "MarkTest" pour obtenir le score de l'utilisateur.

Étape 8

Enregistrez le programme Visual Basic. Appuyez sur "F5" pour l'exécuter.


Vie intelligente