Ανοίξτε ένα νέο έργο της Visual Basic. Προσθέστε δύο ετικέτες, τρία κουμπιά επιλογής και δύο κουμπιά ελέγχου στη φόρμα. Σύρετε τις δύο ετικέτες στην κορυφή με το Label1 πάνω από το Label2. Σύρετε τα RadioButton1, RadioButton2 και RadioButton3 για να ευθυγραμμιστούν κατακόρυφα κάτω από τις ετικέτες. Σύρετε τα δύο κουμπιά κάτω από τα κουμπιά επιλογής με το κουμπί1 στα αριστερά και το κουμπί2 στα δεξιά.
Η πρώτη γραμμή δημιουργεί έναν δισδιάστατο πίνακα. Η πρώτη διάσταση είναι για κάθε ερώτηση και η δεύτερη διάσταση για την ίδια την ερώτηση, τρεις επιλογές απαντήσεων και η σωστή απάντηση. Η δεύτερη γραμμή δημιουργεί έναν πίνακα για την αποθήκευση των απαντήσεων του χρήστη. Η τρίτη γραμμή δημιουργεί μια μεταβλητή μετρητή που παρακολουθεί την ερώτηση στην οποία βρίσκεται ο χρήστης.
Private Sub GetQuestions() ερωτήσεις = New String(,) {{"Πόσα χρώματα υπάρχουν σε ένα ουράνιο τόξο;", "5", "6", "7", "7"}, {"Ποιος πρωταγωνίστησε στους Πειρατές της Καραϊβικής;", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"},
{"What is the capital of Florida?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} End SubΑυτή η υπορουτίνα απλώς αρχικοποιεί τις τρεις ερωτήσεις και απαντήσεις στον πίνακα ερωτήσεων. Μπορείτε να προσθέσετε πρόσθετες ερωτήσεις ή να τις λάβετε με άλλους τρόπους, όπως μέσω ενός αρχείου κειμένου, αλλά εάν θέλετε κάντε, θυμηθείτε να αλλάξετε το μέγεθος των πινάκων ερωτήσεων και απαντήσεων για να χωρέσετε τον αριθμό των ερωτήσεις.
Private Sub MarkTest() Dim grade As Integer = 0 For i = 0 To 2 If answers (i) = ερωτήσεις (i, 4) Τότε grade += 1 End If Next Label1.Text = "Το τεστ ολοκληρώθηκε!" Label2.Text = "Βαθμολογήσατε " & βαθμό & " εκτός " & απαντήσεις. Μήκος & "!" RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton3.Enabled = False Button1.Enabled = False Button2.Enabled = False End Sub
Η πρώτη γραμμή δηλώνει μια υπορουτίνα που σηματοδοτεί τη δοκιμή. Δημιουργεί μια τοπική μεταβλητή για τη μέτρηση της βαθμολογίας και, στη συνέχεια, εναλλάσσει τις απαντήσεις στον πίνακα ερωτήσεων και τις απαντήσεις που υποβάλλονται από τον χρήστη. Για κάθε απάντηση που ταιριάζει, ο βαθμός αυξάνεται κατά ένα. Στη συνέχεια, εμφανίζει τη βαθμολογία στις ετικέτες και απενεργοποιεί τα υπόλοιπα στοιχεία ελέγχου.
Μου. Κείμενο = "Το Κουίζ πολλαπλών επιλογών μου!" GetQuestions() quesNum = 1 Label1.Text = "Question " & quesNum & " of " & answers. Length Label2.Text = ερωτήσεις (0, 0) Button1.Text = "Προηγούμενο" Button2.Text = "Επόμενο" RadioButton1.Text = ερωτήσεις (0, 1) RadioButton2.Text = ερωτήσεις (0, 2) RadioButton3.Text = ερωτήσεις (0, 3)
Η πρώτη γραμμή ορίζει τον τίτλο στη γραμμή τίτλου. Η επόμενη γραμμή καλεί την υπορουτίνα GetQuestions(). Η τρίτη γραμμή αρχικοποιεί τη μεταβλητή μετρητή ερωτήσεων. Η τέταρτη γραμμή εμφανίζει τον αριθμό ερώτησης στον οποίο βρίσκεται ο χρήστης. Η πέμπτη γραμμή εμφανίζει την ερώτηση ένα στην ετικέτα. Η έκτη και η έβδομη γραμμή αλλάζουν το κείμενο για τα δύο κουμπιά. Οι τρεις τελευταίες γραμμές εισάγουν τις τρεις απαντήσεις πολλαπλής επιλογής ως κείμενο για τα τρία κουμπιά επιλογής.
Αν quesNum > 1 Τότε quesNum -= 1 Label1.Text = "Question " & quesNum & " of 3" Label2.Text = ερωτήσεις (quesNum - 1, 0) RadioButton1.Text = ερωτήσεις (quesNum - 1, 1) RadioButton2.Text = ερωτήσεις (quesNum - 1, 2) RadioButton3.Text = ερωτήσεις (quesNum - 1, 3) If Button2.Text = "Submit" Τότε Button2.Text = "Next" End If End If
Αυτός είναι ο κωδικός για το κουμπί "Προηγούμενο". Αρχικά ελέγχει εάν ο χρήστης πάτησε το κουμπί ενώ ήταν ήδη στην πρώτη ερώτηση. Εάν όχι, μειώνει τον μετρητή ερωτήσεων κατά ένα και ενημερώνει το κείμενο για τις ετικέτες και τα κουμπιά επιλογής για να εμφανίζεται η προηγούμενη ερώτηση. Εάν ο χρήστης ήταν στην τελική ερώτηση, το κείμενο στο Button2 αλλάζει από "Υποβολή" σε "Επόμενο".
Αν RadioButton1.Checked = True Τότε απαντά (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True Τότε απαντά (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True Τότε απαντήσεις (quesNum - 1) = RadioButton3.Text End If RadioButton1.Focus() Εάν quesNum < 3 Τότε quesNum += 1 Label1.Text = "Question " & quesNum & " of " & απαντήσεις. Length Label2.Text = ερωτήσεις (quesNum - 1, 0) RadioButton1.Text = ερωτήσεις (quesNum - 1, 1) RadioButton2.Text = ερωτήσεις (quesNum - 1, 2) RadioButton3.Text = ερωτήσεις (quesNum - 1, 3) Αν quesNum = 3 Τότε Button2.Text = "Υποβολή" Τέλος If Else MarkTest() Τέλος εαν
Αυτός είναι ο κωδικός για το κουμπί "Επόμενο". Οι πρώτες επτά γραμμές ελέγχουν για να δουν ποιο κουμπί επιλογής είχε επιλέξει ο χρήστης και, στη συνέχεια, αποθηκεύουν αυτήν την απάντηση στον πίνακα απαντήσεων. Η επόμενη γραμμή εστιάζει την επιλογή του κουμπιού επιλογής στο RadioButton1. Η επόμενη γραμμή ελέγχει για να δει ότι ο χρήστης δεν είναι στην τελική ερώτηση. Εάν αυτό ισχύει, αυξάνει τον μετρητή ερωτήσεων κατά ένα και ενημερώνει τις ετικέτες και τα κουμπιά επιλογής για να εμφανιστεί η επόμενη ερώτηση. Στη συνέχεια ελέγχει για να δει αν ο χρήστης βρίσκεται τώρα στην τελική ερώτηση. Αν ναι, αλλάζει το κείμενο για το κουμπί Επόμενο από "Επόμενο" σε "Υποβολή". Εάν ο χρήστης ήταν ήδη στο την τελευταία ερώτηση και κάντε κλικ στο "Υποβολή", το πρόγραμμα καλεί τη συνάρτηση "MarkTest" για να πάρει τη βαθμολογία του χρήστη.