Упражнение. Написание кода для чтения и сохранения новых данных массиваAnimals
В этом упражнении вы разрабатываете циклы проверки ввода данных для каждой характеристики домашних животных, а затем храните новые ourAnimals данные массива. Ниже приведены подробные задачи, которые выполняются во время этого упражнения:
- Чтение и проверка видов: создание цикла и внутренней структуры кода, используемой для ввода и проверки видов домашних животных.
- Создайте идентификатор питомца: напишите код, использующий petCount и имя вида для создания значения petID.
- Чтение и проверка возраста: создание цикла и внутренней структуры кода, используемой для ввода и проверки возраста животного.
- Чтение и проверка физического описания: создание цикла и внутренней структуры кода, используемой для ввода физического описания животного.
- Чтение и проверка описания личности: создание цикла и внутренней структуры кода, используемой для ввода описания личности питомца.
- Чтение и проверка псевдонима: создание цикла и внутренней структуры кода, используемой для ввода псевдонима для питомца.
- Тест проверки: выполните тесты проверки для кода, который вы разрабатываете в этом упражнении.
Это важно
Перед началом этого упражнения необходимо выполнить предыдущее упражнение в этом модуле.
Цикл сборки для чтения и проверки видов домашних животных
В этой задаче создается do цикл, который выполняет итерацию до тех пор, пока пользователь не введет допустимое имя вида , собака или кот. Вы повторно используете пустую строку readResult для записи входных Console.ReadLine() данных. Вы также повторно используете строковую переменную, используемую animalSpecies при создании примеров данных. Вы добавляете в приложение новую логическую переменную validEntry . Вы используете validEntry в выражении, которое используется в качестве критерия выхода для цикла do.
Убедитесь, что Visual Studio Code открыт и что файл Program.cs отображается в редакторе.
Найдите инструкцию
while (anotherPet == "y" && petCount < maxPets)и добавьте пустую строку кода в верхний блок кода.В созданной пустой строке кода для объявления
validEntryс начальным значениемfalseвведите следующий код:bool validEntry = false;Под объявлением
validEntry, чтобы создать циклdoдля ввода данных о видах, добавьте следующий код:// get species (cat or dog) - string animalSpecies is a required field do { } while (validEntry == false);В блоке кода оператора
doдля создания запроса на отображение и считывания входных данных пользователя введите следующий код:Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry"); readResult = Console.ReadLine();Чтобы убедиться, что значение
readResultНЕ равно NULL перед назначением значенияreadResultкanimalSpecies, введите следующий код:if (readResult != null) { animalSpecies = readResult.ToLower(); }В строке ниже
animalSpeciesназначения значения, чтобы убедиться, чтоanimalSpeciesсодержит допустимое имя вида, введите следующий код:if (animalSpecies != "dog" && animalSpecies != "cat") { validEntry = false; } else { validEntry = true; }Сравните полный цикл ввода данных имени вида со следующим кодом:
// 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);В меню Файл в Visual Studio Code выберите Сохранить.
Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.
Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.
Создание значения идентификатора животного
В этой задаче вы используете animalSpecies и petCount переменные для создания значения, которое вы назначаете animalID.
Добавьте пустую строку кода под блоком вашего цикла ввода данных с именами видов.
Чтобы создать значение
animalIDи назначить его, введите следующий код:// 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();В меню Файл в Visual Studio Code выберите Сохранить.
Построить цикл для чтения и проверки возраста питомца
В этой задаче создается do цикл, который будет выполняться до тех пор, пока пользователь не введет либо ?, либо допустимое целое число, представляющее возраст питомца в годах. Вы повторно используете пустотуемую строку readResult для записи входных Console.ReadLine() данных. Вы также повторно используете строковую переменную, используемую animalAge при создании примеров данных. Чтобы проверить, представляет ли animalAge строка допустимое целое число, используйте validEntry логическое значение. Вы объявляете новую целочисленную переменную с именем petAge для хранения числового значения. Еще раз validEntry логическое значение используется в выражении, которое оценивается как критерий выхода для нашего do цикла.
Добавьте пустую строку кода под строкой, используемой для назначения значения переменной
animalID.Чтобы создать
doцикл для записи данных возраста, введите следующий код:// get the pet's age. can be ? at initial entry. do { } while (validEntry == false);В блоке кода инструкции для объявления целочисленной переменной
doс именемpetAgeвведите следующий код:int petAge;В строке ниже объявления
petAge, чтобы отобразить запрос сообщения и прочитать входные данные пользователя, введите следующий код:Console.WriteLine("Enter the pet's age or enter ? if unknown"); readResult = Console.ReadLine();Чтобы убедиться, что значение
readResultне равно null перед назначением значенияreadResultкanimalAge, введите следующий код:if (readResult != null) { animalAge = readResult; }Ниже строки с назначением значения
animalAge, введите следующий код, чтобы проверить, ввел ли пользователь?перед тестированием на допустимость целого числа.if (animalAge != "?") { validEntry = int.TryParse(animalAge, out petAge); } else { validEntry = true; }Сравните ваш завершенный цикл ввода данных о возрасте со следующим кодом:
// 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);В меню Файл в Visual Studio Code выберите Сохранить.
Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.
Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.
Создайте цикл для чтения и проверки физического описания питомца
В этой задаче создается do цикл, который выполняет итерацию, пока пользователь не введет строковое значение, представляющее описание внешности питомца. Вы повторно используете пустотуемую строку readResult для записи входных Console.ReadLine() данных. Вы также повторно используете строковую переменную, используемую animalPhysicalDescription при создании примеров данных. Вы используете значение, присвоенное animalPhysicalDescription, в выражении, которое рассматривается как условие завершения для цикла do.
Добавьте пустую строку кода ниже блока кода вашего цикла ввода данных возраста.
Чтобы создать цикл для записи данных физического
doописания, введите следующий код:// get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank. do { } while (animalPhysicalDescription == "");В блоке кода оператора
doдля создания запроса на отображение и считывания входных данных пользователя введите следующий код:Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)"); readResult = Console.ReadLine();Чтобы убедиться, что значение
readResultне равно null перед назначением значенияreadResultкanimalPhysicalDescription, введите следующий код:if (readResult != null) { animalPhysicalDescription = readResult.ToLower(); }Чтобы присвоить значение
"tbd"переменнойanimalPhysicalDescription, когда введено значение"", введите следующий код:if (animalPhysicalDescription == "") { animalPhysicalDescription = "tbd"; }Сравните полный цикл ввода данных физического описания со следующим кодом:
// 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 == "");В меню Файл в Visual Studio Code выберите Сохранить.
Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.
Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.
Постройте цикл для чтения и проверки описания личности питомца
В этой задаче создается do цикл, который повторяется, пока пользователь не введет строковое значение, представляющее описание характера домашнего питомца. Вы повторно используете пустотуемую строку readResult для записи входных Console.ReadLine() данных. Вы также повторно используете строковую переменную, используемую animalPersonalityDescription при создании примеров данных. Вы используете значение, присвоенное animalPersonalityDescription, в выражении, которое рассматривается как условие завершения для цикла do.
Добавьте пустую строку кода под блоком кода цикла ввода данных физического описания.
Чтобы создать
doцикл для записи данных описания личности, введите следующий код:// get a description of the pet's personality - animalPersonalityDescription can be blank. do { } while (animalPersonalityDescription == "");В блоке кода оператора
doдля создания запроса на отображение и считывания входных данных пользователя введите следующий код:Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)"); readResult = Console.ReadLine();Чтобы убедиться, что значение
readResultне равно null перед назначением значенияreadResultкanimalPersonalityDescription, введите следующий код:if (readResult != null) { animalPersonalityDescription = readResult.ToLower(); }Чтобы присвоить значение
"tbd"переменнойanimalPersonalityDescription, когда введено значение"", введите следующий код:if (animalPersonalityDescription == "") { animalPersonalityDescription = "tbd"; }Сравните полный цикл записи данных описания личности со следующим кодом:
// 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 == "");В меню Файл в Visual Studio Code выберите Сохранить.
Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.
Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.
Построить цикл для чтения и проверки клички животного
В этой задаче создается do цикл, который повторяется, пока пользователь не введет строковое значение, представляющее кличку для питомца. Вы повторно используете пустотуемую строку readResult для записи входных Console.ReadLine() данных. Вы также повторно используете строковую переменную, используемую animalNickname при создании примеров данных. Вы используете значение, присвоенное animalNickname, в выражении, которое рассматривается как условие завершения для цикла do.
Добавьте пустую строку кода ниже блока кода вашего цикла ввода данных описания личности.
Чтобы создать
doцикл для записи данных описания личности, введите следующий код:// get the pet's nickname. animalNickname can be blank. do { } while (animalNickname == "");В блоке кода оператора
doдля создания запроса на отображение и считывания входных данных пользователя введите следующий код:Console.WriteLine("Enter a nickname for the pet"); readResult = Console.ReadLine();Чтобы убедиться, что значение
readResultне равно null перед назначением значенияreadResultкanimalNickname, введите следующий код:if (readResult != null) { animalNickname = readResult.ToLower(); }Чтобы присвоить значение
"tbd"переменнойanimalNickname, когда введено значение"", введите следующий код:if (animalNickname == "") { animalNickname = "tbd"; }Сравните полный цикл ввода данных псевдонима со следующим кодом:
// 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 == "");В меню Файл в Visual Studio Code выберите Сохранить.
Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.
Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.
Сохранение новых сведений о домашних животных
В этой задаче вы сохраняете значения, введенные для характеристик домашних животных в ourAnimals массиве.
Добавьте пустую строку кода под блоком кода цикла ввода данных псевдонима.
Чтобы сохранить значения данных, указанные пользователем, введите следующий код:
// 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;В меню Файл в Visual Studio Code выберите Сохранить.
Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.
Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.
Проверь свою работу
В этой задаче вы запустите приложение из встроенного терминала и убедитесь, что запись данных домашних животных работает правильно.
При необходимости откройте панель интегрированного терминала Visual Studio Code.
В командной строке терминала введите dotnet run
В командной строке терминала введите 2
Убедитесь, что панель терминала обновлена, чтобы отобразить следующие выходные данные:
We currently have 4 pets that need homes. We can manage 4 more. Enter 'dog' or 'cat' to begin a new entryВведите следующие значения в командной строке терминала и убедитесь, что отображается каждая следующая строка:
- На
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. - В командной строке
Enter a description of the pet's personality (likes or dislikes, tricks, energy level)нажмите клавишу Enter. - В командной строке
Enter a nickname for the petнажмите клавишу Enter.
Панель терминала должна быть обновлена следующим образом:
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)- На
В командной строке терминала введите n
Убедитесь, что панель терминала обновлена, чтобы отобразить параметры главного меню.
В командной строке терминала введите 1
Убедитесь, что панель терминала обновлена, чтобы отобразить следующие выходные данные:
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Если только что добавленные сведения о домашних животных не отображаются, убедитесь, что вы включили строки кода для сохранения данных в массив ourAnimals и строку кода для создания petID.
Убедитесь, что вы можете создать дополнительные описания животных для собак и кошек и что характеристики животных сохраняются в массиве
ourAnimals.Закройте приложение и закройте панель терминала.
Поздравляем с завершением этого руководимого проекта! Вы создали приложение, которое объединяет инструкции выбора и итерации для достижения целей разработки приложения. Приложение включает более 300 строк и выполняет задачи, которые можно найти в профессиональном приложении. Завершение этого проекта представляет собой значительное достижение. Продолжайте отличную работу!