接收给定的一行字符串(某学生各科成绩),当某科成绩大于 100 或者小于 0 时,抛出一个异常(Exception),提示“成绩录入异常”。最后统计该学生各科平均成绩
时间: 2024-10-19 21:12:11 浏览: 126
接收一行字符串表示学生的成绩时,我们可以按照以下步骤处理:
1. 首先,我们需要将字符串分割成各个学科的成绩。这通常通过逗号或其他分隔符来完成,假设分隔符是逗号。
2. 对于每个成绩,我们需要检查它是否在合法范围内(即0到100之间)。如果不在这个范围内,就抛出一个`IllegalArgumentException`异常,并附带一条消息说明"成绩录入异常"。
3. 使用循环遍历所有成绩,并对每个有效的成绩进行累加。同时维护一个计数器,用于计算有多少成绩有效。
4. 当所有成绩都被检查过后,我们将累计分数除以有效成绩的数量,得到学生的平均成绩。
以下是一个简单的Java示例实现这一功能:
```java
import java.util.Arrays;
import java.util.StringTokenizer;
public class StudentScoreChecker {
public static double calculateAverage(String scores) throws Exception {
String[] scoreParts = scores.split(",");
int totalScore = 0;
int validCount = 0;
for (String part : scoreParts) {
int score = Integer.parseInt(part.trim());
if (score < 0 || score > 100) {
throw new IllegalArgumentException("成绩录入异常:得分 " + score + " 超出了范围");
}
totalScore += score;
validCount++;
}
return totalScore / validCount;
}
public static void main(String[] args) {
try {
String studentScores = "85,92,110,76";
double average = calculateAverage(studentScores);
System.out.println("学生平均成绩: " + average);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在这个例子中,如果输入的字符串不符合要求,程序会捕获并打印异常信息,而不会计算平均成绩。如果没有异常,就会输出计算出的平均成绩。
阅读全文