Ejercicio: Escribir código para leer y guardar nuevos datos de la matriz nuestrosAnimales.

Completado

En este ejercicio, desarrollará los bucles de validación de entrada de datos para cada característica de mascota y, a continuación, almacenará los nuevos datos de matriz de ourAnimals. Las tareas detalladas que ha completado durante este ejercicio son:

  1. Leer y validar especies: cree un bucle y la estructura de código interna usada para especificar y validar las especies de mascotas.
  2. Construir el identificador de mascota: escriba el código que usa petCount y el nombre de la especie para construir el valor de petID.
  3. Leer y validar la antigüedad: cree un bucle y la estructura de código interna usada para especificar y validar las especies de mascotas.
  4. Leer y validar la descripción física: cree un bucle y la estructura de código interna usada para escribir una descripción física de la mascota.
  5. Leer y validar la descripción de la personalidad: cree un bucle y la estructura de código interna usada para escribir una descripción de la personalidad de la mascota.
  6. Leer y validar el sobrenombre: cree un bucle y la estructura de código interna usada para escribir un sobrenombre para la mascota.
  7. Prueba de comprobación: realice pruebas de comprobación del código que desarrolle en este ejercicio.

Importante

Debe completar el ejercicio anterior de este módulo antes de iniciar este ejercicio.

Creación de un bucle para leer y validar las especies de mascotas

En esta tarea, se crea un bucle do que realiza iteraciones hasta que el usuario escriba un nombre de especie válido, perro o gato. Se reutiliza la cadena anulable readResult para capturar la entrada Console.ReadLine(). También se reutiliza la variable de cadena animalSpecies que se usó al generar los datos de ejemplo. Se agrega una nueva variable booleana denominada validEntry a la aplicación. Se usa validEntry en una expresión que se evalúa como criterios de salida para el bucle do.

  1. Asegúrese de que Visual Studio Code esté abierto y que el archivo Program.cs esté visible en el Editor.

  2. Busque la instrucción while (anotherPet == "y" && petCount < maxPets) y agregue una línea de código en blanco en el bloque de código superior.

  3. En dicha línea, para declarar validEntry con un valor inicial de false, escriba el siguiente código:

    bool validEntry = false;
    
    
  4. En la línea inmediatamente posterior a la de la declaración de validEntry, para crear un bucle do para la entrada de datos de especies, escriba el siguiente código:

    // get species (cat or dog) - string animalSpecies is a required field 
    do
    {
    } while (validEntry == false);
    
    
  5. Dentro del bloque de código de la instrucción do, para crear un símbolo del sistema para mostrar y leer la entrada del usuario, escriba el siguiente código:

    Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry");
    readResult = Console.ReadLine();
    
    
  6. Para asegurarse de que el valor de readResult NO es NULL antes de asignar el valor de readResult a animalSpecies, escriba el siguiente código:

    if (readResult != null)
    {
        animalSpecies = readResult.ToLower();
    
    }
    
  7. En la línea inmediatamente inferior a la de la asignación del valor animalSpecies, para asegurarse de que animalSpecies contiene un nombre de especie válido, escriba el siguiente código:

    if (animalSpecies != "dog" && animalSpecies != "cat")
    {
        validEntry = false;
    }
    else
    {
        validEntry = true;
    }
    
  8. Compare el bucle de entrada de datos de nombre de especie completado con el siguiente código:

    // get species (cat or dog) - string animalSpecies is a required field 
    do
    {
        Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry");
        readResult = Console.ReadLine();
        if (readResult != null)
        {
            animalSpecies = readResult.ToLower();
            if (animalSpecies != "dog" && animalSpecies != "cat")
            {
                //Console.WriteLine($"You entered: {animalSpecies}.");
                validEntry = false;
            }
            else
            {
                validEntry = true;
            }
        }
    } while (validEntry == false);
    
  9. En el menú Archivo de Visual Studio Code, seleccione Guardar.

  10. Abra el panel Terminal integrado en Visual Studio Code y escriba el comando para compilar el programa.

    Si se han notificado errores de compilación o advertencias, corrija los problemas antes de continuar.

Construcción del valor de identificador de animal

En esta tarea, se usan las variables animalSpecies y petCount para crear el valor que se asigna a animalID.

  1. Agregue una línea de código en blanco debajo del bloque de código del bucle de entrada de datos de nombre de especie.

  2. Para crear y asignar el valor animalID, escriba el siguiente código:

    // build the animal the ID number - for example C1, C2, D3 (for Cat 1, Cat 2, Dog 3)
    animalID = animalSpecies.Substring(0, 1) + (petCount + 1).ToString();
    
    
  3. En el menú Archivo de Visual Studio Code, seleccione Guardar.

Creación de un bucle para leer y validar la edad de la mascota

En esta tarea, se crea un bucle do que recorre en iteración hasta que el usuario escribe ? o un entero válido o que representa la edad de la mascota, en años. Se reutiliza la cadena anulable readResult para capturar la entrada Console.ReadLine(). También se reutiliza la variable de cadena animalAge que se usó al generar los datos de ejemplo. Para comprobar si la cadena animalAge representa un entero válido, use el valor booleano validEntry. Se declara una nueva variable de entero denominada petAge para almacenar el valor numérico. Una vez más, se usa el valor booleano validEntry en la expresión que se evalúa como un criterio de salida para el bucle do.

  1. Agregue una línea de código en blanco debajo de la línea utilizada para asignar un valor a la variable animalID.

  2. Para crear un bucle do para la entrada de datos de edad, escriba el siguiente código:

    // get the pet's age. can be ? at initial entry. 
    do
    {
    } while (validEntry == false);
    
    
  3. Dentro del bloque de código de la instrucción do, para declarar una variable de entero denominada petAge, escriba el siguiente código:

    int petAge;
    
    
  4. En la línea debajo de la declaración de petAge, para mostrar un mensaje y leer la entrada del usuario, escriba el siguiente código:

    Console.WriteLine("Enter the pet's age or enter ? if unknown");
    readResult = Console.ReadLine();
    
    
  5. Para asegurarse de que el valor de readResult NO es NULL antes de asignar el valor de readResult a animalAge, escriba el siguiente código:

    if (readResult != null)
    {
        animalAge = readResult;
    
    }
    
  6. En la línea inmediatamente inferior a la de la asignación del valor animalAge, para comprobar si el usuario ha escrito ? antes de probar si es un entero válido, escriba el siguiente código:

    if (animalAge != "?")
    {
        validEntry = int.TryParse(animalAge, out petAge);
    }
    else
    {
        validEntry = true;
    }
    
  7. Compare el bucle de entrada de datos de edad completado con el siguiente código:

    // get the pet's age. can be ? at initial entry.
    do
    {
        int petAge;
        Console.WriteLine("Enter the pet's age or enter ? if unknown");
        readResult = Console.ReadLine();
        if (readResult != null)
        {
            animalAge = readResult;
            if (animalAge != "?")
            {
                validEntry = int.TryParse(animalAge, out petAge);
            }
            else
            {
                validEntry = true;
            }
        }
    } while (validEntry == false);
    
  8. En el menú Archivo de Visual Studio Code, seleccione Guardar.

  9. Abra el panel Terminal integrado en Visual Studio Code y escriba el comando para compilar el programa.

    Si se han notificado errores de compilación o advertencias, corrija los problemas antes de continuar.

Creación de un bucle para leer y validar la descripción física de la mascota

En esta tarea, se crea un bucle do que recorre los datos en iteración hasta que el usuario escribe un valor de cadena que representa una descripción física de una mascota. Se reutiliza la cadena anulable readResult para capturar la entrada Console.ReadLine(). También se reutiliza la variable de cadena animalPhysicalDescription que se usó al generar los datos de ejemplo. Use el valor asignado a animalPhysicalDescription en la expresión que se evalúa como un criterio de salida para nuestro bucle do.

  1. Agregue una línea de código en blanco debajo del bloque de código del bucle de entrada de datos de edad.

  2. Para crear un bucle do para la entrada de datos de descripción física, escriba el siguiente código:

    // get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank.
    do
    {
    } while (animalPhysicalDescription == "");
    
    
  3. Dentro del bloque de código de la instrucción do, para crear un símbolo del sistema para mostrar y leer la entrada del usuario, escriba el siguiente código:

    Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)");
    readResult = Console.ReadLine();
    
    
  4. Para asegurarse de que el valor de readResult NO es NULL antes de asignar el valor de readResult a animalPhysicalDescription, escriba el siguiente código:

    if (readResult != null)
    {
        animalPhysicalDescription = readResult.ToLower();
    
    }
    
  5. Para asignar un valor de "tbd" a animalPhysicalDescription cuando el valor especificado es "", escriba el siguiente código:

    if (animalPhysicalDescription == "")
    {
        animalPhysicalDescription = "tbd";
    }
    
  6. Compare el bucle de entrada de datos de descripción física completado con el siguiente código:

    // get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank.
    do
    {
        Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)");
        readResult = Console.ReadLine();
        if (readResult != null)
        {
            animalPhysicalDescription = readResult.ToLower();
            if (animalPhysicalDescription == "")
            {
                animalPhysicalDescription = "tbd";
            }
        }
    } while (animalPhysicalDescription == "");
    
  7. En el menú Archivo de Visual Studio Code, seleccione Guardar.

  8. Abra el panel Terminal integrado en Visual Studio Code y escriba el comando para compilar el programa.

    Si se han notificado errores de compilación o advertencias, corrija los problemas antes de continuar.

Creación de un bucle para leer y validar la descripción de la personalidad de la mascota

En esta tarea, se crea un bucle do que recorre los datos en iteración hasta que el usuario escribe un valor de cadena que representa una descripción de la personalidad de una mascota. Se reutiliza la cadena anulable readResult para capturar la entrada Console.ReadLine(). También se reutiliza la variable de cadena animalPersonalityDescription que se usó al generar los datos de ejemplo. Use el valor asignado a animalPersonalityDescription en la expresión que se evalúa como un criterio de salida para nuestro bucle do.

  1. Agregue una línea de código en blanco debajo del bloque de código del bucle de entrada de datos de descripción física.

  2. Para crear un bucle do para la entrada de datos de descripción de la personalidad, escriba el siguiente código:

    // get a description of the pet's personality - animalPersonalityDescription can be blank.
    do
    {
    } while (animalPersonalityDescription == "");
    
    
  3. Dentro del bloque de código de la instrucción do, para crear un símbolo del sistema para mostrar y leer la entrada del usuario, escriba el siguiente código:

    Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)");
    readResult = Console.ReadLine();
    
    
  4. Para asegurarse de que el valor de readResult NO es NULL antes de asignar el valor de readResult a animalPersonalityDescription, escriba el siguiente código:

    if (readResult != null)
    {
        animalPersonalityDescription = readResult.ToLower();
    
    }
    
  5. Para asignar un valor de "tbd" a animalPersonalityDescription cuando el valor especificado es "", escriba el siguiente código:

    if (animalPersonalityDescription == "")
    {
        animalPersonalityDescription = "tbd";
    }
    
  6. Compare el bucle de entrada de datos de descripción de personalidad completado con el siguiente código:

    // get a description of the pet's personality - animalPersonalityDescription can be blank.
    do
    {
        Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)");
        readResult = Console.ReadLine();
        if (readResult != null)
        {
            animalPersonalityDescription = readResult.ToLower();
            if (animalPersonalityDescription == "")
            {
                animalPersonalityDescription = "tbd";
            }
        }
    } while (animalPersonalityDescription == "");
    
  7. En el menú Archivo de Visual Studio Code, seleccione Guardar.

  8. Abra el panel Terminal integrado en Visual Studio Code y escriba el comando para compilar el programa.

    Si se han notificado errores de compilación o advertencias, corrija los problemas antes de continuar.

Creación de un bucle para leer y validar el sobrenombre de la mascota

En esta tarea, se crea un bucle do que recorre los datos en iteración hasta que el usuario escribe un valor de cadena que representa un sobrenombre de una mascota. Se reutiliza la cadena anulable readResult para capturar la entrada Console.ReadLine(). También se reutiliza la variable de cadena animalNickname que se usó al generar los datos de ejemplo. Use el valor asignado a animalNickname en la expresión que se evalúa como un criterio de salida para nuestro bucle do.

  1. Agregue una línea de código en blanco debajo del bloque de código del bucle de entrada de datos de descripción de la personalidad.

  2. Para crear un bucle do para la entrada de datos de descripción de la personalidad, escriba el siguiente código:

    // get the pet's nickname. animalNickname can be blank.
    do
    {
    } while (animalNickname == "");
    
    
  3. Dentro del bloque de código de la instrucción do, para crear un símbolo del sistema para mostrar y leer la entrada del usuario, escriba el siguiente código:

    Console.WriteLine("Enter a nickname for the pet");
    readResult = Console.ReadLine();
    
    
  4. Para asegurarse de que el valor de readResult NO es NULL antes de asignar el valor de readResult a animalNickname, escriba el siguiente código:

    if (readResult != null)
    {
        animalNickname = readResult.ToLower();
    
    }
    
  5. Para asignar un valor de "tbd" a animalNickname cuando el valor especificado es "", escriba el siguiente código:

    if (animalNickname == "")
    {
        animalNickname = "tbd";
    }
    
  6. Compare el bucle de entrada de datos de sobrenombre completado con el siguiente código:

    // get the pet's nickname. animalNickname can be blank.
    do
    {
        Console.WriteLine("Enter a nickname for the pet");
        readResult = Console.ReadLine();
        if (readResult != null)
        {
            animalNickname = readResult.ToLower();
            if (animalNickname == "")
            {
                animalNickname = "tbd";
            }
        }
    } while (animalNickname == "");
    
  7. En el menú Archivo de Visual Studio Code, seleccione Guardar.

  8. Abra el panel Terminal integrado en Visual Studio Code y escriba el comando para compilar el programa.

    Si se han notificado errores de compilación o advertencias, corrija los problemas antes de continuar.

Almacenamiento de la información de la nueva mascota

En esta tarea, se guardan los valores especificados para las características de las mascotas en la matriz ourAnimals.

  1. Agregue una línea de código en blanco debajo del bloque de código del bucle de entrada de datos del sobrenombre.

  2. Para almacenar los valores de datos especificados por el usuario, escriba el siguiente código:

    // store the pet information in the ourAnimals array (zero based)
    ourAnimals[petCount, 0] = "ID #: " + animalID;
    ourAnimals[petCount, 1] = "Species: " + animalSpecies;
    ourAnimals[petCount, 2] = "Age: " + animalAge;
    ourAnimals[petCount, 3] = "Nickname: " + animalNickname;
    ourAnimals[petCount, 4] = "Physical description: " + animalPhysicalDescription;
    ourAnimals[petCount, 5] = "Personality: " + animalPersonalityDescription;
    
  3. En el menú Archivo de Visual Studio Code, seleccione Guardar.

  4. Abra el panel Terminal integrado en Visual Studio Code y escriba el comando para compilar el programa.

    Si se han notificado errores de compilación o advertencias, corrija los problemas antes de continuar.

Revisa tu trabajo

En esta tarea, se ejecuta la aplicación desde el panel Terminal integrado y comprueba que la entrada de datos de la mascota funciona correctamente.

  1. Si es necesario, abra el panel del terminal integrado de Visual Studio Code.

  2. En la línea de comandos de Terminal, escriba dotnet run

  3. En el símbolo del sistema del terminal, escriba 2.

  4. Compruebe que el panel Terminal se ha actualizado para mostrar la siguiente salida:

    We currently have 4 pets that need homes. We can manage 4 more.
    
    Enter 'dog' or 'cat' to begin a new entry
    
  5. Escriba los siguientes valores en los símbolos del sistema de Terminal y compruebe que se muestra cada símbolo del sistema posterior:

    • En el símbolo del sistema Enter 'dog' or 'cat' to begin a new entry, escriba perro.
    • En el símbolo del sistema Enter the pet's age or enter ? if unknown, escriba ?.
    • En el símbolo del sistema Enter a physical description of the pet (size, color, gender, weight, housebroken), presione la tecla Entrar.
    • En el símbolo del sistema Enter a description of the pet's personality (likes or dislikes, tricks, energy level), presione la tecla Entrar.
    • En el símbolo del sistema Enter a nickname for the pet, presione la tecla Entrar.

    El panel Terminal debe actualizarse de la siguiente manera:

    Enter 'dog' or 'cat' to begin a new entry
    dog
    Enter the pet's age or enter ? if unknown
    ?
    Enter a physical description of the pet (size, color, gender, weight, housebroken)
    
    Enter a description of the pet's personality (likes or dislikes, tricks, energy level)
    
    Enter a nickname for the pet
    
    Do you want to enter info for another pet (y/n)
    
  6. En el símbolo del sistema del terminal, escriba n

  7. Compruebe que el panel Terminal se ha actualizado para mostrar las opciones del menú principal.

  8. En el indicador de comandos de Terminal, escriba 1.

  9. Compruebe que el panel Terminal se ha actualizado para mostrar la siguiente salida:

    ID #: d1
    Species: dog
    Age: 2
    Nickname: lola
    Physical description: medium sized cream colored female golden retriever weighing about 65 pounds. housebroken.
    Personality: loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.
    
    ID #: d2
    Species: dog
    Age: 9
    Nickname: loki
    Physical description: large reddish-brown male golden retriever weighing about 85 pounds. housebroken.
    Personality: loves to have his ears rubbed when he greets you at the door, or at any time! loves to lean-in and give doggy hugs.
    
    ID #: c3
    Species: cat
    Age: 1
    Nickname: Puss
    Physical description: small white female weighing about 8 pounds. litter box trained.
    Personality: friendly
    
    ID #: c4
    Species: cat
    Age: ?
    Nickname:
    Physical description:
    Personality:
    
    ID #: d5
    Species: dog
    Age: ?
    Nickname: tbd
    Physical description: tbd
    Personality: tbd
    Press the Enter key to continue
    

    Si no se muestra la información de la mascota recién agregada, asegúrese de que ha incluido las líneas de código para guardar los datos en la matriz ourAnimals y de que ha incluido la línea de código para construir el petID.

  10. Compruebe que puede crear descripciones de animales adicionales para perros y gatos y que las características de los animales se están guardando en la matriz ourAnimals.

  11. Salga de la aplicación y cierre el panel Terminal.

Enhorabuena por completar este proyecto guiado. Ha creado una aplicación que combina instrucciones de selección e iteración para lograr los objetivos de diseño de la aplicación. La aplicación incluye más de 300 líneas y realiza tareas que puede encontrar en una aplicación profesional. Completar este proyecto representa un logro significativo. Siga trabajando así.