2015-07-10 47 views
-1

试图弄清楚如何将在文本区域中输入的所有字母成绩分配到新数组,将字母与点匹配并计算成绩点。就像在这个例子中一样,如何计算totalGradePoints。 HTML部分被剪切。任何帮助表示赞赏。无法计算出如何计算成绩点

<html> 
<!-- gpa2.html --> 

<html> 
<head> 
    <title>GPA</title> 
</head> 
<script type="text/javascript"> 
    //Assigning grades to match points 
    var grades = ['A', 'B+', 'B', 'C+', 'C', 'D', 'F', 'AF', 'WF'], 
     points = [4, 3.5, 3, 2.5, 2, 1, 0, 0, 0]; 

    function getData() { 
     var input = 0, 
      results = []; 

     input = document.getElementById("inputs").value.split("\n"); 
     for (var i = 0; i < input.length; i++) { 
      input[i] = input[i].split(" "); 
      results.push({ 
       course: input[i][0].trim(), 
       grade: input[i][1].trim, 
       creditHours: parseInt(input[i][2], 10) 
      }); 
     } 
     return results; 
    } 

    //GPA calculation 
    var output = function() { 
     var results, 
      totalCreditHours = 0, 
      totalGradePoints = 0, 
      gpa = 0; 

     results = getData(); 

     for (i = 0, j = results.length; i < j; i++) { 
      totalCreditHours += results[i].creditHours; 
     } 
     gpa = (totalCreditHours === 0 ? 0 : totalGradePoints/totalCreditHours).toFixed(3); 

     var output1 = document.getElementById("totalGradePointsOutput"); 
     output1.value = totalGradePoints 
     var output2 = document.getElementById("totalCreditHours"); 
     output2.value = totalCreditHours 
     var output3 = document.getElementById("gpaOut"); 
     output3.value = gpa 
    } 
</script> 

<body> 


</body> 
</html> 
+1

看起来像功课。 –

+0

@Derek这是HW的一部分,相关性如何? –

+0

大部分时间这样的作业问题不够具体,不包括任何尝试的问题将被关闭。 –

回答

0

从文本字段中获得价值,获得点阵列对应的上档次阵列的字母索引,并将其追加到另一个阵列称为currentGrades;

<!Doctype html> 
<html> 
<body> 
Letter Grade <input type="text" id="letterGrade" value="C"> 
<button onclick="calculateGrade()">Add</button> 

<script> 
var grades = ['A', 'B+', 'B', 'C+', 'C', 'D', 'F', 'AF', 'WF'], 
     points = [4, 3.5, 3, 2.5, 2, 1, 0, 0, 0]; 

var currentGrades = []; 
function calculateGrade() { 
    var letter = document.getElementById("letterGrade").value; 
    for (var i=0; i<grades.length; i++) { 
     if (grades[i] == letter) { 
      currentGrades.push(points[i]); 
     } 
    } 
    console.log(currentGrades); 
} 
</script> 
</body> 
</html> 
+0

对不起,我第一次不够清楚。 input.split(“\ n”)后输入的文本区域的值为 input = [aa a 4,bb b 3,cc c 2,dd d 1,..... no limit]。 前两个字母代表当然,中间一年级和数字creditHours。 经过修整,你可以在上面的代码中看到我得到的结果如下: results [0] = [[course:aa],[grade:a],[creditHours:4]] results [1] = [[course: bb],[等级:b],[creditHours:3]] 。 。 现在每个结果[我]我必须采取成绩部分,如果更低转向大写,分配适当的点,总和所有,并最终乘以totalCreditHours(已计算)。 –