Упражнение. Написание кода для чтения и сохранения новых данных массиваAnimals

Завершено

В этом упражнении вы разрабатываете циклы проверки ввода данных для каждой характеристики домашних животных, а затем храните новые ourAnimals данные массива. Ниже приведены подробные задачи, которые выполняются во время этого упражнения:

  1. Чтение и проверка видов: создание цикла и внутренней структуры кода, используемой для ввода и проверки видов домашних животных.
  2. Создайте идентификатор питомца: напишите код, использующий petCount и имя вида для создания значения petID.
  3. Чтение и проверка возраста: создание цикла и внутренней структуры кода, используемой для ввода и проверки возраста животного.
  4. Чтение и проверка физического описания: создание цикла и внутренней структуры кода, используемой для ввода физического описания животного.
  5. Чтение и проверка описания личности: создание цикла и внутренней структуры кода, используемой для ввода описания личности питомца.
  6. Чтение и проверка псевдонима: создание цикла и внутренней структуры кода, используемой для ввода псевдонима для питомца.
  7. Тест проверки: выполните тесты проверки для кода, который вы разрабатываете в этом упражнении.

Это важно

Перед началом этого упражнения необходимо выполнить предыдущее упражнение в этом модуле.

Цикл сборки для чтения и проверки видов домашних животных

В этой задаче создается do цикл, который выполняет итерацию до тех пор, пока пользователь не введет допустимое имя вида , собака или кот. Вы повторно используете пустую строку readResult для записи входных Console.ReadLine() данных. Вы также повторно используете строковую переменную, используемую animalSpecies при создании примеров данных. Вы добавляете в приложение новую логическую переменную validEntry . Вы используете validEntry в выражении, которое используется в качестве критерия выхода для цикла do.

  1. Убедитесь, что Visual Studio Code открыт и что файл Program.cs отображается в редакторе.

  2. Найдите инструкцию while (anotherPet == "y" && petCount < maxPets) и добавьте пустую строку кода в верхний блок кода.

  3. В созданной пустой строке кода для объявления validEntry с начальным значением false введите следующий код:

    bool validEntry = false;
    
    
  4. Под объявлением validEntry, чтобы создать цикл do для ввода данных о видах, добавьте следующий код:

    // get species (cat or dog) - string animalSpecies is a required field 
    do
    {
    } while (validEntry == false);
    
    
  5. В блоке кода оператора do для создания запроса на отображение и считывания входных данных пользователя введите следующий код:

    Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry");
    readResult = Console.ReadLine();
    
    
  6. Чтобы убедиться, что значение readResult НЕ равно NULL перед назначением значения readResult к animalSpecies, введите следующий код:

    if (readResult != null)
    {
        animalSpecies = readResult.ToLower();
    
    }
    
  7. В строке ниже animalSpecies назначения значения, чтобы убедиться, что animalSpecies содержит допустимое имя вида, введите следующий код:

    if (animalSpecies != "dog" && animalSpecies != "cat")
    {
        validEntry = false;
    }
    else
    {
        validEntry = true;
    }
    
  8. Сравните полный цикл ввода данных имени вида со следующим кодом:

    // 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. В меню Файл в Visual Studio Code выберите Сохранить.

  10. Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.

    Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.

Создание значения идентификатора животного

В этой задаче вы используете animalSpecies и petCount переменные для создания значения, которое вы назначаете animalID.

  1. Добавьте пустую строку кода под блоком вашего цикла ввода данных с именами видов.

  2. Чтобы создать значение 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();
    
    
  3. В меню Файл в Visual Studio Code выберите Сохранить.

Построить цикл для чтения и проверки возраста питомца

В этой задаче создается do цикл, который будет выполняться до тех пор, пока пользователь не введет либо ?, либо допустимое целое число, представляющее возраст питомца в годах. Вы повторно используете пустотуемую строку readResult для записи входных Console.ReadLine() данных. Вы также повторно используете строковую переменную, используемую animalAge при создании примеров данных. Чтобы проверить, представляет ли animalAge строка допустимое целое число, используйте validEntry логическое значение. Вы объявляете новую целочисленную переменную с именем petAge для хранения числового значения. Еще раз validEntry логическое значение используется в выражении, которое оценивается как критерий выхода для нашего do цикла.

  1. Добавьте пустую строку кода под строкой, используемой для назначения значения переменной animalID .

  2. Чтобы создать do цикл для записи данных возраста, введите следующий код:

    // get the pet's age. can be ? at initial entry. 
    do
    {
    } while (validEntry == false);
    
    
  3. В блоке кода инструкции для объявления целочисленной переменной do с именем petAgeвведите следующий код:

    int petAge;
    
    
  4. В строке ниже объявления petAge, чтобы отобразить запрос сообщения и прочитать входные данные пользователя, введите следующий код:

    Console.WriteLine("Enter the pet's age or enter ? if unknown");
    readResult = Console.ReadLine();
    
    
  5. Чтобы убедиться, что значение readResult не равно null перед назначением значения readResult к animalAge, введите следующий код:

    if (readResult != null)
    {
        animalAge = readResult;
    
    }
    
  6. Ниже строки с назначением значения animalAge, введите следующий код, чтобы проверить, ввел ли пользователь ? перед тестированием на допустимость целого числа.

    if (animalAge != "?")
    {
        validEntry = int.TryParse(animalAge, out petAge);
    }
    else
    {
        validEntry = true;
    }
    
  7. Сравните ваш завершенный цикл ввода данных о возрасте со следующим кодом:

    // 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. В меню Файл в Visual Studio Code выберите Сохранить.

  9. Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.

    Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.

Создайте цикл для чтения и проверки физического описания питомца

В этой задаче создается do цикл, который выполняет итерацию, пока пользователь не введет строковое значение, представляющее описание внешности питомца. Вы повторно используете пустотуемую строку readResult для записи входных Console.ReadLine() данных. Вы также повторно используете строковую переменную, используемую animalPhysicalDescription при создании примеров данных. Вы используете значение, присвоенное animalPhysicalDescription, в выражении, которое рассматривается как условие завершения для цикла do.

  1. Добавьте пустую строку кода ниже блока кода вашего цикла ввода данных возраста.

  2. Чтобы создать цикл для записи данных физического do описания, введите следующий код:

    // get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank.
    do
    {
    } while (animalPhysicalDescription == "");
    
    
  3. В блоке кода оператора do для создания запроса на отображение и считывания входных данных пользователя введите следующий код:

    Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)");
    readResult = Console.ReadLine();
    
    
  4. Чтобы убедиться, что значение readResult не равно null перед назначением значения readResult к animalPhysicalDescription, введите следующий код:

    if (readResult != null)
    {
        animalPhysicalDescription = readResult.ToLower();
    
    }
    
  5. Чтобы присвоить значение "tbd" переменной animalPhysicalDescription, когда введено значение "", введите следующий код:

    if (animalPhysicalDescription == "")
    {
        animalPhysicalDescription = "tbd";
    }
    
  6. Сравните полный цикл ввода данных физического описания со следующим кодом:

    // 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. В меню Файл в Visual Studio Code выберите Сохранить.

  8. Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.

    Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.

Постройте цикл для чтения и проверки описания личности питомца

В этой задаче создается do цикл, который повторяется, пока пользователь не введет строковое значение, представляющее описание характера домашнего питомца. Вы повторно используете пустотуемую строку readResult для записи входных Console.ReadLine() данных. Вы также повторно используете строковую переменную, используемую animalPersonalityDescription при создании примеров данных. Вы используете значение, присвоенное animalPersonalityDescription, в выражении, которое рассматривается как условие завершения для цикла do.

  1. Добавьте пустую строку кода под блоком кода цикла ввода данных физического описания.

  2. Чтобы создать do цикл для записи данных описания личности, введите следующий код:

    // get a description of the pet's personality - animalPersonalityDescription can be blank.
    do
    {
    } while (animalPersonalityDescription == "");
    
    
  3. В блоке кода оператора do для создания запроса на отображение и считывания входных данных пользователя введите следующий код:

    Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)");
    readResult = Console.ReadLine();
    
    
  4. Чтобы убедиться, что значение readResult не равно null перед назначением значения readResult к animalPersonalityDescription, введите следующий код:

    if (readResult != null)
    {
        animalPersonalityDescription = readResult.ToLower();
    
    }
    
  5. Чтобы присвоить значение "tbd" переменной animalPersonalityDescription, когда введено значение "", введите следующий код:

    if (animalPersonalityDescription == "")
    {
        animalPersonalityDescription = "tbd";
    }
    
  6. Сравните полный цикл записи данных описания личности со следующим кодом:

    // 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. В меню Файл в Visual Studio Code выберите Сохранить.

  8. Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.

    Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.

Построить цикл для чтения и проверки клички животного

В этой задаче создается do цикл, который повторяется, пока пользователь не введет строковое значение, представляющее кличку для питомца. Вы повторно используете пустотуемую строку readResult для записи входных Console.ReadLine() данных. Вы также повторно используете строковую переменную, используемую animalNickname при создании примеров данных. Вы используете значение, присвоенное animalNickname, в выражении, которое рассматривается как условие завершения для цикла do.

  1. Добавьте пустую строку кода ниже блока кода вашего цикла ввода данных описания личности.

  2. Чтобы создать do цикл для записи данных описания личности, введите следующий код:

    // get the pet's nickname. animalNickname can be blank.
    do
    {
    } while (animalNickname == "");
    
    
  3. В блоке кода оператора do для создания запроса на отображение и считывания входных данных пользователя введите следующий код:

    Console.WriteLine("Enter a nickname for the pet");
    readResult = Console.ReadLine();
    
    
  4. Чтобы убедиться, что значение readResult не равно null перед назначением значения readResult к animalNickname, введите следующий код:

    if (readResult != null)
    {
        animalNickname = readResult.ToLower();
    
    }
    
  5. Чтобы присвоить значение "tbd" переменной animalNickname, когда введено значение "", введите следующий код:

    if (animalNickname == "")
    {
        animalNickname = "tbd";
    }
    
  6. Сравните полный цикл ввода данных псевдонима со следующим кодом:

    // 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. В меню Файл в Visual Studio Code выберите Сохранить.

  8. Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.

    Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.

Сохранение новых сведений о домашних животных

В этой задаче вы сохраняете значения, введенные для характеристик домашних животных в ourAnimals массиве.

  1. Добавьте пустую строку кода под блоком кода цикла ввода данных псевдонима.

  2. Чтобы сохранить значения данных, указанные пользователем, введите следующий код:

    // 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. В меню Файл в Visual Studio Code выберите Сохранить.

  4. Откройте панель встроенного терминала в Visual Studio Code и введите команду для создания программы.

    Если сообщались об ошибках сборки или предупреждениях, исправьте проблемы перед продолжением.

Проверь свою работу

В этой задаче вы запустите приложение из встроенного терминала и убедитесь, что запись данных домашних животных работает правильно.

  1. При необходимости откройте панель интегрированного терминала Visual Studio Code.

  2. В командной строке терминала введите dotnet run

  3. В командной строке терминала введите 2

  4. Убедитесь, что панель терминала обновлена, чтобы отобразить следующие выходные данные:

    We currently have 4 pets that need homes. We can manage 4 more.
    
    Enter 'dog' or 'cat' to begin a new entry
    
  5. Введите следующие значения в командной строке терминала и убедитесь, что отображается каждая следующая строка:

    • На 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)
    
  6. В командной строке терминала введите n

  7. Убедитесь, что панель терминала обновлена, чтобы отобразить параметры главного меню.

  8. В командной строке терминала введите 1

  9. Убедитесь, что панель терминала обновлена, чтобы отобразить следующие выходные данные:

    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.

  10. Убедитесь, что вы можете создать дополнительные описания животных для собак и кошек и что характеристики животных сохраняются в массиве ourAnimals .

  11. Закройте приложение и закройте панель терминала.

Поздравляем с завершением этого руководимого проекта! Вы создали приложение, которое объединяет инструкции выбора и итерации для достижения целей разработки приложения. Приложение включает более 300 строк и выполняет задачи, которые можно найти в профессиональном приложении. Завершение этого проекта представляет собой значительное достижение. Продолжайте отличную работу!