访问student.csv文件,统计总人数、男生人数、女生人数、班级最高分和最低分、男生中的最高分和女生中的最高分。 说明:student.csv文件每一行的数据为班级名称、学号、姓名、性别、分数
时间: 2024-09-27 13:10:47 浏览: 39
为了读取并分析`student.csv`文件中的数据,我们可以使用Java的CSV库(如OpenCSV)来帮助处理文件。首先确保已添加必要的依赖。以下是一个简单的步骤示例:
1. 添加OpenCSV依赖(如果你使用Maven或Gradle,可以在pom.xml或build.gradle文件中添加相应的库依赖)。
对于Maven:
```xml
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.5.2</version>
</dependency>
```
对于Gradle:
```gradle
implementation 'com.opencsv:opencsv:5.5.2'
```
2. 创建一个Java类,用于加载和解析数据:
```java
import com.opencsv.CSVReader;
import java.io.FileReader;
import java.io.IOException;
public class StudentAnalyzer {
private static final String FILE_NAME = "student.csv";
public static void main(String[] args) {
try (CSVReader reader = new CSVReader(new FileReader(FILE_NAME))) {
// 读取表头
String[] header = reader.readNext();
int totalStudents = 0;
int maleCount = 0;
int femaleCount = 0;
int maxScore = Integer.MIN_VALUE;
int minScore = Integer.MAX_VALUE;
int maleMaxScore = Integer.MIN_VALUE;
int femaleMaxScore = Integer.MIN_VALUE;
while ((header = reader.readNext()) != null) {
totalStudents++;
String gender = header[3]; // 假设性别列在第四个位置
if (gender.equals("男")) {
maleCount++;
int score = Integer.parseInt(header[4]); // 分数列在第五个位置
if (score > maleMaxScore) {
maleMaxScore = score;
}
if (score > minScore) {
minScore = score; // 更新最低分
} else {
femaleCount++;
int score = Integer.parseInt(header[4]);
if (score > femaleMaxScore) {
femaleMaxScore = score;
}
if (score > minScore) {
minScore = score;
}
}
}
System.out.println("总人数: " + totalStudents);
System.out.println("男生人数: " + maleCount);
System.out.println("女生人数: " + femaleCount);
System.out.println("班级最高分: " + maxScore);
System.out.println("男生最高分: " + maleMaxScore);
System.out.println("女生最高分: " + femaleMaxScore);
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
}
}
```
这个例子假设文件的第一行是表头,而性别和分数分别位于第四和第五列。你需要根据实际文件结构进行调整。运行此程序后,你将得到所需的统计数据。
阅读全文