Cvičení – formátování výstupu pomocí řídicích znakových sekvencí

Dokončeno

V tomto cvičení upravíte výstup konzoly z předchozího cvičení, abyste dosáhli zadaného formátu generování sestav.

Formátování výstupu konzoly

V této úloze aktualizujete kód tak, aby se dokončovací dotyky použily na ohlášený výstup. Začnete tím, že zahrnete jméno studenta a přidáte řádek záhlaví, který obsahuje popisky sloupců. Potom pomocí řídicích sekvencí znaků přidáte mezi sloupce informací další odsazení.

  1. V editoru .NET vyhledejte příkazy Console.WriteLine(), které slouží k zobrazení informací o kurzu studenta.

  2. Vytvořte prázdný řádek kódu nad příkazy Console.WriteLine().

  3. Na prázdném řádku kódu, který jste vytvořili, přidejte jméno studenta a zadejte následující kód:

    Console.WriteLine($"Student: {studentName}\n");
    
    

    Všimněte si, že na konci textu zahrnete \n . V modulu "Provést základní formátování řetězců pomocí jazyka C#" jste se dozvěděli, že \n řídicí sekvence znaků způsobí vytvoření nového řádku. Umístění řídicí sekvence je důležité. V tomto případě je na konci informací, \n které chcete napsat do konzoly, takže nový řádek se přidá po zobrazení "Jméno studenta".

  4. Vytvořte prázdný řádek kódu za předchozím příkazem Console.WriteLine().

  5. Na prázdném řádku kódu, který jste vytvořili, přidejte záhlaví pro informace o kurzu, zadejte následující kód:

    Console.WriteLine("Course\t\t\t\tGrade\tCredit Hours");
    
    

    Všimněte si, že za názvem kurzu přidáváte čtyři karty. Nadbytečné zarážky tabulátoru umožní delší názvy kurzů navíc.

  6. Pokud chcete výstup naformátovat jako zarovnané sloupce textu, nahraďte mezery mezi slovy \t řídicí sekvencí následujícím způsobem:

    Console.WriteLine($"{course1Name}\t\t\t{course1Grade}\t\t{course1Credit}");
    Console.WriteLine($"{course2Name}\t\t\t{course2Grade}\t\t{course2Credit}");
    Console.WriteLine($"{course3Name}\t\t\t{course3Grade}\t\t{course3Credit}");
    Console.WriteLine($"{course4Name}\t{course4Grade}\t\t{course4Credit}");
    Console.WriteLine($"{course5Name}\t\t{course5Grade}\t\t{course5Credit}");
    
    

    \t Řídicí sekvence vloží mezi textové položky zarážku tabulátoru. Výsledkem těchto zarážek tabulátoru by měly být sloupce informací zarovnané doleva.

    Všimněte si, že snížíte počet karet pro course4Name a course5Name. Tento rozdíl spočívá v tom, že názvy kurzů jsou delší než ostatní. V předchozím kroku jste přidali za sloupec s názvem kurzu další karty, abyste zachovali konzistentní mezery pro dlouhé i krátké názvy kurzů.

  7. Pokud chcete přidat odsazení do konečného výstupu výsledku GPA, aktualizujte kód následujícím způsobem:

    Console.WriteLine($"\nFinal GPA:\t\t\t {leadingDigit}.{firstDigit}{secondDigit}");
    
    

Kontrola práce

V této úloze spustíte kód a ověříte správnost výstupu.

  1. Zkontrolujte, jestli je váš kód podobný následujícímu:

    string studentName = "Sophia Johnson";
    string course1Name = "English 101";
    string course2Name = "Algebra 101";
    string course3Name = "Biology 101";
    string course4Name = "Computer Science I";
    string course5Name = "Psychology 101";
    
    int course1Credit = 3;
    int course2Credit = 3;
    int course3Credit = 4;
    int course4Credit = 4;
    int course5Credit = 3;
    
    int gradeA = 4;
    int gradeB = 3;
    
    int course1Grade = gradeA;
    int course2Grade = gradeB;
    int course3Grade = gradeB;
    int course4Grade = gradeB;
    int course5Grade = gradeA;
    
    int totalCreditHours = 0;
    totalCreditHours += course1Credit;
    totalCreditHours += course2Credit;
    totalCreditHours += course3Credit;
    totalCreditHours += course4Credit;
    totalCreditHours += course5Credit;
    
    int totalGradePoints = 0;
    totalGradePoints += course1Credit * course1Grade;
    totalGradePoints += course2Credit * course2Grade;
    totalGradePoints += course3Credit * course3Grade;
    totalGradePoints += course4Credit * course4Grade;
    totalGradePoints += course5Credit * course5Grade;
    
    decimal gradePointAverage = (decimal) totalGradePoints/totalCreditHours;
    
    int leadingDigit = (int) gradePointAverage;
    int firstDigit = (int) (gradePointAverage * 10 ) % 10;
    int secondDigit = (int) (gradePointAverage * 100 ) % 10;
    
    Console.WriteLine($"Student: {studentName}\n");
    Console.WriteLine("Course\t\t\t\tGrade\tCredit Hours");
    
    Console.WriteLine($"{course1Name}\t\t\t{course1Grade}\t\t{course1Credit}");
    Console.WriteLine($"{course2Name}\t\t\t{course2Grade}\t\t{course2Credit}");
    Console.WriteLine($"{course3Name}\t\t\t{course3Grade}\t\t{course3Credit}");
    Console.WriteLine($"{course4Name}\t{course4Grade}\t\t{course4Credit}");
    Console.WriteLine($"{course5Name}\t\t{course5Grade}\t\t{course5Credit}");
    
    Console.WriteLine($"\nFinal GPA:\t\t\t {leadingDigit}.{firstDigit}{secondDigit}");
    
  2. Pokud chcete kód spustit a zobrazit formátovaný výstup, vyberte Spustit.

  3. Pokud chcete ověřit, že váš kód funguje podle očekávání, porovnejte výstup aplikace s následujícím výstupem:

    Student: Sophia Johnson
    
    Course              Grade   Credit Hours	
    English 101         4       3
    Algebra 101         3       3
    Biology 101         3       4
    Computer Science I  3       4
    Psychology 101      4       3
    
    Final GPA:          3.35
    

    Pokud váš kód zobrazuje různé výsledky, budete muset zkontrolovat kód, abyste našli chybu a aktualizovali ji. Spusťte kód znovu, abyste zjistili, jestli jste problém vyřešili. Pokračujte v aktualizaci a spouštění kódu, dokud váš kód nevygeneruje očekávané výsledky.