Упражнение. Форматирование выходных данных с помощью escape-последовательностей символов

Завершено

В этом упражнении вы измените выходные данные консоли из предыдущего упражнения, чтобы достичь указанного формата отчетов.

Форматирование выходных данных консоли

В этой задаче вы обновите код, чтобы применить завершающие касания к отчетным выходным данным. Сначала вы добавите имя учащегося и добавьте строку заголовка, содержащую метки столбцов. После этого вы будете использовать escape-последовательности символов, чтобы добавить дополнительное заполнение между столбцами информации.

  1. В редакторе .NET найдите инструкции Console.WriteLine(), которые используются для отображения сведений о курсе учащегося.

  2. Создайте пустую строку кода над операторами Console.WriteLine().

  3. Чтобы добавить имя учащегося, введите следующий код в пустой строке кода, созданной вами.

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

    Обратите внимание, что вы включаете \n в конец текста. В модуле "Выполнение базового форматирования строк с помощью C#" вы узнали, что \n последовательность escape-символов приведет к созданию новой строки. Важно расположение escape-последовательности. В этом случае в конце сведений, \n которые требуется записать в консоль, будет добавлена новая строка после отображения имени учащегося.

  4. Создайте пустую строку кода после предыдущей инструкции Console.WriteLine().

  5. В созданной пустой строке кода, чтобы добавить заголовок для сведений о курсе, введите следующий код:

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

    Обратите внимание, что вы добавляете четыре вкладки после имени курса. На дополнительных вкладках будет разрешено дополнительное пространство для более длинных имен курсов.

  6. Чтобы отформатировать выходные данные в виде выровненных столбцов текста, замените пробелы между словами \t escape-последовательностью следующим образом:

    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 Escape-последовательность вставляет остановку табуляции между текстовыми элементами. Эти остановки табуляции должны привести к выравниванию по левому краю столбцов сведений.

    Обратите внимание, что вы сокращаете количество вкладок и course4Namecourse5Name. Это различие связано с тем, что имена этих курсов длиннее, чем другие. На предыдущем шаге вы добавили дополнительные вкладки после столбца имени курса, чтобы обеспечить согласованность интервалов как для длинных, так и коротких имен курсов.

  7. Чтобы добавить заполнение в окончательный результат GPA, обновите код следующим образом:

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

Проверка работы

В этой задаче вы запустите код и убедитесь, что выходные данные верны.

  1. Убедитесь, что код аналогичен следующему:

    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. Чтобы запустить код и отобразить отформатированные выходные данные, нажмите кнопку "Выполнить".

  3. Чтобы убедиться, что код работает должным образом, сравните выходные данные приложения со следующими выходными данными:

    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
    

    Если код отображает различные результаты, необходимо просмотреть код, чтобы найти ошибку и внести обновления. Запустите код еще раз, чтобы узнать, устранена ли проблема. Продолжайте обновлять и запускать код, пока код не выдает ожидаемые результаты.