演習 - エスケープされた文字シーケンスを使用して出力を書式設定する

完了

この演習では、前の演習のコンソール出力を変更して、指定されたレポート形式を実現します。

コンソール出力の書式を設定する

このタスクでは、コードを更新して報告される出力の最終調整を行います。 最初に、学生の名前が含まれるようにし、列ラベルを含むヘッダー行を追加します。 その後、文字エスケープ シーケンスを使って、情報の列の間にパディングを追加します。

  1. .NET エディターで、学生のコースの情報を表示するために使われる Console.WriteLine() ステートメントを見つけます。

  2. Console.WriteLine() ステートメントの上に、空白のコード行を作成します。

  3. 作成した空白のコード行に、学生の名前を追加する次のコードを入力します。

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

    テキストの末尾に \n を含めることに注意してください。 「C# で基本的な文字列を書式設定する」モジュールでは、\n エスケープ文字シーケンスを使うと新しい行が作成されることを学習しました。 エスケープ シーケンスの場所が重要です。 この場合、\n はコンソールに書き込む情報の末尾にあるため、"Student Name" が表示された後に新しい行が追加されます。

  4. 前の Console.WriteLine() ステートメントの後に、空白のコード行を作成します。

  5. 作成した空白のコード行に、コース情報のヘッダーを追加する次のコードを入力します。

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

    コース名の後に 4 つのタブが追加されていることに注意してください。 タブ ストップを追加すると、長いコース名のための余分なスペースができます。

  6. 出力のテキスト列が揃うように書式を設定するには、次のように、単語の間のスペースを \t エスケープ シーケンスに置き換えます。

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

    \t エスケープ シーケンスは、テキスト項目の間にタブ ストップを挿入します。 これらのタブ ストップにより、情報の列は左揃えになります。

    course4Namecourse5Name についてはタブの数が少ないことに注意してください。 この違いは、それらのコース名は他より長いためです。 前のステップでは、コース名が長くても短くても間隔が一定になるように、コース名列の後にタブを追加しました。

  7. GPA の最終的な結果出力にパディングを追加するには、次のようにコードを更新します。

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

作業を確認する

このタスクでは、コードを実行して、出力が正しいことを検証します。

  1. コードが次のようになっていることを確認します。

    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. コードを実行し、書式設定された出力を表示するには、[実行] を選びます。

  3. コードが想定どおりに動作していることを確認するには、アプリケーションの出力を次の出力と比較します。

    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
    

    コードによって表示される結果が異なる場合は、コードを確認し、エラーを見つけて更新する必要があります。 コードをもう一度実行して、問題が修正されたかどうかを確認します。 コードで予期される結果が得られるまで、コードの更新と実行を続けます。