Cómo usar Visual Basic para crear una prueba de opción múltiple
Cada pregunta en una prueba de opción múltiple consta de una pregunta en sí misma y varias respuestas diferentes, de las cuales solo una es correcta. Puede crear una prueba de opción múltiple en Visual Basic usando etiquetas para mostrar las preguntas, botones de radio para las posibles respuestas y controles de botón para navegar entre diferentes preguntas. En el código, use matrices para guardar las preguntas y respuestas que envía el usuario y mantenga una variable de contador para realizar un seguimiento de la pregunta en la que se encuentra el usuario. Al final de la prueba, marque las respuestas del usuario y muestre el resultado en el formulario.
Paso 1
Abra un nuevo proyecto de Visual Basic. Agregue dos etiquetas, tres botones de radio y dos controles de botón al formulario. Arrastra las dos etiquetas a la parte superior con Label1 encima de Label2. Arrastre RadioButton1, RadioButton2 y RadioButton3 para alinearlos verticalmente debajo de las etiquetas. Arrastre los dos botones debajo de los botones de radio con el Botón1 a la izquierda y el Botón2 a la derecha.
Paso 2
Presione "F7" para abrir la ventana de código. Escriba el siguiente código en el nivel de clase:
Dim preguntas (2, 4) As String Dim respuestas (2) As String Dim quesNum As Integer
La primera línea crea una matriz bidimensional. La primera dimensión es para cada pregunta y la segunda dimensión es para la pregunta misma, tres opciones de respuesta y la respuesta correcta. La segunda línea crea una matriz para almacenar las respuestas del usuario. La tercera línea crea una variable de contador que realiza un seguimiento de la pregunta en la que se encuentra el usuario.
Paso 3
Escribe el siguiente código:
Private Sub GetQuestions() preguntas =New String(,) {{"¿Cuántos colores hay en un arcoíris?", "5", "6", "7", "7"}, {"Quién protagonizó ¿Piratas del Caribe?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"¿Cuál es la capital de Florida?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} End Sub
Esta subrutina simplemente inicializa las tres preguntas y respuestas en la matriz de preguntas. Puede agregar preguntas adicionales u obtenerlas de otras formas, como a través de un archivo de texto, pero si lo hace, recuerde cambiar el tamaño de las matrices de preguntas y respuestas para acomodar la cantidad de preguntas.
Paso 4
Escribe el siguiente código:
Private Sub MarkTest() Dim grade As Integer =0 For i =0 To 2 Si las respuestas (i) =preguntas (i, 4) Entonces calificar +=1 End If Next Label1.Text ="¡Prueba finalizada!" Label2.Text ="Obtuviste una puntuación de " &calificar &" de " &respuestas. Longitud &"!" RadioButton1.Enabled =Falso RadioButton2.Enabled =Falso RadioButton3.Enabled =Falso Button1.Enabled =Falso Button2.Enabled =Falso End Sub
La primera línea declara una subrutina que marca la prueba. Crea una variable local para contar el puntaje, luego recorre las respuestas en la matriz de preguntas y las respuestas enviadas por el usuario. Por cada respuesta que coincida, la calificación sube en uno. Luego muestra la puntuación en las etiquetas y desactiva el resto de los controles.
Paso 5
Abra la subrutina Form1_Load() y escriba el siguiente código:
Me.Text ="¡Mi prueba de opción múltiple!" GetQuestions() quesNum =1 Label1.Text ="Pregunta " &quesNum &" of " &answers.Length Label2.Text =preguntas (0, 0) Button1.Text ="Anterior" Button2.Text ="Siguiente" RadioButton1.Text =preguntas (0, 1) RadioButton2.Text =preguntas (0, 2) RadioButton3.Text =preguntas (0, 3)
La primera línea establece el título en la barra de título. La siguiente línea llama a la subrutina GetQuestions(). La tercera línea inicializa la variable contador de preguntas. La cuarta línea muestra en qué número de pregunta se encuentra el usuario. La quinta línea muestra la pregunta uno en la etiqueta. Las líneas sexta y séptima cambian el texto de los dos botones. Las últimas tres líneas insertan las tres respuestas de opción múltiple como texto para los tres botones de opción.
Paso 6
Abra la subrutina Button1_Click() y escriba el siguiente código:
If quesNum> 1 Then quesNum -=1 Label1.Text ="Pregunta " &quesNum &" de 3" Label2.Text =preguntas(quesNum - 1, 0) RadioButton1.Text =preguntas(quesNum - 1, 1) RadioButton2.Text =preguntas (NúmPreguntas - 1, 2) RadioButton3.Text =preguntas (NúmeroPreguntas - 1, 3) Si Botón2.Texto ="Enviar" Entonces Botón2.Texto ="Siguiente" Terminar Si Terminar Si
Este es el código para el botón "Anterior". Primero verifica si el usuario presionó el botón mientras ya estaba en la primera pregunta. De lo contrario, reduce el contador de preguntas en uno y actualiza el texto de las etiquetas y los botones de opción para mostrar la pregunta anterior. Si el usuario estaba en la pregunta final, el texto en Button2 cambia de "Enviar" a "Siguiente".
Paso 7
Abra la subrutina Button2_Click() y escriba el siguiente código:
If RadioButton1.Checked =True Entonces responde(quesNum - 1) =RadioButton1.Text ElseIf RadioButton2.Checked =True Entonces responde(quesNum - 1) =RadioButton2.Text ElseIf RadioButton3.Checked =True Entonces responde(quesNum - 1) =RadioButton3. Text End If RadioButton1.Focus() If quesNum <3 Then quesNum +=1 Label1.Text ="Pregunta " &quesNum &" of " &answers.Length Label2.Text =preguntas(quesNum - 1, 0) RadioButton1.Text =preguntas(NúmeroPreguntas - 1, 1) BotónRadio2.Text =Preguntas(NúmeroPreguntas - 1, 2) BotónRadio3.Text =Preguntas(NúmeroPreguntas - 1, 3) Si NúmeroPreguntas =3 Entonces Botón2.Texto ="Enviar" End If Else MarkTest() Terminar si
Este es el código para el botón "Siguiente". Las primeras siete líneas verifican qué botón de radio seleccionó el usuario, luego guarda esa respuesta en la matriz de respuestas. La siguiente línea enfoca la selección del botón de radio en RadioButton1. La siguiente línea verifica que el usuario no esté en la pregunta final. Si esto es cierto, aumenta el contador de preguntas en uno y actualiza las etiquetas y los botones de radio para mostrar la siguiente pregunta. Luego verifica si el usuario está ahora en la pregunta final. Si es así, cambia el texto del botón Siguiente de "Siguiente" a "Enviar". Si el usuario ya estaba en la pregunta final e hizo clic en "Enviar", el programa llama a la función "Marcar prueba" para obtener la puntuación del usuario.
Paso 8
Guarde el programa de Visual Basic. Presiona "F5" para ejecutarlo.