计算GPA并仅回显3.75或4.0以上的记录

时间:2015-04-07 19:40:16

标签: php mysql

这可能是一种草率的方式,但我会分享我的方法来计算GPA。

我从一张桌子开始,每个学生都列出了每个班级的名字和成绩。每个学生将有5-7个记录,具体取决于他们正在上多少课程。注意:所有等级都是四舍五入的(A = 95,B = 85,C = 75,D = 65,F = 55)。

  • 布朗,C 65世界研究
  • Brown,C 75 Biology
  • 布朗,C 75舞蹈
  • 布朗,C 85代数
  • 布朗,C 85英语I
  • Brown,C 85平面设计
  • 布朗,C 95法语

我使用了以下内容:

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下显示的方法,并回应一个新的专栏,即回声荣誉榜或校长的学者。我也希望有更有效的计算方法。

0 个答案:

没有答案