徐国峰?在看吗?再看给你拳!
学生类
点击查看代码
package prng;
public class Student {
private String id;
private String name;
private String source;
private int grade;
public Student() {
}
public Student(String id, String name, String source, int grade) {
this.id = id;
this.name = name;
this.source = source;
this.grade = grade;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public String getSource() {
return source;
}
public int getGrade() {
return grade;
}
public void setId(String id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setSource(String source) {
this.source = source;
}
public void setGrade(int grade) {
this.grade = grade;
}
}
点击查看代码
package prng;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class uit {
public List<Student> 排序(List<Student> students,String 科目){
List<Student> students1 =new ArrayList<>();
for (Student student:students){
if(student.getSource().equals(科目)){
students1.add(student);
}
}
Collections.sort(students1,new Comparator<Student>() {
public int compare(Student u1, Student u2) {
int diff = u1.getGrade() - u2.getGrade();
if (diff < 0) {
return 1;
}else if (diff > 0) {
return -1;
}
return 0; //相等为0
}
});
return students1;
}
public 平均值最大值最小值 平均值最大值最小值(List<Student> students,String 科目){
students= 排序(students,科目);
平均值最大值最小值 平均值最大值最小值 = new 平均值最大值最小值();
平均值最大值最小值.set最大值(students.get(0).getGrade());
平均值最大值最小值.set最小值(students.get(students.size()-1).getGrade());
int 平均值=0;
for (Student student:students){
平均值+=student.getGrade();
}
平均值=平均值/students.size();
平均值最大值最小值.set平均值(平均值);
return 平均值最大值最小值;
}
}
点击查看代码
package prng;
public class 平均值最大值最小值 {
private int 最大值;
private int 最小值;
private int 平均值;
public int get平均值() {
return 平均值;
}
public int get最小值() {
return 最小值;
}
public int get最大值() {
return 最大值;
}
public void set平均值(int 平均值) {
this.平均值 = 平均值;
}
public void set最大值(int 最大值) {
this.最大值=最大值;
}
public void set最小值(int 最小值) {
this.最小值 = 最小值;
}
}
点击查看代码
import prng.Student;
import prng.uit;
import prng.平均值最大值最小值;
import java.util.*;
import java.io.*;
import java.io.BufferedReader;
import java.io.FileReader;
public class ReadAndWrite {
public static void main(String[] args) throws IOException {
uit uit1=new uit();
// 读取文本里的数据
FileReader f=new FileReader("C:/java/grade.txt");
BufferedReader br=new BufferedReader(f);
// 把文本里的数据存入到arraylist集合中
List<Student> array=new ArrayList<>();
String line;
while((line= br.readLine())!=null){
Student stu=new Student();
String[] strArray=line.split(",");
stu.setId(strArray[0]);
stu.setName(strArray[1]);
stu.setSource(strArray[2]);
stu.setGrade(Integer.parseInt(strArray[3]));
array.add(stu);
}
br.close();
array=uit1.排序(array,"数学");
平均值最大值最小值 peng=new 平均值最大值最小值();
peng=uit1.平均值最大值最小值(array,"数学");
System.out.println(peng.get平均值()+" "+peng.get最大值()+" "+peng.get最小值());
System.out.println("学号\t姓名\t科目\t成绩");
for(int x=0;x<array.size();x++){
Student stu=array.get(x);
System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getSource()+"\t"+stu.getGrade());
}
}
}

浙公网安备 33010602011771号