Cómo utilizar Visual Basic para crear una prueba de opción múltiple

Abra un nuevo proyecto de Visual Basic. Agregue dos etiquetas, tres botones de radio y controles de dos botones al formulario. Arrastre las dos etiquetas hacia la parte superior con Label1 encima de Label2. Arrastre RadioButton1, RadioButton2 y RadioButton3 para alinearse verticalmente debajo de las etiquetas. Arrastre los dos botones debajo de los botones de radio con Button1 a la izquierda y Button2 a la derecha.

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 en sí, 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 está el usuario.

Private Sub GetQuestions () questions = New String (,) {{"¿Cuántos colores hay en un arco iris?", "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 hacer, recuerde cambiar el tamaño de las matrices de preguntas y respuestas para acomodar el número de preguntas.

Privado Sub MarkTest () Grado atenuado Como Entero = 0 Para i = 0 A 2 Si las respuestas (i) = preguntas (i, 4) Entonces grado + = 1 End If Next Label1.Text = "¡Prueba terminada!" Label2.Text = "Obtuvo" & califica & "fuera de" & respuestas. Longitud & "!" RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton3.Enabled = False Button1.Enabled = False Button2.Enabled = False End Sub

La primera línea declara una subrutina que marca la prueba. Crea una variable local para contar la puntuación, luego recorre las respuestas en la matriz de preguntas y las respuestas enviadas por el usuario. Por cada respuesta que coincida, la calificación aumenta en uno. Luego muestra la puntuación en las etiquetas y deshabilita el resto de los controles.

Yo. Text = "¡Mi cuestionario de opción múltiple!" GetQuestions () quesNum = 1 Label1.Text = "Pregunta" & quesNum & "de" & respuestas. Longitud 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 del contador de preguntas. La cuarta línea muestra en qué número de pregunta está 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.

Si quesNum> 1 Entonces quesNum - = 1 Label1.Text = "Pregunta" & quesNum & "de 3" Label2.Text = preguntas (quesNum - 1, 0) RadioButton1.Text = preguntas (quesNum - 1, 1) RadioButton2.Text = preguntas (quesNum - 1, 2) RadioButton3.Text = preguntas (quesNum - 1, 3) If Button2.Text = "Submit" Then Button2.Text = "Next" End If End If

Este es el código del 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 de Button2 cambia de "Enviar" a "Siguiente".

Si RadioButton1.Checked = True Entonces responde (quesNum - 1) = RadioButton1.Text Else Si 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 = "Question" & quesNum & "of "& respuestas. Longitud Label2.Text = preguntas (quesNum - 1, 0) RadioButton1.Text = preguntas (quesNum - 1, 1) RadioButton2.Text = preguntas (quesNum - 1, 2) RadioButton3.Text = preguntas (quesNum - 1, 3) Si quesNum = 3, entonces Button2.Text = "Enviar" Finalizar si else MarkTest () Terminara si

Este es el código del botón "Siguiente". Las primeras siete líneas verifican qué botón de opción había seleccionado el usuario y 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 opción 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 el pregunta final y hace clic en "Enviar", el programa llama a la función "MarkTest" para obtener la puntuación del usuario.