62,628
社区成员
发帖
与我相关
我的任务
分享class Stud {
private String name; //学生
private String c1_name; //科目1名称
private int c1_score; //科目1分数
private String c2_name; //科目2名称
private int c2_score; //科目2分数
private String c3_name; //科目3名称
private int c3_score; //科目3分数
private String c4_name; //科目4名称
private int c4_score; //科目4分数
private int total; //总分
private double avg; //平均分
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getC1_name() {
return c1_name;
}
public void setC1_name(String c1_name) {
this.c1_name = c1_name;
}
public int getC1_score() {
return c1_score;
}
public void setC1_score(int c1_score) {
this.c1_score = c1_score;
}
public String getC2_name() {
return c2_name;
}
public void setC2_name(String c2_name) {
this.c2_name = c2_name;
}
public int getC2_score() {
return c2_score;
}
public void setC2_score(int c2_score) {
this.c2_score = c2_score;
}
public String getC3_name() {
return c3_name;
}
public void setC3_name(String c3_name) {
this.c3_name = c3_name;
}
public int getC3_score() {
return c3_score;
}
public void setC3_score(int c3_score) {
this.c3_score = c3_score;
}
public String getC4_name() {
return c4_name;
}
public void setC4_name(String c4_name) {
this.c4_name = c4_name;
}
public int getC4_score() {
return c4_score;
}
public void setC4_score(int c4_score) {
this.c4_score = c4_score;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public double getAvg() {
return avg;
}
public void setAvg(double avg) {
this.avg = avg;
}
public Stud() {
// TODO Auto-generated constructor stub
}
public Stud(String name, String c1_name, int c1_score, String c2_name, int c2_score, String c3_name, int c3_score,
String c4_name, int c4_score, int total, double avg) {
super();
this.name = name;
this.c1_name = c1_name;
this.c1_score = c1_score;
this.c2_name = c2_name;
this.c2_score = c2_score;
this.c3_name = c3_name;
this.c3_score = c3_score;
this.c4_name = c4_name;
this.c4_score = c4_score;
this.total = total;
this.avg = avg;
}
@Override
public String toString() {
return name + " " + c1_name + " " + c1_score + " " + c2_name
+ " " + c2_score + " " + c3_name + " " + c3_score + " " + c4_name
+ " " + c4_score + " " + total + " " + avg ;
}
}
public class Stud_score {
public static void main(String[] args) throws IOException {
int n=0; //n用来统计学生的人数
List<Stud> list=new ArrayList<>();
//用字节流打开文件student.txt
FileInputStream fis=new FileInputStream("student.txt");
//用转换流把字节流转换成字符流
InputStreamReader isr=new InputStreamReader(fis);
//转换成能够按行读取的字符流
BufferedReader br=new BufferedReader(isr);
String line=null;
while( (line=br.readLine()) !=null){
//将这一行学生数据拆分
String[]t=line.split("\\s+");
String name=t[0]; //学生
String c1_name=t[1]; //科目1名称
int c1_score=Integer.parseInt(t[2]); //科目1分数
String c2_name=t[3]; //科目2名称
int c2_score=Integer.parseInt(t[4]); //科目2分数
String c3_name=t[5]; //科目3名称
int c3_score=Integer.parseInt(t[6]); //科目3分数
String c4_name=t[7]; //科目4名称
int c4_score=Integer.parseInt(t[8]); //科目4分数
int total=c1_score+c2_score+c3_score+c4_score; //总分
double avg=total/4.0; //平均分
//生成一个学生对象
Stud stud=new Stud(name, c1_name, c1_score, c2_name, c2_score, c3_name, c3_score, c4_name, c4_score, total, avg);
//将这个学生对象加入集合
list.add(stud);
n++; //人数加1
}
br.close();
//按总分进行排序
Collections.sort(list,new Comparator<Stud>() {
@Override
public int compare(Stud o1, Stud o2) {
return o2.getTotal()-o1.getTotal();
}
});
//按行写入文件student_score.txt
PrintWriter pw=new PrintWriter("student_score.txt");
for (Stud stud : list) {
pw.println(stud);
}
pw.close();
//对计算机科目按分数由高到低排序
Collections.sort(list,new Comparator<Stud>() {
@Override
public int compare(Stud o1, Stud o2) {
return o2.getC4_score()-o1.getC4_score();
}
});
//将计算机分数写入文件,名字叫 计算机.txt
pw=new PrintWriter("计算机.txt");
double ave=0; //用来存放计算机科目的平均分
for (Stud stud : list) {
pw.println(stud.getName()+" "+stud.getC4_name()+" "+stud.getC4_score());
ave=ave+stud.getC4_score();
}
ave=ave/n; //计算出平均分
pw.println("平均分:"+ave);
pw.close();
}
}