练习 - 计算学分数和成绩分数的总和

已完成

在本练习中,你将计算并存储每门课程的总学时数和获得的总绩点。 这些值稍后将用于计算 GPA。 由于学时和成绩值均表示为整数,因此你将使用 Integer 数据类型存储总和。

创建变量以存储平均值

回想一下,要计算学生的 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
    

    如果代码显示不同的结果,则需要查看代码以查找错误并进行更新。 再次运行代码以查看是否已解决问题。 继续更新和运行代码,直到代码生成预期结果。

重要

确保不要删除到目前为止已编写的任何代码。 在下一个练习中,你将基于此代码进行生成。