Übung: Formatieren der Ausgabe mithilfe von Escapezeichensequenzen

Abgeschlossen

In dieser Übung ändern Sie die Konsolenausgabe aus der vorherigen Übung, um das angegebene Berichtsformat zu erhalten.

Formatieren der Konsolenausgabe

In dieser Aufgabe ändern Sie Ihren Code, um der gemeldeten Ausgabe den letzten Feinschliff zu verpassen. Zunächst fügen Sie eine Kopfzeile hinzu, die die angegebenen Spaltenbezeichnungen enthält. Danach verwenden Sie Escapesequenzen für Zeichen, um zusätzliche Abstände zwischen den Informationsspalten hinzuzufügen.

  1. Suchen Sie im .NET-Editor nach den Console.WriteLine()-Anweisungen, die zum Anzeigen der aktuellen Bewertung und der Buchstabennote der einzelnen Lernenden verwendet werden.

  2. Fügen Sie über den Console.WriteLine()-Anweisungen eine leere Codezeile ein.

  3. Geben Sie in der von Ihnen erstellten leeren Codezeile den folgenden Code ein, um einen Header für Kursnoten hinzuzufügen:

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

    Achten Sie darauf, dass Sie am Ende des Texts \n einfügen. Im Modul „Ausführen grundlegender Zeichenfolgenformatierung mit C#“ haben Sie gelernt, dass die \n-Escapezeichensequenz zur Erstellung einer neuen Zeile führt. Die Position der Escapesequenz ist wichtig. In diesem Fall befindet sich \n am Ende der Informationen, die Sie in die Konsole schreiben möchten, sodass die neue Zeile nach der Anzeige von „Student Grade“ hinzugefügt wird.

  4. Zum Formatieren der Ausgabe als ausgerichtete Textspalten ersetzen Sie die Leerzeichen zwischen Wörtern durch die \t-Escapesequenz wie folgt:

    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");
    

    Die \t-Escapesequenz fügt einen Tabstopp zwischen den Textelementen ein. Das Hinzufügen der Tabstopps sollte dazu führen, dass die Informationsspalten linksbündigen ausgerichtet sind.

  5. Um die Ergebnisse der Änderungen anzuzeigen, wählen Sie Ausführen aus.

  6. Vergleichen Sie die Ausgabe Ihrer Anwendung mit der folgenden Ausgabe:

    Student	Grade
    
    Sophia: 94.6    A
    Nicolas:    83.6    B
    Zahirah:    83.4    B
    Jeong:  95.4    A
    
  7. Beachten Sie, dass einige Zeilen trotz der Verwendung eines Tabs anstelle eines Leerzeichens immer noch nicht viel Leerraum zwischen den Namen der Lernenden und der numerischen Punktzahl aufweisen.

    Dieser Unterschied ist auf die Art zurückzuführen, wie Tableerzeichen angewendet werden. Tabstopppositionen werden in Intervallen mit vier Zeichen festgelegt, und bei jedem Tab springt die Position zur nächsten Tabstoppposition. Wenn Sie über eine Zeichenfolge mit fünf Zeichen gefolgt von einer Tab-Escapesequenz verfügen, springt die Escapesequenz zum Tabstopp an der Position des achten Zeichens und füllt die Lücke mit Leerzeichen, um Leerraum in der Ausgabe zu erstellen. Sie können jedoch zur gleichen Position springen, wenn Sie über eine Zeichenfolge mit sieben Zeichen gefolgt von einer Tab-Escapesequenz verfügen. Dadurch sind Tab-Escapesequenzen einfacher zu erkennen, wenn sie weiter von der nächsten Tabstoppposition entfernt auftreten.

  8. Um den Leerraum zwischen den ersten beiden Spalten deutlicher zu machen, fügen Sie nach den beiden kürzeren Namen der Lernenden wie folgt ein weiteres \t-Element hinzu:

    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");
    

Überprüfen Ihrer Arbeit

In dieser Aufgabe führen Sie den Code aus und überprüfen, ob die Ausgabe korrekt ist.

  1. Vergleichen Sie Ihren Code mit dem folgenden Code:

    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. Wählen Sie Ausführen aus, um den Code auszuführen und die formatierte Ausgabe anzuzeigen.

  3. Um zu überprüfen, ob Ihr Code wie erwartet funktioniert, vergleichen Sie die Ausgabe Ihrer Anwendung mit der folgenden Ausgabe:

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

    Wenn Ihr Code unterschiedliche Ergebnisse anzeigt, müssen Sie ihn überprüfen, um den Fehler zu finden und Aktualisierungen vorzunehmen. Führen Sie den Code erneut aus, um festzustellen, ob Sie das Problem behoben haben. Fahren Sie mit dem Aktualisieren und Ausführen Ihres Codes fort, bis der Code die erwarteten Ergebnisse generiert.