Cada pergunta em um teste de múltipla escolha consiste em uma questão em si e várias respostas diferentes , das quais apenas uma é correta. Você pode criar um teste de múltipla escolha em Visual Basic usando rótulos para exibir as perguntas , botões de rádio para as possíveis respostas e controles de botões para navegar entre as diferentes perguntas. No código, usar matrizes para salvar as perguntas e respostas que o usuário envia e manter uma variável de contador para manter o controle do que questionar o utilizador está ligado. No final do teste , marcar as respostas do utilizador e apresentar o resultado no formulário . Instruções
1
Abra um novo projeto Visual Basic. Adicionar duas etiquetas , três botões de rádio e dois controles de botão ao formulário. Arraste os dois rótulos para o topo com Label1 em cima de Label2 . Arraste RadioButton1 , RadioButton2 e RadioButton3 para alinhar verticalmente sob os rótulos. Arraste os dois botões abaixo dos botões de rádio com Button1 à esquerda e Button2 à direita.
2
Pressione " F7 " para abrir a janela de código . Digite o seguinte código no nível de classe :
Dim questões (2, 4) As String Dim
respostas ( 2 ) As String Dim
quesNum As Integer
A primeira linha cria uma matriz bidimensional . A primeira dimensão é para cada questão ea segunda dimensão é para a própria pergunta, três opções de resposta ea resposta correta . A segunda linha cria uma matriz para armazenar as respostas do usuário. A terceira linha cria uma variável de contador que controla a pergunta que o usuário está em
3
Digite o seguinte código: .
Sub GetQuestions particulares ()
perguntas = new String (,) { {" Quantas cores estão em um arco-íris ? ", " 5" , "6" , "7" , "7 "}, { _
"Quem atuou em piratas do Caribe ? "," Johnny Depp "," John Malkovich "," John Cusack "," Johnny Depp "}, { _
" Qual é a capital da Flórida ? "," Miami "," Tallahassee "," Jacksonville "," Tallahassee "}}
End Sub
Esta sub-rotina simplesmente inicializa as três perguntas e respostas na matriz perguntas. Você pode adicionar perguntas adicionais ou obtê-los de outras maneiras , como através de um arquivo de texto , mas se o fizer, lembre-se de alterar o tamanho das perguntas e respostas matrizes para acomodar o número de perguntas.
4
Digite o seguinte código: Private Sub
Marktest ()
grau Dim as Integer = 0
For i = 0 To 2
Se respostas (i) = perguntas (i, 4) Então
grau
+ = 1
End If
Próxima
Label1.Text = "Test acabado! "
Label2.Text =" Você marcou "& grau e " fora de " e answers.Length &" ! "
RadioButton1.Enabled = False
RadioButton2.Enabled = False
RadioButton3.Enabled = False
Button1.Enabled = False
Button2.Enabled = False End Sub
A primeira linha declara uma sub-rotina que marca o teste . Ele cria uma variável local para contar a pontuação, então muda através das respostas na matriz perguntas e as respostas apresentadas pelo usuário. Para cada resposta que corresponda , a nota sobe a um. Em seguida, exibe a pontuação nos rótulos e desabilita o resto dos controles
5
Abra o Form1_Load () sub-rotina e digite o seguinte código: .
Me.Text = " My múltipla Escolha quiz! "
GetQuestions ()
quesNum = 1
Label1.Text =" Pergunta " e quesNum &" de "& answers.Length
Label2.Text = perguntas ( 0, 0)
Button1.Text = " Anterior "
Button2.Text = "Próximo "
RadioButton1.Text = perguntas ( 0, 1)
RadioButton2.Text = perguntas ( 0, 2)
RadioButton3.Text = perguntas (0 , 3)
a primeira linha define o título no barra de título. A próxima linha chama os GetQuestions () sub-rotina. A terceira linha inicializa a variável questão balcão. A quarta linha exibe o número da pergunta que o usuário está ligado. As linhas quinta exibe questionar um no rótulo. As linhas de sexto e sétimo mudar o texto para os dois botões . As últimas três linhas inserir as três respostas de múltipla escolha como texto para os três botões de rádio
6
Abra o Button1_Click () sub-rotina e digite o seguinte código: .
Se quesNum > 1 Então
quesNum - = 1
Label1.Text = " Pergunta " e quesNum & " de 3"
Label2.Text = perguntas ( quesNum - 1 , 0)
RadioButton1.Text = perguntas ( quesNum - 1 , 1)
RadioButton2.Text = perguntas ( quesNum - 1, 2 )
RadioButton3.Text = perguntas ( quesNum - 1 , 3)
Se Button2.Text = "Enviar" Então
Button2.Text = "Próximo "
End If End If
< br >
Este é o código para o botão "Anterior". Ele primeiro verifica se o usuário pressionou o botão enquanto já na primeira pergunta. Se não, ele diminui a questão do contador por um e atualiza o texto para os rótulos e botões de rádio para mostrar a questão anterior. Se o usuário foi sobre a questão final, o texto em Button2 muda de "Enviar" de volta para
7
Abra o Button2_Click () sub-rotina e digite o seguinte código "Next". :
Se RadioButton1.Checked = True Then
respostas ( quesNum - 1) = RadioButton1.Text
ElseIf RadioButton2.Checked = True Then
respostas ( quesNum - 1) = RadioButton2.Text
ElseIf RadioButton3.Checked = True Then
respostas ( quesNum - 1) = RadioButton3.Text
End If
RadioButton1.Focus ()
Se quesNum < 3 Então
quesNum + = 1
Label1.Text = " Pergunta " e quesNum & " de " & answers.Length
Label2.Text = perguntas ( quesNum - 1 , 0)
RadioButton1.Text = perguntas ( quesNum - 1 , 1)
RadioButton2.Text = perguntas ( quesNum - 1 , 2 )
RadioButton3.Text = perguntas ( quesNum - 1, 3 )
Se quesNum = 3 Então
Button2.Text = "Enviar"
Fim Se
Else
Marktest ()
End If
Este é o código para o botão "Next" . As sete primeiras linhas verificar para ver o botão de opção que o usuário tinha selecionado , em seguida, guarda essa resposta para a matriz respostas. A próxima linha se concentra a seleção botão de rádio em RadioButton1 . A próxima linha verifica se o usuário não estiver na pergunta final . Se isso for verdade , aumenta a questão do contador por um e atualiza os rótulos e botões de rádio para mostrar a próxima pergunta. Em seguida, ele verifica se o usuário está agora na pergunta final. Se assim for, ele muda o texto para o botão Avançar em " Next" para " Enviar". Se o usuário já estava na pergunta final e clicar em " Enviar ", o programa chama a função " Marktest " para obter a pontuação do usuário.
8
Salve o programa Visual Basic. Pressione " F5" para executá-lo .