Ćwiczenie — formatowanie danych wyjściowych przy użyciu sekwencji znaków ucieczki

Ukończone

W tym ćwiczeniu zmodyfikujesz dane wyjściowe konsoli z poprzedniego ćwiczenia, aby osiągnąć format raportowania określony przez nauczyciela.

Formatowanie danych wyjściowych konsoli

W tym zadaniu zaktualizujesz kod, aby zastosować akcenty końcowe do zgłoszonych danych wyjściowych. Zaczniesz od dodania wiersza nagłówka zawierającego etykiety kolumn określone przez nauczyciela. Następnie użyjesz sekwencji ucieczki znaków, aby dodać dodatkowe dopełnienie między kolumnami informacji.

  1. W edytorze .NET znajdź instrukcje Console.WriteLine(), które są używane do wyświetlania bieżącego wyniku klasy ucznia i klasy litery.

  2. Utwórz pusty wiersz kodu nad instrukcjami Console.WriteLine() .

  3. W pustym wierszu kodu, który został utworzony, aby dodać nagłówek dla ocen uczniów, wprowadź następujący kod:

    Console.WriteLine("Student Grade\n");
    

    Zwróć uwagę, że dołączasz \n tekst na końcu tekstu. W module "Wykonywanie podstawowego formatowania ciągów za pomocą języka C#" dowiedzieliśmy się, że \n sekwencja znaków ucieczki spowoduje utworzenie nowego wiersza. Lokalizacja sekwencji ucieczki jest ważna. W takim przypadku element \n znajduje się na końcu informacji, które chcesz zapisać w konsoli, więc nowy wiersz zostanie dodany po wyświetleniu "Ocena ucznia".

  4. Aby sformatować dane wyjściowe jako wyrównane kolumny tekstu, zastąp \t spacje między wyrazami sekwencją ucieczki w następujący sposób:

    Console.WriteLine("Student\tGrade\n");
    Console.WriteLine("Sophia:\t" + sophiaScore + "\tA");
    Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB");
    Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB");
    Console.WriteLine("Jeong:\t" + jeongScore + "\tA");
    

    Sekwencja \t ucieczki wstawi zatrzymanie karty między elementami tekstowym. Dodanie karty powinno spowodować wyrównanie do lewej kolumn informacji.

  5. Aby wyświetlić wyniki aktualizacji, wybierz pozycję Uruchom.

  6. Porównaj dane wyjściowe aplikacji z następującymi danymi wyjściowymi:

    Student	Grade
    
    Sophia: 94.6    A
    Nicolas:    83.6    B
    Zahirah:    83.4    B
    Jeong:  95.4    A
    
  7. Zwróć uwagę, że mimo używania karty zamiast znaku spacji niektóre wiersze nadal nie mają zbyt wiele odstępów między nazwą ucznia a wynikiem liczbowym.

    Ta różnica wynika ze sposobu stosowania odstępów między tabulatorami. Lokalizacje zatrzymania tabulatora są ustawiane w czterech odstępach znaków, a każda karta przejdzie do następnej lokalizacji zatrzymania karty. Jeśli masz ciąg pięciu znaków, po którym następuje sekwencja ucieczki tabulatora, sekwencja ucieczki przejdzie do zatrzymania karty w ośmioznacznym miejscu, wypełniając lukę znakami spacji w celu utworzenia białych znaków w danych wyjściowych. Możesz jednak przejść do tej samej lokalizacji, jeśli masz ciąg siedmiu znaków, po którym następuje sekwencja ucieczki karty. Dzięki temu sekwencje ucieczki tabulatorów są bardziej zauważalne, gdy wystąpią one dalej z następnej lokalizacji zatrzymania karty.

  8. Aby odstęp między dwoma pierwszymi kolumnami był bardziej zauważalny, dodaj kolejny \t po dwóch krótszych nazwach uczniów w następujący sposób:

    Console.WriteLine("Student\t\tGrade\n");
    Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA");
    Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB");
    Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB");
    Console.WriteLine("Jeong:\t\t" + jeongScore + "\tA");
    

Sprawdź swoją pracę

W tym zadaniu uruchomisz kod i sprawdzisz, czy dane wyjściowe są poprawne.

  1. Porównaj kod z następującymi elementami:

    int currentAssignments = 5;
    
    int sophia1 = 93;
    int sophia2 = 87;
    int sophia3 = 98;
    int sophia4 = 95;
    int sophia5 = 100;
    
    int nicolas1 = 80;
    int nicolas2 = 83;
    int nicolas3 = 82;
    int nicolas4 = 88;
    int nicolas5 = 85;
    
    int zahirah1 = 84;
    int zahirah2 = 96;
    int zahirah3 = 73;
    int zahirah4 = 85;
    int zahirah5 = 79;
    
    int jeong1 = 90;
    int jeong2 = 92;
    int jeong3 = 98;
    int jeong4 = 100;
    int jeong5 = 97;
    
    int sophiaSum = sophia1 + sophia2 + sophia3 + sophia4 + sophia5;
    int nicolasSum = nicolas1 + nicolas2 + nicolas3 + nicolas4 + nicolas5;
    int zahirahSum = zahirah1 + zahirah2 + zahirah3 + zahirah4 + zahirah5;
    int jeongSum = jeong1 + jeong2 + jeong3 + jeong4 + jeong5;
    
    decimal sophiaScore = (decimal) sophiaSum / currentAssignments;
    decimal nicolasScore = (decimal) nicolasSum / currentAssignments;
    decimal zahirahScore = (decimal) zahirahSum / currentAssignments;
    decimal jeongScore = (decimal) jeongSum / currentAssignments;
    
    Console.WriteLine("Student\t\tGrade\n");
    Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA");
    Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB");
    Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB");
    Console.WriteLine("Jeong:\t\t" + jeongScore + "\tA");
    
  2. Aby uruchomić kod i wyświetlić sformatowane dane wyjściowe, wybierz pozycję Uruchom.

  3. Aby sprawdzić, czy kod działa zgodnie z oczekiwaniami, porównaj dane wyjściowe aplikacji z następującymi danymi wyjściowymi:

    Student         Grade
    
    Sophia:         94.6    A
    Nicolas:        83.6    B
    Zahirah:        83.4    B
    Jeong:          95.4    A
    

    Jeśli kod wyświetla różne wyniki, musisz przejrzeć kod, aby znaleźć błąd i wprowadzić aktualizacje. Uruchom ponownie kod, aby sprawdzić, czy problem został rozwiązany. Kontynuuj aktualizowanie i uruchamianie kodu, dopóki kod nie generuje oczekiwanych wyników.