Cvičení – kontrola počátečního kódu

Dokončeno

V tomto prvním kroku procesu vývoje zkontrolujete kód uvedený ve složce počátečního projektu.

Kontrola obsahu souboru Program.cs

Soubor Program.cs obsahuje předběžnou verzi aplikace, na které pracujete. Kód obsahuje funkce pro vygenerování a zobrazení ukázkových dat pro aplikaci a zobrazí seznam možností nabídky, které definují hlavní funkce aplikace.

  1. Ujistěte se, že máte v editoru Visual Studio Code otevřenou složku "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main).

    Jednotka "Prepare" (předchozí lekce v tomto modulu) obsahuje část Nastavení, která popisuje proces stažení počátečního bodu pro řízený projekt a otevření složky Visual Studio Code. V případě potřeby se vraťte a postupujte podle pokynů k nastavení.

  2. V zobrazení Průzkumník rozbalte složku Starter a pak vyberte Program.cs.

    Když vyberete soubor Program.cs, obsah souboru se otevře v hlavní oblasti Editoru napravo od PRŮZKUMNÍKa.

    Pokud zobrazení PRŮZKUMNÍKa není otevřené, můžete vybrat nebo otevřít zobrazení PRŮZKUMNÍKa z panelu aktivit na úplně levé straně editoru Visual Studio Code. Explorer je ikona úplně nahoře na panelu aktivit.

  3. Projděte si počáteční deklarace proměnných v horní části souboru Program.cs.

    // #1 the ourAnimals array will store the following: 
    string animalSpecies = "";
    string animalID = "";
    string animalAge = "";
    string animalPhysicalDescription = "";
    string animalPersonalityDescription = "";
    string animalNickname = "";
    
    // #2 variables that support data entry
    int maxPets = 8;
    string? readResult;
    string menuSelection = "";
    
    // #3 array used to store runtime data, there is no persisted data
    string[,] ourAnimals = new string[maxPets, 6];
    

    Nejprve uvidíte komentář (komentář č. 1) následovaný seznamem proměnných. Tyto proměnné, animalSpecies až do animalNickname, použité k uložení hodnot charakteristik domácího mazlíčka uvnitř multidimenzionálního řetězcového pole s názvem ourAnimals, a které bylo inicializováno tak, aby obsahovalo řetězec "" nulové délky. Deklarace pole ourAnimals je v kódu o něco dál.

    Další skupina proměnných (v komentáři č. 2) je kombinace string proměnných int , které pomáhají generovat ukázková data, číst uživatelský vstup a stanovit kritéria ukončení hlavní smyčky programu. Všimněte si řádku string? readResult; kódu. Pomocí znaku ? můžete transformovat normálně nenulový typ proměnné (int, string, bool,...) s podporou typu s možnou hodnotou null.

    Poznámka:

    Při čtení hodnot zadaných uživatelem pomocí Console.ReadLine() metody je nejlepší povolit řetězec typu null, který používá string? , aby kompilátor kódu při sestavování projektu nevygeneroval upozornění.

    Konečná proměnná (v komentáři č. 3) je dvojrozměrná řetězcová matice s názvem ourAnimals. Inicializovali jste počet řádků definovaných maxPets na 8. Počet charakteristik, které ukládáte původně, je šest. Šest charakteristik odpovídá počtu řetězcových proměnných, které jste prozkoumali v vzorovém kódu, ale počet charakteristik je potřeba rozšířit a přidat pole pro suggestedDonation.

  4. Posuňte se dolů v souboru Program.cs a prozkoumejte smyčku for, která obsahuje výběrovou konstrukci v rámci bloku kódu.

    Ukázka kódu je zkrácená verze pro úsporu místa.

    // #4 create sample data ourAnimals array entries
    for (int i = 0; i < maxPets; i++)
    {
        switch (i)
        {
            case 0:
                animalSpecies = "dog";
                animalID = "d1";
                animalAge = "2";
                animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 45 pounds. housebroken.";
                animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.";
                animalNickname = "lola";
                break;
    
            case 1:
                animalSpecies = "dog";
                animalID = "d2";
                animalAge = "9";
                animalPhysicalDescription = "large reddish-brown male golden retriever weighing about 85 pounds. housebroken.";
                animalPersonalityDescription = "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.";
                animalNickname = "gus";
                break;
    
            // case 2: deleted for brevity
            // case 3: deleted for brevity
    
            default:
                animalSpecies = "";
                animalID = "";
                animalAge = "";
                animalPhysicalDescription = "";
                animalPersonalityDescription = "";
                animalNickname = "";
                break;
        }
        ourAnimals[i, 0] = "ID #: " + animalID;
        ourAnimals[i, 1] = "Species: " + animalSpecies;
        ourAnimals[i, 2] = "Age: " + animalAge;
        ourAnimals[i, 3] = "Nickname: " + animalNickname;
        ourAnimals[i, 4] = "Physical description: " + animalPhysicalDescription;
        ourAnimals[i, 5] = "Personality: " + animalPersonalityDescription;
    }
    
  5. Všimněte si, že smyčka for používá proměnnou maxPets k určení horní hranice počtu iterací uvedené v komentáři č. 4.

  6. Všimněte si také, že switch konstrukce selektivně rozdělí kód, aby bylo možné definovat různé charakteristiky zvířat pro vzorová data.

    Pomocí switch příkazu definujete různé hodnoty pro první čtyři iterace smyčky for. Po zpracování ukázkových dat jsou všechny vlastnosti prázdné nebo řetězec nulové délky.

    Hodnoty proměnných charakteristik zvířat jsou přiřazeny k poli ourAnimals na konci smyčky for.

  7. Posuňte se do dolní části souboru kódu v editoru Visual Studio Code. Prozkoumejte kód použitý k zobrazení možností nabídky a zaznamenejte vstup výběru uživatele.

    Měli byste sledovat následující kód:

    // #5 display the top-level menu options
    do
    {
        // NOTE: the Console.Clear method is throwing an exception in debug sessions
        Console.Clear();
    
        Console.WriteLine("Welcome to the Contoso PetFriends app. Your main menu options are:");
        Console.WriteLine(" 1. List all of our current pet information");
        Console.WriteLine(" 2. Display all dogs with a specified characteristic");
        Console.WriteLine();
        Console.WriteLine("Enter your selection number (or type Exit to exit the program)");
    
        readResult = Console.ReadLine();
        if (readResult != null)
        {
            menuSelection = readResult.ToLower();
        }
    
        // use switch-case to process the selected menu option
        switch (menuSelection)
        {
            case "1":
                // list all pet info
                for (int i = 0; i < maxPets; i++)
                {
                    if (ourAnimals[i, 0] != "ID #: ")
                    {
                        Console.WriteLine();
                        for (int j = 0; j < 6; j++)
                        {
                            Console.WriteLine(ourAnimals[i, j]);
                        }
                    }
                }
                Console.WriteLine("\n\rPress the Enter key to continue");
                readResult = Console.ReadLine();
                break;
    
            case "2":
                // Display all dogs with a specified characteristic");
                Console.WriteLine("\nUNDER CONSTRUCTION - please check back next month to see progress.");
                Console.WriteLine("Press the Enter key to continue.");
                readResult = Console.ReadLine();
                break;
    
            default:
                break;
        }
    
    } while (menuSelection != "exit");
    
  8. Věnujte chvilku prohlédnutí těchto dvou case příkazů.

    Existují pouze dvě možnosti nabídky, které fungují s omezenou verzí aplikace. Úvodní aplikace poskytuje pouze kapacity potřebné k provozování a testování prototypu funkcí.

  9. Všimněte si, že za řádkem kódu readResult = Console.ReadLine(); následuje kontrola hodnoty null.

    Kód, který používá metodu Console.ReadLine(), má hodnotu nastavenu na nullable řetězec readResult, aby se zabránilo tomu, že kompilátor kódu vygeneruje upozornění při sestavování projektu.

Zkontroluj svou práci

  1. Otestujte startovací konzolovou aplikaci. Na příkazovém řádku v terminálu sestavte a spusťte kód projektu jedním příkazem tak, že zadáte: dotnet run.

    Poznámka:

    V úvodní složce musí být otevřen příkaz TERMINAL a terminál by měl vypadat nějak takto: ..\ArrayGuidedProject\starter>

    Po spuštění kódu se zobrazí dvě položky nabídky.

    • Enter: , 1pro otestování výstupu "Výpis všech aktuálních informací o domácích zvířatech"
    • Zadejte: 2, pro otestování zprávy zástupce "pod konstrukcí".
  2. Enter: 1a potom stisknutím klávesy Enter zobrazte všechny domácí zvířata.

  3. Zkontrolujte, že se zobrazí všechny informace o zvířatech.

    Při sledování dat všech domácích zvířat by poslední zobrazený domácí mazlíček měl odpovídat následujícímu výstupu:

    ID #: c4
    Species: cat
    Age: 3
    Nickname: Lion
    Physical description: Medium sized, long hair, yellow, female, about 10 pounds. Uses litter box.
    Personality: A people loving cat that likes to sit on your lap.
    
    Press the Enter key to continue
    
  4. Pokračujte stisknutím klávesy Enter a vraťte se do nabídky.

  5. V nabídce zadejte 2 a poté stiskněte klávesu Enter.

    Tato volba je zástupný znak pro funkci "Zobrazit všechny psy se zadanou charakteristikou".

  6. Zkontrolujte, že se UNDER CONSTRUCTION zobrazí zpráva pro Display all dogs with a specified characteristic výběr.

    Měli byste sledovat následující výstup:

    UNDER CONSTRUCTION - please check back next month to see progress.
    Press the Enter key to continue.
    
  7. Napište exit, v nabídce aplikace ukončete program a pak zavřete panel terminálu.

    Program by měl ukončit.

Teď jste připraveni začít vyvíjet nové funkce.