使用Java语言编程:模拟成绩录入以及计算班级平均分及格人数 假如有三个班级,每班5人,按班级分别依次录入学号和分数,求该班的平均分、及格人数。 要求: 1) 使用多种循环、使用break和continue语句。 2) 如果某分数录入为负值,则停止当前录入并提示录入错误。。 3) 学号必须是三位数否则提示重新输入学号。
时间: 2023-05-23 10:02:54 浏览: 55
为您提供如下Java代码:
```
import java.util.Scanner;
public class ScoreEntry {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 三个班级,每班5个学生
int[][] scores = new int[3][5];
int[] passCount = new int[3];
double[] avgScore = new double[3];
// 遍历三个班级
for (int i = 0; i < 3; i++) {
System.out.println("请输入第" + (i+1) + "个班级的分数:");
// 遍历每个学生
for (int j = 0; j < 5; j++) {
int id;
int score;
// 循环直至学号为三位数
while (true) {
System.out.println("请输入第" + (j+1) + "个学生的三位数学号:");
id = sc.nextInt();
if (id >= 100 && id <= 999) {
break;
} else {
System.out.println("学号必须为三位数,请重新输入!");
}
}
// 循环直至分数为非负数
while (true) {
System.out.println("请输入第" + (j+1) + "个学生的分数:");
score = sc.nextInt();
if (score >= 0) {
break;
} else {
System.out.println("分数不能为负数,请重新输入!");
}
}
// 更新该班级总分和及格人数
scores[i][j] = score;
if (score >= 60) {
passCount[i]++;
}
// 如果输入了五个学生的信息,计算该班级平均分
if (j == 4) {
avgScore[i] = calcAvgScore(scores[i]);
}
}
}
// 输出每个班级平均分和及格人数
for (int i = 0; i < 3; i++) {
System.out.println("第" + (i+1) + "个班级的平均分为:" + avgScore[i]);
System.out.println("第" + (i+1) + "个班级的及格人数为:" + passCount[i]);
}
}
// 计算平均分
private static double calcAvgScore(int[] scores) {
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
}
return (double)sum / scores.length;
}
}
```