Cvičení – formátování výstupu pomocí řídicích znakových sekvencí
V tomto cvičení upravíte výstup konzoly z předchozího cvičení, abyste dosáhli formátu generování sestav určeného učitelem.
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 přidáte řádek záhlaví, který obsahuje popisky sloupců určené učitelem. Potom pomocí řídicích sekvencí znaků přidáte mezi sloupce informací další odsazení.
V editoru .NET vyhledejte příkazy Console.WriteLine(), které se používají k zobrazení aktuálního skóre a známky dopisu každého studenta.
Vytvořte prázdný řádek kódu nad
Console.WriteLine()
příkazy.Na prázdném řádku kódu, který jste vytvořili, přidejte záhlaví pro známky studentů, zadejte následující kód:
Console.WriteLine("Student Grade\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í známky studenta.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("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");
\t
Řídicí sekvence vloží mezi textové položky zarážku tabulátoru. Přidání zarážek tabulátoru by mělo vést ke sloupcům informací zarovnaným doleva.Pokud chcete zobrazit výsledky aktualizací, vyberte Spustit.
Porovnejte výstup aplikace s následujícím výstupem:
Student Grade Sophia: 94.6 A Nicolas: 83.6 B Zahirah: 83.4 B Jeong: 95.4 A
Všimněte si, že i když místo znaku mezery používáte tabulátor, některé řádky stále nemají mezi jménem studenta a jejich číselným skóre moc prázdných znaků.
Tento rozdíl je způsoben způsobem, jakým se používají mezery mezi kartami. Umístění zarážky tabulátoru jsou nastavená v čtyřznakových intervalech a každá karta přejde na další umístění zarážky tabulátoru. Pokud máte řetězec pěti znaků následovaný řídicí sekvencí tabulátoru, řídicí sekvence přejde na zarážku tabulátoru v místě osmi znaků a vyplní mezeru znaky mezery pro vytvoření prázdných znaků ve výstupu. Pokud však máte řetězec sedmi znaků následovaný řídicí sekvencí tabulátoru, můžete přejít na stejné místo. Díky tomu jsou řídicí sekvence tabulátoru výraznější, když se nacházejí dál od dalšího umístění zarážky tabulátoru.
Pokud chcete, aby se prázdné znaky mezi prvními dvěma sloupci zvýrazní, přidejte další
\t
za dvě kratší jména studentů následujícím způsobem: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");
Kontrola práce
V této úloze spustíte kód a ověříte správnost výstupu.
Porovnejte kód s následujícím kódem:
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");
Pokud chcete kód spustit a zobrazit formátovaný výstup, vyberte Spustit.
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 Grade Sophia: 94.6 A Nicolas: 83.6 B Zahirah: 83.4 B Jeong: 95.4 A
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.