練習 - 計算學分和績點的總和

已完成

在本練習中,您將計算並儲存總學分和對每門課程所獲得的總績點。 這些值稍後將會用來計算 GPA。 由於學分和成績都是以整數表示,因此您將使用整數資料類型來儲存總和。

建立變數來儲存平均值

回想一下,若要計算學生的 GPA,您需要總學分,以及所獲得的總績點。 課程所獲得的績點等於該課程的學分與所獲得成績的乘積。 例如:

Course          Credit  Credit Hours    Grade Points
English 101     4		3               12

在這項工作中,您將建立變數來儲存計算 GPA 所需的值。 您將建立變數來儲存每門課程的總學分之和,以及建立另一個變數來儲存學生對每門課程所獲得的績點之和。

  1. 在 .NET 編輯器中,找出用來顯示課程資訊的 Console.WriteLine() 陳述式。

  2. Console.WriteLine() 陳述式上方建立空白的程式碼行。

  3. 在您所建立的空白程式碼行上,若要建立將儲存總學分的變數,請輸入下列程式碼:

    int totalCreditHours = 0;
    
    

    請注意,總計會初始化為 0。 此初始化可讓您在遞增總和,同時讓您的程式碼井然有序。

  4. 若要遞增總和來表示總學分,請輸入下列程式碼:

    totalCreditHours += course1Credit;
    totalCreditHours += course2Credit;
    totalCreditHours += course3Credit;
    totalCreditHours += course4Credit;
    totalCreditHours += course5Credit;
    
    

    回想一下,+= 運算子是速記標記法,可將值新增至變數。 這些程式碼具有與在一行上新增每個 courseCredit 變數相同的結果,例如:

    totalCreditHours = course1Credit + course2Credit + course3Credit + course4Credit + course5Credit;
    
  5. 若要建立變數,其中將儲存對每門課程所獲得的總積點,請輸入下列程式碼:

    int totalGradePoints = 0;
    
    
  6. 若要透過對第一門課程所獲得的績點遞增總和,請輸入下列程式碼:

    totalGradePoints += course1Credit * course1Grade;
    
    

    回想一下,對課程所獲得的績點等於課程學分乘以所獲得的成績。 在這個程式碼中,您會使用複合指派運算子,將 course1Credit * course1Grade 的乘積新增至 totalGradePoints

  7. 若要透過對剩餘課程所獲得的績點遞增總和,請輸入下列程式碼:

    totalGradePoints += course2Credit * course2Grade;
    totalGradePoints += course3Credit * course3Grade;
    totalGradePoints += course4Credit * course4Grade;
    totalGradePoints += course5Credit * course5Grade;
    
    
  8. 請花幾分鐘檢閱您的程式碼。

    請注意,您撰寫的程式碼會將問題分解成可管理的片段,而不是嘗試在一個大型作業中計算 GPA。 首先,您已初始化並計算 totalCreditHours 的值。 接著,您已初始化並計算 totalGradePoints 的值。 之後,您將在最終計算中使用這些值。

    既然您的程式碼正在計算 totalGradePoints 的值,讓我們先驗證您的計算是否正確,然後再繼續。 請務必定期停止並檢查您的工作。 在開發流程初期檢查您的工作,可讓您更輕鬆地找出並修正程式碼中的任何錯誤。

  9. 若要顯示 totalGradePointstotalCreditHours 的值,請輸入下列程式碼:

    Console.WriteLine($"{totalGradePoints} {totalCreditHours}");
    

    您稍後會移除此 WriteLine() 陳述式,因為最終輸出中不需要此陳述式。

檢查您的工作

在此工作中,您將執行程式碼,並驗證輸出是否正確。

  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;
    
    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}");
    
  2. 若要執行您的程式碼,並顯示 totalGradePointstotalCreditHours 的目前值,請選取 [執行]。

  3. 驗證應用程式的輸出是否符合下列輸出:

    57 17
    English 101 4 3
    Algebra 101 3 3
    Biology 101 3 4
    Computer Science I 3 4
    Psychology 101 4 3
    

    如果您的程式碼顯示不同的結果,您必須檢閱程式碼以尋找錯誤並進行更新。 再次執行程式碼,查看您是否已修正此問題。 請繼續更新和執行程式碼,直到其產生預期的結果為止。

重要

切記勿刪除您到目前為止撰寫的任何程式碼。 在下一個練習中,您將以此程式碼為基礎進行建置。