Oefening: de uitvoer opmaken met escape-tekenreeksen
In deze oefening wijzigt u de console-uitvoer van de vorige oefening om de opgegeven rapportage-indeling te bereiken.
De console-uitvoer opmaken
In deze taak werkt u uw code bij om de afwerking toe te passen op de gerapporteerde uitvoer. U begint met het opnemen van de naam van de leerling/student en het toevoegen van een veldnamenrij die de kolomlabels bevat. Daarna gebruikt u escapereeksen voor tekens om extra opvulling toe te voegen tussen de gegevenskolommen.
Zoek in de .NET-editor de instructies Console.WriteLine() die worden gebruikt om de cursusgegevens van de leerling/student weer te geven.
Maak een lege coderegel boven de console.WriteLine()-instructies.
Voer op de lege coderegel die u hebt gemaakt, de volgende code in om de naam van de leerling/student toe te voegen:
Console.WriteLine($"Student: {studentName}\n");
U ziet dat u aan het einde van de tekst bent.
\n
In de module 'Eenvoudige tekenreeksopmaak uitvoeren met C#' hebt u geleerd dat de\n
escape-tekenreeks ervoor zorgt dat er een nieuwe regel wordt gemaakt. De locatie van de escapereeks is belangrijk. In dit geval staat de\n
informatie aan het einde van de informatie die u naar de console wilt schrijven, zodat de nieuwe regel wordt toegevoegd nadat 'Naam student' is weergegeven.Maak een lege coderegel na de vorige instructie Console.WriteLine().
Voer op de lege coderegel die u hebt gemaakt, de volgende code in om een koptekst voor cursusgegevens toe te voegen:
Console.WriteLine("Course\t\t\t\tGrade\tCredit Hours");
U ziet dat u vier tabbladen toevoegt na de naam van de cursus. De extra tabstops zorgen voor extra ruimte voor langere cursusnamen.
Als u de uitvoer wilt opmaken als uitgelijnde kolommen met tekst, vervangt u de spaties tussen woorden door de
\t
escapereeks als volgt: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}");
Met
\t
de escapereeks wordt een tabstop tussen de tekstitems ingevoegd. Deze tabstops moeten resulteren in links uitgelijnde kolommen met informatie.U ziet dat u het aantal tabbladen voor
course4Name
encourse5Name
. Dit verschil komt doordat deze cursusnamen langer zijn dan de andere. In de vorige stap hebt u extra tabbladen toegevoegd na de kolom naam van de cursus om de afstand consistent te houden voor zowel lange als korte cursusnamen.Als u opvulling wilt toevoegen aan de uiteindelijke uitvoer van het GPA-resultaat, werkt u de code als volgt bij:
Console.WriteLine($"\nFinal GPA:\t\t\t {leadingDigit}.{firstDigit}{secondDigit}");
Uw werk controleren
In deze taak voert u de code uit en controleert u of de uitvoer juist is.
Controleer of uw code er ongeveer als volgt uitziet:
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}");
Als u de code wilt uitvoeren en de opgemaakte uitvoer wilt weergeven, selecteert u Uitvoeren.
Als u wilt controleren of uw code werkt zoals verwacht, vergelijkt u de uitvoer van uw toepassing met de volgende uitvoer:
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
Als uw code verschillende resultaten weergeeft, moet u uw code controleren om uw fout te vinden en updates aan te brengen. Voer de code opnieuw uit om te zien of u het probleem hebt opgelost. Ga door met het bijwerken en uitvoeren van uw code totdat uw code de verwachte resultaten produceert.