Oefening: de uitvoer opmaken met escape-tekenreeksen

Voltooid

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.

  1. Zoek in de .NET-editor de instructies Console.WriteLine() die worden gebruikt om de cursusgegevens van de leerling/student weer te geven.

  2. Maak een lege coderegel boven de console.WriteLine()-instructies.

  3. 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.

  4. Maak een lege coderegel na de vorige instructie Console.WriteLine().

  5. 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.

  6. 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 en course5Name. 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.

  7. 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.

  1. 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}");
    
  2. Als u de code wilt uitvoeren en de opgemaakte uitvoer wilt weergeven, selecteert u Uitvoeren.

  3. 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.