Javascript平均计算器(用户输入的多个值)

时间:2014-12-09 01:37:49

标签: javascript average

我希望能够让用户输入多个成绩,然后使用Javascript来平均输入的成绩。当用户输入成绩后,他们可以单击取消并关闭Propmt Box,如果他们根本不输入任何成绩(默认为0),则程序会显示没有输入成绩。

我对此非常陌生!我在我的大学读了一个javascript课程,这有点令人困惑,因为老师没有教!我们所要提到的只是W3schools,这些东西根本没有列出!

以下是另一种解释: "开发一个程序,允许教师输入任意数量的成绩,进行平均计算,然后用语法句子显示结果。该程序还必须告诉用户是否没有输入成绩。您需要使用循环和“if else”语句。一定要声明所有变量并测试除以零的可能性。"



<script type = "text/javascript">
  var gradeCounter = 0,
    gradeValue = 0,
    total = 0,
    average, grade;
var sum = 0;
var i = 0;
while (gradeValue != -1 && gradeValue <= 100) {

  //Prompt the user
  grade = prompt("Enter Grades, -1 to Quit:", "0");
  //Parse the prompt result to a int
  sum += parseInt(grade);
  i++;
  if (i >= 0 && grade != null) {
    document.getElementById("average").innerHTML = "The average of the grades you've entered are " + sum / i + ".";
  } else {
    document.getElementById("error").innerHTML = "There were no grades entered";
  }
} </script>
&#13;
&#13;
&#13;

再次感谢!

2 个答案:

答案 0 :(得分:1)

这没关系

更新

再次更新

JSFIDDLE

// note: the dom must be ready before execution

var btn = document.querySelector('button'),
    res = document.getElementById('average');

btn.addEventListener('click', function(e) {
    var val = prompt('Enter comma delimited grades to average');
    val = val.length ? val.replace(/\s/g, '').split(',') : '';

    var count = val.length || 0; // no 0 division

    if (!count) {
       res.innerHTML = 'you must enter comma delimited numbers to average';
       return;
    } else {
        var average = val.reduce(function(a, b) { // is a loop
            return +a + +b;
        });

        res.innerHTML = (average /= count).toFixed(1);        
    }

});

HTML

<button id="avgBtn">Prompt</button>
<p>Average: <span id="average"></span></p>

答案 1 :(得分:1)

&#13;
&#13;
var grades = [];
// initialize the array that will store the entries
var sum = 0;
// initialize the variable that will add the array values together
var average;
// initialize the variable that will contain the final result
var invalid = [];
// initialize the variable that will be used to make sure the user inserts something

for (i = 0; i < 5; i++) {
  // repeat the following code 5 times

  grades[i] = prompt("Please enter a grade. (You will be asked for 5 grades)", "");
  // ask the user for a grade and store it to the array

}

for (i = 0; i < grades.length; i++) {
  if (grades[i] === "" || grades[i] === null) {
    invalid[invalid.length] = grades[i];
  }
}

if (invalid.length !== 5) {

  for (i = 0; i < grades.length; i++) {
    // repeat this code the same amount of times as there are entries in the array (5)

    sum += Number(grades[i]);
    // add the entries together.  make sure they are numbers using the Number() function

  }

  var average = sum / grades.length;
  // divide the added entries by the number of entries (again, 5)

  alert("The average of all of your numbers is: " + average);
  // alert the user of the completed average
} else {

  alert('You need to enter grades for this to work!  Please reload the page to try again.');

}
&#13;
&#13;
&#13;