1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| <?php
$students = [ ["name" => "张三", "scores" => [85, 92, 78, 88, 95]], ["name" => "李四", "scores" => [76, 84, 91, 79, 87]], ["name" => "王五", "scores" => [92, 88, 85, 94, 90]], ["name" => "赵六", "scores" => [68, 75, 82, 71, 79]] ];
echo "=== 学生成绩统计 ===\n\n";
foreach ($students as $student) { $name = $student["name"]; $scores = $student["scores"]; $total = 0; $count = count($scores); foreach ($scores as $score) { $total += $score; } $average = $total / $count; $maxScore = $scores[0]; $minScore = $scores[0]; for ($i = 1; $i < $count; $i++) { if ($scores[$i] > $maxScore) { $maxScore = $scores[$i]; } if ($scores[$i] < $minScore) { $minScore = $scores[$i]; } } if ($average >= 90) { $grade = "优秀"; } elseif ($average >= 80) { $grade = "良好"; } elseif ($average >= 70) { $grade = "中等"; } elseif ($average >= 60) { $grade = "及格"; } else { $grade = "不及格"; } echo "学生:$name\n"; echo "各科成绩:" . implode(", ", $scores) . "\n"; echo "总分:$total\n"; echo "平均分:" . number_format($average, 2) . "\n"; echo "最高分:$maxScore\n"; echo "最低分:$minScore\n"; echo "等级:$grade\n"; echo str_repeat("-", 30) . "\n"; }
$allScores = []; foreach ($students as $student) { foreach ($student["scores"] as $score) { $allScores[] = $score; } }
$classTotal = array_sum($allScores); $classAverage = $classTotal / count($allScores); $classMax = max($allScores); $classMin = min($allScores);
echo "\n=== 班级整体统计 ===\n"; echo "班级平均分:" . number_format($classAverage, 2) . "\n"; echo "班级最高分:$classMax\n"; echo "班级最低分:$classMin\n";
$ranges = [ "90-100" => 0, "80-89" => 0, "70-79" => 0, "60-69" => 0, "0-59" => 0 ];
foreach ($allScores as $score) { if ($score >= 90) { $ranges["90-100"]++; } elseif ($score >= 80) { $ranges["80-89"]++; } elseif ($score >= 70) { $ranges["70-79"]++; } elseif ($score >= 60) { $ranges["60-69"]++; } else { $ranges["0-59"]++; } }
echo "\n分数段分布:\n"; foreach ($ranges as $range => $count) { $percentage = ($count / count($allScores)) * 100; echo "$range 分:$count 人 (" . number_format($percentage, 1) . "%)\n"; } ?>
|