Ejercicio: Escribir código para leer y guardar nuevos datos de la matriz nuestrosAnimales.
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:
- Leer y validar especies: cree un bucle y la estructura de código interna usada para especificar y validar las especies de mascotas.
- Construir el identificador de mascota: escriba el código que usa petCount y el nombre de la especie para construir el valor de petID.
- 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.
- 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.
- 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.
- Leer y validar el sobrenombre: cree un bucle y la estructura de código interna usada para escribir un sobrenombre para la mascota.
- 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.
Asegúrese de que Visual Studio Code esté abierto y que el archivo Program.cs esté visible en el Editor.
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.En dicha línea, para declarar
validEntrycon un valor inicial defalse, escriba el siguiente código:bool validEntry = false;En la línea inmediatamente posterior a la de la declaración de
validEntry, para crear un bucledopara 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);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();Para asegurarse de que el valor de
readResultNO es NULL antes de asignar el valor dereadResultaanimalSpecies, escriba el siguiente código:if (readResult != null) { animalSpecies = readResult.ToLower(); }En la línea inmediatamente inferior a la de la asignación del valor
animalSpecies, para asegurarse de queanimalSpeciescontiene un nombre de especie válido, escriba el siguiente código:if (animalSpecies != "dog" && animalSpecies != "cat") { validEntry = false; } else { validEntry = true; }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);En el menú Archivo de Visual Studio Code, seleccione Guardar.
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.
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.
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();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.
Agregue una línea de código en blanco debajo de la línea utilizada para asignar un valor a la variable
animalID.Para crear un bucle
dopara 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);Dentro del bloque de código de la instrucción
do, para declarar una variable de entero denominadapetAge, escriba el siguiente código:int petAge;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();Para asegurarse de que el valor de
readResultNO es NULL antes de asignar el valor dereadResultaanimalAge, escriba el siguiente código:if (readResult != null) { animalAge = readResult; }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; }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);En el menú Archivo de Visual Studio Code, seleccione Guardar.
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.
Agregue una línea de código en blanco debajo del bloque de código del bucle de entrada de datos de edad.
Para crear un bucle
dopara 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 == "");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();Para asegurarse de que el valor de
readResultNO es NULL antes de asignar el valor dereadResultaanimalPhysicalDescription, escriba el siguiente código:if (readResult != null) { animalPhysicalDescription = readResult.ToLower(); }Para asignar un valor de
"tbd"aanimalPhysicalDescriptioncuando el valor especificado es"", escriba el siguiente código:if (animalPhysicalDescription == "") { animalPhysicalDescription = "tbd"; }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 == "");En el menú Archivo de Visual Studio Code, seleccione Guardar.
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.
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.
Para crear un bucle
dopara 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 == "");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();Para asegurarse de que el valor de
readResultNO es NULL antes de asignar el valor dereadResultaanimalPersonalityDescription, escriba el siguiente código:if (readResult != null) { animalPersonalityDescription = readResult.ToLower(); }Para asignar un valor de
"tbd"aanimalPersonalityDescriptioncuando el valor especificado es"", escriba el siguiente código:if (animalPersonalityDescription == "") { animalPersonalityDescription = "tbd"; }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 == "");En el menú Archivo de Visual Studio Code, seleccione Guardar.
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.
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.
Para crear un bucle
dopara 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 == "");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();Para asegurarse de que el valor de
readResultNO es NULL antes de asignar el valor dereadResultaanimalNickname, escriba el siguiente código:if (readResult != null) { animalNickname = readResult.ToLower(); }Para asignar un valor de
"tbd"aanimalNicknamecuando el valor especificado es"", escriba el siguiente código:if (animalNickname == "") { animalNickname = "tbd"; }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 == "");En el menú Archivo de Visual Studio Code, seleccione Guardar.
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.
Agregue una línea de código en blanco debajo del bloque de código del bucle de entrada de datos del sobrenombre.
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;En el menú Archivo de Visual Studio Code, seleccione Guardar.
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.
Si es necesario, abra el panel del terminal integrado de Visual Studio Code.
En la línea de comandos de Terminal, escriba dotnet run
En el símbolo del sistema del terminal, escriba 2.
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 entryEscriba 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)- En el símbolo del sistema
En el símbolo del sistema del terminal, escriba n
Compruebe que el panel Terminal se ha actualizado para mostrar las opciones del menú principal.
En el indicador de comandos de Terminal, escriba 1.
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 continueSi 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.
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.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í.