For enghish support and procedure: riva.claudio@gmail.com - Visita Mi perfil de LINKEDIN
Ejercicio 5 (Visual Basic.NET, aplicación de consola)
Introducción: Básicamente este ejercicio utiliza las mismas herramientas que el
Ejercicio 2 (Procedimientos e If) aunque se agrega algo de complejidad a la letra del mismo.
Se utiliza un Proyecto de tipo "Aplicación de consola" de Visual Basic 2010 que se ejecuta precisamente en una consola de MS-DOS para interactuar con el usuario.
Letra:
Combinar las opciones, menús y acciones de los ejercicios 3 y 4
Descargar Archivos del Proyecto
Código de la Solución:
Module Module1
Dim opcion, nota As Integer
Dim nombre, apellido, yn, ci, status, nuevo As String
Dim fecha As Date
Sub Main()
nota = 0
nombre = "nulo"
apellido = "nulo"
Console.Clear()
Console.WriteLine("Seleccione una opción:")
Lineapunteada()
Console.WriteLine("1- Ingresar Nombre")
Console.WriteLine("2- Ingresar Apellido")
Console.WriteLine("3- Ingresar datos del Examen")
Console.WriteLine("4- Salir")
Lineapunteada()
opcion = Console.ReadLine
If opcion = "1" Then
PedirDatos(nombre)
ElseIf opcion = "2" Then
PedirDatos(apellido)
ElseIf opcion = "3" Then
ConDato()
Else
End
End If
End Sub
'Procedimiento que solicita nombre o apellido dependiendo de la opción seleccionada en el menú
'y pregunta si se desea ingresar el resto de los datos del examen
'al responder S comienza a pedir el resto de los datos
'al responder N muestra lo ingresado y finaliza
Sub PedirDatos(ByVal name As String)
If opcion = "1" Then
Console.Write("Ingrese el nombre: ")
name = Console.ReadLine
nombre = name
ElseIf opcion = "2" Then
Console.Write("Ingrese el apellido: ")
name = Console.ReadLine
apellido = name
End If
Console.WriteLine("¿Desea ingresar el resto de los datos del exámen (S/N)?")
yn = Console.ReadLine
If yn = "S" Then
ConDato()
Else
If opcion = "1" Then
Console.WriteLine("El nombre ingresado es: " & nombre)
ElseIf opcion = "2" Then
Console.WriteLine("El apellido ingresado es: " & apellido)
End If
Console.ReadLine()
End If
End Sub
'Procedimiento que incluye el dato ya ingresado (nombre o apellido) dependiendo de la opción 'seleccionada en el menú
'y solicita el resto de los datos del examen
Sub ConDato()
Console.Clear()
Lineapunteada()
If opcion = "1" Then
Console.WriteLine("Ingrese el nombre: " & nombre)
Console.Write("Ingrese el Apellido: ")
apellido = Console.ReadLine
ElseIf opcion = "2" Then
Console.WriteLine("Ingrese el apellido: " & apellido)
Console.Write("Ingrese el Nombre: ")
nombre = Console.ReadLine
ElseIf opcion = "3" Then
Console.Write("Ingrese el Nombre: ")
nombre = Console.ReadLine
Console.Write("Ingrese el Apellido: ")
apellido = Console.ReadLine
End If
Console.Write("Ingrese CI (x.xxx.xxx-x): ")
ci = Console.ReadLine
Console.Write("Ingrese Fecha de Nacimiento (DD/MM/AAAA): ")
fecha = Console.ReadLine
PedirNota(nota)
End Sub
'Procedimiento que solicita el valor de la nota y llama al procedimiento Validarnota
Sub PedirNota(ByVal valor As Integer)
Console.Write("Ingrese la Nota del examen: ")
valor = Console.ReadLine
Validarnota(valor)
End Sub
'Procedimiento que valida si la nota ingresada es mayor que 100
'Si no es mayor que 100, llama al procedimiento SetStatus
Sub Validarnota(ByVal valor As Integer)
If valor > 100 Then
Console.WriteLine("La nota no puede ser mayor a 100")
PedirNota(nota)
Else
nota = valor
SetStatus(nota)
End If
End Sub
'Procedimiento que determina el valor de Status según la nota ingresada
Sub SetStatus(ByVal result As String)
If nota >= 86 Then
result = "EXONERA"
status = result
Mostrar()
ElseIf nota < 70 Then
result = "PERDIO EL EXAMEN"
status = result
Mostrar()
Else
result = "DEBE RENDIR OTRA PRUEBA"
status = result
Mostrar()
End If
End Sub
'Procedimiento que muestra todos los datos ingresados y obtenidos
'Consulta si se desean ingresar datos de otro alumno, volviendo al Procedimiento Main
'para mostrar el menú inicial nuevamente en caso de responder que si (S)
Sub Mostrar()
Console.Clear()
Lineapunteada()
Console.WriteLine("Nombre: " & nombre)
Console.WriteLine("Cédula: " & ci)
Console.WriteLine("F.Nacimiento: " & fecha)
Console.WriteLine("Nota: " & nota)
Console.WriteLine("Resultado: " & status)
Lineapunteada()
Console.ReadLine()
Console.WriteLine("¿Desea ingresar otro alumno? (S/N)")
nuevo = Console.ReadLine
If nuevo = "S" Then
Main()
Else
End
End If
End Sub
'Procedimiento que muestra línea punteada, sólo un detalle estético
Sub Lineapunteada()
Console.WriteLine(".....................................")
End Sub