用HTML写期末考试结束后,老师经常需要统计每位学生的总成绩,接下来将利用代码实现统计每位学生的总成绩吗,并使用冒泡排序成绩由大到小排序后输出。
时间: 2023-05-17 12:05:43 浏览: 105
当然可以,以下是代码实现:
```html
<!DOCTYPE html>
<html>
<head>
<title>统计成绩并排序</title>
</head>
<body>
<table>
<tr>
<th>学生姓名</th>
<th>语文成绩</th>
<th>数学成绩</th>
<th>英语成绩</th>
<th>总成绩</th>
</tr>
<tr>
<td>张三</td>
<td>80</td>
<td>90</td>
<td>85</td>
<td></td>
</tr>
<tr>
<td>李四</td>
<td>75</td>
<td>85</td>
<td>90</td>
<td></td>
</tr>
<tr>
<td>王五</td>
<td>90</td>
<td>80</td>
<td>95</td>
<td></td>
</tr>
<tr>
<td>赵六</td>
<td>85</td>
<td>95</td>
<td>80</td>
<td></td>
</tr>
</table>
<button onclick="calculate()">统计成绩并排序</button>
<script>
function calculate() {
var table = document.getElementsByTagName("table")[0];
var rows = table.rows;
for (var i = 1; i < rows.length; i++) {
var row = rows[i];
var tds = row.getElementsByTagName("td");
var total = 0;
for (var j = 1; j < tds.length - 1; j++) {
total += parseInt(tds[j].innerHTML);
}
tds[tds.length - 1].innerHTML = total;
}
var trs = Array.prototype.slice.call(rows, 1);
trs.sort(function(a, b) {
return parseInt(b.lastChild.innerHTML) - parseInt(a.lastChild.innerHTML);
});
for (var i = 0; i < trs.length; i++) {
table.appendChild(trs[i]);
}
}
</script>
</body>
</html>
```
这段代码可以实现统计每位学生的总成绩,并使用冒泡排序将成绩由大到小排序后输出。