Exercício – Formatar a saída usando sequências de caracteres de escape

Concluído

Neste exercício, você modificará a saída do console do exercício anterior para obter o formato de relatório especificado.

Formatar a saída do console

Nesta tarefa, você atualizará seu código para aplicar os toques finais à saída relatada. Você começará incluindo o nome do aluno e adicionando uma linha de cabeçalho que inclui os rótulos de coluna. Depois disso, você usará sequências de escape de caracteres para adicionar preenchimento extra entre as colunas de informações.

  1. No Editor do .NET, localize as instruções Console.WriteLine() usadas para exibir as informações sobre o curso do aluno.

  2. Crie uma linha de código em branco acima das instruções Console.WriteLine().

  3. Na linha de código em branco que você criou, para adicionar o nome do aluno, insira o seguinte código:

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

    Observe que você está incluindo \n no final do texto. No módulo "Executar formatação de cadeia de caracteres básica com C#", você aprendeu que a sequência de caracteres de escape \n fará com que uma linha seja criada. O local da sequência de escape é importante. Nesse caso, o \n está no final das informações que você deseja gravar no console, portanto, a nova linha será adicionada depois que o "Nome do aluno" for exibido.

  4. Crie uma linha de código em branco após a instrução anterior Console.WriteLine().

  5. Na linha de código em branco que você criou, para adicionar um cabeçalho para obter informações do curso, insira o seguinte código:

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

    Observe que você está adicionando quatro guias após o nome do curso. As paradas de tabulação extras permitirão espaço extra para nomes de curso mais longos.

  6. Para formatar a saída como colunas alinhadas de texto, substitua os espaços entre palavras pela sequência de escape \t da seguinte maneira:

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

    A sequência de escape \t inserirá uma parada de tabulação entre os itens de texto. Essas paradas de tabulação devem resultar em colunas de informações alinhadas à esquerda.

    Observe que você reduz o número de tabulações para course4Name e course5Name. Essa diferença ocorre porque esses nomes de curso são mais longos do que os outros. Na etapa anterior, você adicionou guias extras após a coluna de nome do curso para manter o espaçamento consistente para nomes de curso longo e curto.

  7. Para adicionar o preenchimento à saída final do resultado da média, atualize o código da seguinte maneira:

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

Verificar seu trabalho

Nesta tarefa, você executará o código e verificará se a saída está correta.

  1. Verifique se o código é semelhante ao seguinte:

    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. Para executar o código e exibir a saída formatada, selecione Executar.

  3. Para verificar se o código está funcionando conforme o esperado, compare a saída do aplicativo com a seguinte saída:

    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
    

    Se o código exibir resultados diferentes, você precisará examinar o código para encontrar o erro e fazer atualizações. Execute o código novamente para ver se você corrigiu o problema. Continue atualizando e executando o código até que ele produza os resultados esperados.