这可能是一种草率的方式,但我会分享我的方法来计算GPA。
我从一张桌子开始,每个学生都列出了每个班级的名字和成绩。每个学生将有5-7个记录,具体取决于他们正在上多少课程。注意:所有等级都是四舍五入的(A = 95,B = 85,C = 75,D = 65,F = 55)。
我使用了以下内容:
SELECT DISTINCT gpa.ID, gpa.Student_Name, gpa.Grade, gpa.Average, gpa.Course, SUM(IF(gpa.Average=95, 1,0)) AS 'A', SUM(IF(gpa.Average=85, 1,0)) AS 'B' , SUM(IF(gpa.Average=75, 1,0)) AS 'C', SUM(IF(gpa.Average=65, 1,0)) AS 'D', SUM(IF(gpa.Average=55, 1,0)) AS 'F' FROM gpa
然后我使用以下公式计算GPA。
<?php
$A=$row_Recordset3['A'];
$B=$row_Recordset3['B'];
$C=$row_Recordset3['C'];
$D=$row_Recordset3['D'];
$F=$row_Recordset3['F'];
$total=$A+$B+$C+$D+$F;
$Aw=$row_Recordset3['A'];
$Bw=$row_Recordset3['B'];
$Cw=$row_Recordset3['C'];
$Dw=$row_Recordset3['D'];
$Fw=$row_Recordset3['F'];
$totalw=$Aw*4+$Bw*3+$Cw*2+$Dw*1+$Fw*0;
echo round($totalw/$total,2);
?>
它有效,但可能不是计算效率最高的。我现在只想回应那些GPA为3.75的荣誉榜和4.0为校长学者的学生名单。它们应该在同一个列表中。只想要一种不在3.75下显示的方法,并回应一个新的专栏,即回声荣誉榜或校长的学者。我也希望有更有效的计算方法。