Як використовувати Visual Basic для створення тесту з кількома варіантами

Відкрийте новий проект Visual Basic. Додайте до форми дві мітки, три перемикачів і дві кнопки керування. Перетягніть дві мітки вгору з Label1 поверх Label2. Перетягніть RadioButton1, RadioButton2 і RadioButton3, щоб вирівняти вертикально під мітками. Перетягніть дві кнопки під перемикачами з кнопкою 1 зліва та кнопкою 2 справа.

Перший рядок створює двовимірний масив. Перший вимір стосується кожного питання, а другий — самого запитання, трьох варіантів відповіді та правильної відповіді. Другий рядок створює масив для зберігання відповідей користувача. Третій рядок створює змінну лічильника, яка відстежує питання, яке ставить користувач.

Private Sub GetQuestions() questions = New String(,) {{"Скільки кольорів у веселці?", "5", "6", "7", "7"}, {"Хто знявся в "Піратах Карибського моря?", "Джоні Депп", "Джон Малкович", "Джон К'юсак", "Джонні Депп"}, {"Яка столиця Флориди?", "Маямі", "Таллахассі", "Джексонвілл", "Таллахассі"}} End Sub

Ця підпрограма просто ініціалізує три запитання та відповіді в масиві запитань. Ви можете додати додаткові запитання або отримати їх іншими способами, наприклад, за допомогою текстового файлу, але якщо ви не забудьте змінити розмір масивів запитань і відповідей, щоб врахувати кількість питання.

Private Sub MarkTest() Dim grade As Integer = 0 Для i = 0 до 2 Якщо відповіді (i) = запитання (i, 4) Тоді оцінка += 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

Перший рядок оголошує підпрограму, яка позначає тест. Він створює локальну змінну для підрахунку балів, а потім перебирає відповіді в масиві запитань і відповіді, подані користувачем. За кожну відповідну відповідь оцінка підвищується на один. Потім він відображає рахунок у мітках і вимикає інші елементи керування.

я. Text = "Мій тест із кількома варіантами!" GetQuestions() quesNum = 1 Label1.Text = "Питання " & quesNum & " of " & відповіді. Довжина 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) Якщо Button2.Text = "Надіслати", Тоді Button2.Text = "Далі" Кінець, якщо Кінець Якщо

Це код для кнопки «Попередній». Спочатку він перевіряє, чи натиснув користувач кнопку, коли вже відповідало першому питанню. Якщо ні, він зменшує лічильник запитань на одиницю та оновлює текст для міток і перемикачів, щоб показати попереднє запитання. Якщо користувач задавав останнє запитання, текст на 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 Якщо RadioButton1.Focus() Якщо quesNum < 3 Тоді quesNum += 1 Label1.Text = "Question " & quesNum & " з " & відповіді. Довжина Label2.Text = запитання (quesNum - 1, 0) RadioButton1.Text = запитання (quesNum - 1, 1) RadioButton2.Text = запитання (quesNum - 1, 2) RadioButton3.Text = питання (quesNum - 1, 3) Якщо quesNum = 3, то Button2.Text = "Надіслати" Завершується Якщо інакше MarkTest() Кінець Якщо

Це код для кнопки «Далі». Перші сім рядків перевіряють, який перемикач вибрав користувач, а потім зберігає цю відповідь у масиві відповідей. Наступний рядок фокусує вибір перемикача на RadioButton1. Наступний рядок перевіряє, чи користувач не відповідає на останнє запитання. Якщо це правда, це збільшує лічильник запитань на одиницю та оновлює мітки та перемикач, щоб показати наступне запитання. Потім він перевіряє, чи зараз користувач відповідає на останнє запитання. Якщо так, текст кнопки «Далі» змінюється з «Далі» на «Надіслати». Якщо користувач уже був на останнє запитання та натиснувши «Відправити», програма викликає функцію «MarkTest», щоб отримати оцінку користувача.