Как да използвате Visual Basic за създаване на тест с множествен избор

Отворете нов проект на Visual Basic. Добавете два етикета, три радио бутона и два бутона за управление към формуляра. Плъзнете двата етикета отгоре с Label1 върху Label2. Плъзнете RadioButton1, RadioButton2 и RadioButton3, за да се подредят вертикално под етикетите. Плъзнете двата бутона под радио бутоните с Button1 отляво и Button2 отдясно.

Първият ред създава двуизмерен масив. Първото измерение е за всеки въпрос, а второто измерение е за самия въпрос, три избора на отговор и верния отговор. Вторият ред създава масив за съхранение на отговорите на потребителя. Третият ред създава променлива за брояч, която следи въпроса, на който се отнася потребителят.

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 Край, ако следващ 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 & " от " & отговори. Дължина 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 = "Въпрос " & quesNum & " от 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" Then 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 = Вярно Тогава отговори (quesNum - 1) = RadioButton3.Text End Ако RadioButton1.Focus() Ако quesNum < 3 Тогава quesNum += 1 Label1.Text = "Въпрос " & 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“, за да получи резултата на потребителя.