Ejercicio: Formateo de la salida mediante secuencias de caracteres de escape
En este ejercicio, modificará la salida de la consola del ejercicio anterior para lograr el formato de informe especificado.
Formateo de la salida de la consola
En esta tarea, actualizará el código para aplicar los últimos toques a la salida notificada. Para empezar, incluirá el nombre del alumno y agregará una fila de encabezado que incluya las etiquetas de columna. Después de eso, usará secuencias de escape de caracteres para agregar más espaciado interno entre las columnas de información.
En el editor de .NET, busque las instrucciones Console.WriteLine() que se usan para mostrar la información del curso del alumno.
Cree una línea de código en blanco encima de las instrucciones Console.WriteLine().
En la línea de código en blanco que creó escriba el código siguiente, para agregar el nombre del alumno:
Console.WriteLine($"Student: {studentName}\n");
Observe que ha incluido
\n
al final del texto. En el módulo "Realizar formato de cadena básico con C#", ha aprendido que la secuencia de caracteres de escape\n
generará una nueva línea. La ubicación de la secuencia de escape es importante. En este caso,\n
se encuentra al final de la información que desea escribir en la consola, por lo que la nueva línea se agregará después de mostrar "Nombre del alumno".Cree una línea de código en blanco después de la instrucción Console.WriteLine() anterior.
En la línea de código en blanco que creó, escriba el código siguiente con el fin de agregar un encabezado para la información del curso:
Console.WriteLine("Course\t\t\t\tGrade\tCredit Hours");
Observe que va a agregar cuatro pestañas después del nombre del curso. Las tabulaciones adicionales proporcionarán más espacio para los nombres de curso largos.
Para formatear la salida en forma de columnas alineadas de texto, reemplace los espacios entre palabras por la secuencia de escape
\t
como se indica a continuación: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}");
La secuencia de escape
\t
insertará una tabulación entre los elementos de texto. Estas tabulaciones generarán columnas de información alineadas a la izquierda.Observe que el número de pestañas se reduce para
course4Name
ycourse5Name
. Esta diferencia se debe a que esos nombres de curso son más largos que los demás. En el paso anterior, agregó pestañas adicionales después de la columna de nombre del curso para mantener un espaciado adecuado para los nombres de curso largos y cortos.Para agregar espaciado interno a la salida final del resultado del GPA, actualice el código de la siguiente manera:
Console.WriteLine($"\nFinal GPA:\t\t\t {leadingDigit}.{firstDigit}{secondDigit}");
Comprobación del trabajo
En esta tarea, ejecutará el código y comprobará que la salida es correcta.
Compruebe que el código es similar al siguiente:
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}");
Para ejecutar el código y mostrar la salida con formato, seleccione Ejecutar.
Para comprobar que el código funciona según lo previsto, compare la salida de la aplicación con la salida siguiente:
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
Si el código muestra resultados diferentes, deberá revisarlo para encontrar el error y realizar las actualizaciones correspondientes. Vuelva a ejecutar el código para ver si ha corregido el problema. Continúe actualizando y ejecutando el código hasta que genere el resultado esperado.