lunes, 7 de mayo de 2012

Utilizar menú y realizar acciones por opciones - Consola

For enghish support and procedure: riva.claudio@gmail.com - Visita Mi perfil de LINKEDIN

Ejercicio 3 (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: mostrar el siguiente menú y tomar una acción dependiendo de lo ingresado por el usuario
Menú


Elija la opción
1- Ingrese Nombre
2- Ingrese Apellido
3- Salir
Código de la Solución:
Module Module1
    Dim Nombre, Apellido As String
    Dim Decidir As String

    Sub Main()
        Dim opcion As Integer

        opcion = 0
        Nombre = "nulo"
        Apellido = "nulo"

        Console.WriteLine("Menú")

        Lineapunteada()

        Console.WriteLine("Seleccione una opción:")
        Console.WriteLine("1- Ingresar Nombre")
        Console.WriteLine("2- Ingresar Apellido")
        Console.WriteLine("3- Salir")

        Lineapunteada()

        opcion = Console.ReadLine

        If opcion = "1" Then
            PedirNombre(Nombre)
        ElseIf opcion = "2" Then
            PedirApellido(Apellido)
        Else
            End
        End If
    End Sub

    'Procedimiento que agrega una línea punteada, sólo un detalle estético

    Sub Lineapunteada()
        Console.WriteLine(".......................")
    End Sub

    'Procedimiento que solicita el ingreso del nombre de ser necesario, no es la opción del menú

    Sub PedirNombre(ByVal name As String)
        Console.Write("Escriba su nombre: ")
        name = Console.ReadLine
        Nombre = name

        'Verifica si el usuario ya ingreso el Apellido, si no lo hizo, pregunta si lo desea hacer ahora
        'si ya lo ingreso, pregunta si se desea visualizar el nombre completo

        If Apellido = "nulo" Then
            Console.WriteLine("¿Desea ingresar su Apellido? (S/N)?")
            Decidir = Console.ReadLine
            If Decidir = "S" Then
                PedirApellido(Apellido)
            Else
                Console.WriteLine("El nombre ingresado es: " + name)
                Console.ReadLine()
                End
            End If
        Else
            Console.WriteLine("¿Desea ver el nombre completo? (S/N)")
            Decidir = Console.ReadLine
            If Decidir = "S" Then
                NombreCompleto()
            Else
                End
            End If
        End If
    End Sub

    'Procedimiento que solicita el ingreso del apellido de ser necesario, no es la opción del menú

    Sub PedirApellido(ByVal lastname As String)
        Console.Write("Escriba su Apellido: ")
        lastname = Console.ReadLine
        Apellido = lastname

        'Verifica si el usuario ya ingreso el Nombre si no lo hizo, pregunta si lo desea hacer ahora
        'si ya lo ingreso, pregunta si se desea visualizar el nombre completo

        If Nombre = "nulo" Then
            Console.WriteLine("¿Desea ingresar su Nombre? (S/N)?")
            Decidir = Console.ReadLine
            If Decidir = "S" Then
                PedirNombre(Nombre)
            Else
                Console.WriteLine("El Apellido ingresado es: " + lastname)
                Console.ReadLine()
                End
            End If
        Else
            Console.WriteLine("¿Desea ver el nombre completo? (S/N)")
            Decidir = Console.ReadLine
            If Decidir = "S" Then
                NombreCompleto()
            Else
                Console.WriteLine("El nombre ingresado es: " + lastname)
                Console.ReadLine()
                End
            End If
        End If
    End Sub

    'Procedimiento que muestra el nombre completo del usuario

    Sub NombreCompleto()
        Console.WriteLine("El nombre completo es: " + Nombre + " " + Apellido)
        Console.ReadLine()
    End Sub
End Module


For enghish support and procedure: riva.claudio@gmail.com - Visita Mi perfil de LINKEDIN

No hay comentarios:

Publicar un comentario