演習 - 履修単位時間と成績評価点の合計を計算する
この演習では、各コースの単位時間の合計数と獲得した成績評価点を計算して格納します。 これらの値は、後で GPA の計算に使用されます。 単位時間と成績値の両方が整数として表されるため、整数データ型を使用して合計を格納します。
平均を格納する変数を作成する
学生の GPA を計算するには、単位時間の合計数と、獲得した成績評価点の合計数が必要であることを思い出してください。 コースで獲得した成績評価点は、そのコースの単位時間数と獲得した成績値の積と同じです。 次に例を示します。
Course Credit Credit Hours Grade Points
English 101 4 3 12
このタスクでは、GPA の計算に必要な値を格納する変数を作成します。 各コースの合計単位時間の合計を格納する変数と、各コースで学生が獲得した成績評価点の合計を格納する別の変数を作成します。
.NET エディターで、コースの情報を表示するために使われる
Console.WriteLine()
ステートメントを見つけます。Console.WriteLine()
ステートメントの上に新しい空白のコード行を作成します。作成した空白のコード行に、単位時間の合計数を格納する変数を作成するには、次のコードを入力します。
int totalCreditHours = 0;
合計が
0
に初期化されていることに注目してください。 この初期化により、コードを整理したまま合計をインクリメントできます。単位時間の合計数を表す合計をインクリメントするには、次のコードを入力します。
totalCreditHours += course1Credit; totalCreditHours += course2Credit; totalCreditHours += course3Credit; totalCreditHours += course4Credit; totalCreditHours += course5Credit;
+=
演算子は、変数に値を追加するための短縮表記であることを思い出してください。 これらのコード行は、1 行に各courseCredit
変数を追加した場合と同じ結果になります。その例を以下に示します。totalCreditHours = course1Credit + course2Credit + course3Credit + course4Credit + course5Credit;
各コースで獲得した成績評価点の合計数を格納する変数を作成するには、次のコードを入力します。
int totalGradePoints = 0;
最初のコースで獲得した成績評価点の合計をインクリメントするには、次のコードを入力します。
totalGradePoints += course1Credit * course1Grade;
コースで獲得した成績評価点は、コースの単位時間に獲得した成績を乗算したものと同じであることを思い出してください。 このコード行では、複合代入演算子を使用して、
course1Credit * course1Grade
の積をtotalGradePoints
に加えます。コースの残りの部分で獲得した成績評価点の合計をインクリメントするには、次のコードを入力します。
totalGradePoints += course2Credit * course2Grade; totalGradePoints += course3Credit * course3Grade; totalGradePoints += course4Credit * course4Grade; totalGradePoints += course5Credit * course5Grade;
少し時間を取ってコードを確認します。
記述したコードは、1 つの大きな演算で GPA を計算しようとするのではなく、問題を管理しやすいようにいくつかに分割することに注目してください。 最初に、
totalCreditHours
の値を初期化して計算しました。 次に、totalGradePoints
の値を初期化して計算しました。 その後、最終的な計算でこれらの値を使用します。コードで
totalGradePoints
の値が計算されているので、続行する前に計算が正しいことを確認しましょう。 定期的に作業を停止して確認することが重要です。 開発プロセスの早い段階で作業を確認すると、コード内のエラーをより簡単に見つけて修正できます。totalGradePoints
とtotalCreditHours
の値を表示するには、次のコードを入力します。Console.WriteLine($"{totalGradePoints} {totalCreditHours}");
この
WriteLine()
ステートメントは、最終的な出力では必要ないため、後で削除します。
作業を確認する
このタスクでは、コードを実行して、出力が正しいことを検証します。
コードが次のようになっていることを確認します。
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; Console.WriteLine($"{totalGradePoints} {totalCreditHours}"); Console.WriteLine($"{course1Name} {course1Grade} {course1Credit}"); Console.WriteLine($"{course2Name} {course2Grade} {course2Credit}"); Console.WriteLine($"{course3Name} {course3Grade} {course3Credit}"); Console.WriteLine($"{course4Name} {course4Grade} {course4Credit}"); Console.WriteLine($"{course5Name} {course5Grade} {course5Credit}");
コードを実行し、
totalGradePoints
とtotalCreditHours
の現在の値を表示するには、[実行] を選択します。アプリケーションの出力が次の出力と一致していることを確認します。
57 17 English 101 4 3 Algebra 101 3 3 Biology 101 3 4 Computer Science I 3 4 Psychology 101 4 3
コードによって表示される結果が異なる場合は、コードを確認し、エラーを見つけて更新する必要があります。 コードをもう一度実行して、問題が修正されたかどうかを確認します。 コードで予期される結果が得られるまで、コードの更新と実行を続けます。
重要
これまでに記述したコードは削除しないでください。 このコードを基にして次の演習を行います。