手动输入班级人数,输出班上每个同学的成绩存到数组,,计算出数组中的最大值,最小值,平均值,和总和使用Java来计算
时间: 2024-09-21 19:06:51 浏览: 44
在Java中,你可以按照以下步骤来完成这个任务:
1. **创建一个学生类** (Student),包含姓名(name)和成绩(score)两个属性。
```java
public class Student {
private String name;
private double score;
// 构造函数、getter和setter...
}
```
2. **手动输入班级人数**,可以使用`Scanner`类从控制台获取用户输入。
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入班级人数:");
int studentCount = scanner.nextInt();
scanner.close(); // 关闭扫描器以释放资源
}
}
```
3. **创建学生数组并存储成绩**。假设我们有一个ArrayList来保存学生。
```java
List<Student> students = new ArrayList<>();
for (int i = 0; i < studentCount; i++) {
System.out.println("请输入第" + (i+1) + "位学生的姓名和成绩:");
String name = scanner.nextLine();
double score = scanner.nextDouble();
Student student = new Student(name, score);
students.add(student);
}
```
4. **计算最大值、最小值、平均值和总和**。可以使用Java 8的Stream API 或者循环遍历数组来实现。
```java
// 使用Stream API
double maxScore = students.stream().mapToDouble(Student::getScore).max().orElse(Double.MIN_VALUE);
double minScore = students.stream().mapToDouble(Student::getScore).min().orElse(Double.MAX_VALUE);
double sumScore = students.stream().mapToDouble(Student::getScore).sum();
double averageScore = sumScore / students.size();
// 或者循环遍历
double totalScore = 0;
double maxTemp = Double.MIN_VALUE;
double minTemp = Double.MAX_VALUE;
for (Student student : students) {
totalScore += student.getScore();
maxTemp = Math.max(maxTemp, student.getScore());
minTemp = Math.min(minTemp, student.getScore());
}
averageScore = totalScore / students.size();
```
5. **输出结果**。
```java
System.out.println("最大分: " + maxScore);
System.out.println("最小分: " + minScore);
System.out.println("平均分: " + averageScore);
System.out.println("总分: " + totalScore);
```
阅读全文