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

Завершено

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

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

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

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

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

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

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

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

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

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

  5. Чтобы просмотреть результаты обновлений, нажмите кнопку "Выполнить".

  6. Сравните выходные данные приложения со следующими выходными данными:

    Student	Grade
    
    Sophia: 94.6    A
    Nicolas:    83.6    B
    Zahirah:    83.4    B
    Jeong:  95.4    A
    
  7. Обратите внимание, что, несмотря на использование вкладки вместо пробела, некоторые строки по-прежнему не имеют много пробелов между именем учащегося и их числовым показателем.

    Это различие связано с тем, как применяется интервал табуляции. Расположения стоп-стоп табуляции задаются в четырехзначных интервалах, и каждая вкладка будет переходить к следующему расположению остановки табуляции. Если у вас есть строка из пяти символов, за которой следует escape-последовательность табуляции, escape-последовательность будет переходить к точке табуляции в восьмизначном расположении, заполняя пробел пробелами, чтобы создать пробелы в выходных данных. Однако вы можете перейти к тому же расположению, если у вас есть строка из семи символов, за которой следует escape-последовательность вкладок. Это делает escape-последовательности вкладок более заметными, когда они происходят дальше от следующего расположения табуляции.

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

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

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

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

  1. Сравните код со следующими параметрами:

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

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

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

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