:编写程序,提示用户输入学生的个数,每个学生的名字及其分数,最后显示获得最高 分的学生和第二高分的学生。请使用 Scanner 类的 next()方法而不是 nextLine()方法来读 取名字java
时间: 2024-09-19 17:04:10 浏览: 80
当需要编写一个Java程序来获取用户输入并计算学生成绩时,可以按照以下步骤进行:
1. 首先,导入 `java.util.Scanner` 类,用于从控制台读取用户输入。
2. 创建一个 `Scanner` 对象,指向标准输入(通常是键盘)。
3. 提示用户输入学生数量,并使用 `nextInt()` 方法读取整数作为学生总数。
4. 使用一个循环来遍历指定次数,每次循环内:
- 再次使用 `next()` 方法读取学生的名字(字符串),存储在数组或列表中。
- 使用 `nextInt()` 方法读取分数并存储在一个数组或列表中,对应每个学生的名字。
5. 对分数进行排序,找到最高分和第二高的分数。可以使用Collections.sort()对List进行排序,然后取出最大值和次大值。
6. 输出最高分学生的姓名以及其分数。
以下是简单的代码示例:
```java
import java.util.*;
public class StudentScores {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 提示用户输入学生数量
System.out.println("请输入学生人数:");
int numStudents = scanner.nextInt();
// 存储学生信息
String[] studentNames = new String[numStudents];
int[] scores = new int[numStudents];
for (int i = 0; i < numStudents; i++) {
// 获取学生名字和分数
System.out.println("请输入第" + (i+1) + "名学生的名字:");
studentNames[i] = scanner.next();
System.out.println("请输入他们的分数:");
scores[i] = scanner.nextInt();
}
// 排序分数
Arrays.sort(scores);
// 找到最高分和第二高分
int maxScore = scores[scores.length - 1];
int secondMaxScore = -1;
if (scores.length > 1) {
secondMaxScore = scores[scores.length - 2];
} else {
// 如果只有一个学生,那么第二高分和最高分一样
secondMaxScore = maxScore;
}
// 显示最高分和第二高分及对应的姓名
System.out.println("最高分 (" + maxScore + " 分): " + studentNames[scores.lastIndexOf(maxScore)]);
if (secondMaxScore != -1) {
System.out.println("第二高分 (" + secondMaxScore + " 分): " + studentNames[scores.lastIndexOf(secondMaxScore)]);
}
scanner.close(); // 关闭扫描器
}
}
```
阅读全文