题目四请按以下要求编写程序:1 定义一个学员类有以下属性:姓名、性别、年龄、分数无参、全参构造方法getset方法2 定义main方法定义一个存储Student的集合并初始化一些数据:1 ListStudent stuList = new ArrayList;2 stuListaddnew Student迪丽热巴女1899;3 stuListaddnew Student古力娜扎女1998;4 st
: 迪丽热巴,女,18,99 古力娜扎,女,19,98 周杰伦,男,20,88 蔡徐坤,男,19,78 2. 定义一个文件字符输入流FileReader,读取上一步保存的学员信息文件,将 每行学员信息解析成一个Student对象,并添加到集合中 3. 遍历集合,输出每个学员的信息 4. 计算集合中所有学员分数的平均值并输出
参考代码如下:
import java.io.*;
import java.util.ArrayList;
import java.util.List;
class Student {
private String name;
private String gender;
private int age;
private int score;
public Student() {}
public Student(String name, String gender, int age, int score) {
this.name = name;
this.gender = gender;
this.age = age;
this.score = score;
}
// getter/setter
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getGender() { return gender; }
public void setGender(String gender) { this.gender = gender; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public int getScore() { return score; }
public void setScore(int score) { this.score = score; }
}
public class Main {
public static void main(String[] args) {
// 初始化学员集合
List<Student> stuList = new ArrayList<>();
stuList.add(new Student("迪丽热巴","女",18,99));
stuList.add(new Student("古力娜扎","女",19,98));
stuList.add(new Student("周杰伦","男",20,88));
stuList.add(new Student("蔡徐坤","男",19,78));
// 写入文件
try (FileWriter writer = new FileWriter("a.txt")) {
for (Student stu : stuList) {
writer.write(stu.getName() + "," + stu.getGender() + "," + stu.getAge() + "," + stu.getScore() + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
// 读取文件
try (FileReader reader = new FileReader("a.txt");
BufferedReader br = new BufferedReader(reader)) {
String line;
while ((line = br.readLine()) != null) {
String[] fields = line.split(",");
Student stu = new Student(fields[0], fields[1], Integer.parseInt(fields[2]), Integer.parseInt(fields[3]));
stuList.add(stu);
}
} catch (IOException e) {
e.printStackTrace();
}
// 输出学员信息
for (Student stu : stuList) {
System.out.println(stu.getName() + " " + stu.getGender() + " " + stu.getAge() + " " + stu.getScore());
}
// 计算平均分数
double sum = 0;
for (Student stu : stuList) {
sum += stu.getScore();
}
double avg = sum / stuList.size();
System.out.println("平均分数:" + avg);
}
}
``
原文地址: https://www.cveoy.top/t/topic/fFdR 著作权归作者所有。请勿转载和采集!