Ćwiczenie — formatowanie danych wyjściowych przy użyciu sekwencji znaków ucieczki
W tym ćwiczeniu zmodyfikujesz dane wyjściowe konsoli z poprzedniego ćwiczenia, aby osiągnąć określony format raportowania.
Formatowanie danych wyjściowych konsoli
W tym zadaniu zaktualizujesz kod, aby zastosować ostatnie poprawki do zgłoszonego wyniku. Zaczniesz od dodania nazwy ucznia i dodania wiersza nagłówka zawierającego etykiety kolumn. Następnie użyjesz sekwencji znaków ucieczki, aby dodać dodatkowe odstępy między kolumnami informacji.
W edytorze .NET znajdź instrukcje Console.WriteLine(), które są używane do wyświetlania informacji o kursie ucznia.
Utwórz pusty wiersz kodu powyżej instrukcji Console.WriteLine().
W pustym wierszu kodu, który został utworzony, aby dodać nazwę ucznia, wprowadź następujący kod:
Console.WriteLine($"Student: {studentName}\n");
Zwróć uwagę, że dołączasz
\n
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 komunikatu "Nazwa ucznia".Utwórz pusty wiersz kodu po poprzedniej instrukcji Console.WriteLine().
W pustym wierszu kodu, który został utworzony, aby dodać nagłówek informacji o kursie, wprowadź następujący kod:
Console.WriteLine("Course\t\t\t\tGrade\tCredit Hours");
Zwróć uwagę, że dodajesz cztery zakładki po nazwie kursu. Dodatkowe tabulatory umożliwią więcej miejsca dla dłuższych nazw kursów.
Aby sformatować dane wyjściowe jako wyrównane kolumny tekstu, zastąp spacje między wyrazami sekwencją ucieczki
\t
w następujący sposób: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}");
Sekwencja
\t
ucieczki wstawi tabulator między elementami tekstowymi. Ta karta powinna spowodować wyrównanie do lewej kolumn informacji.Zwróć uwagę, że zmniejszasz liczbę zakładek dla
course4Name
icourse5Name
. Ta różnica polega na tym, że nazwy tych kursów są dłuższe niż pozostałe. W poprzednim kroku dodano dodatkowe karty po kolumnie nazwy kursu, aby zachować spójność odstępów zarówno dla długich, jak i krótkich nazw kursów.Aby dodać wypełnienie do końcowego wyniku GPA, zaktualizuj kod w następujący sposób:
Console.WriteLine($"\nFinal GPA:\t\t\t {leadingDigit}.{firstDigit}{secondDigit}");
Sprawdź swoją pracę
W tym zadaniu uruchomisz kod i sprawdzisz, czy dane wyjściowe są poprawne.
Sprawdź, czy kod jest podobny do następującego:
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}");
Aby uruchomić kod i wyświetlić sformatowane dane wyjściowe, wybierz pozycję Uruchom.
Aby sprawdzić, czy kod działa zgodnie z oczekiwaniami, porównaj dane wyjściowe aplikacji z następującymi danymi wyjściowymi:
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
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.