【Java例题】7.5 文件题2-学生成绩统计


5.学生成绩统计。
已有一个学生成绩文件,含有多位学生的各三门课的成绩;
读取这个文件中的每位学生的三门课成绩,然后计算均分;
最后对这些均分按照大于或小于75分的界限,分别写到另两个文件中。

package chapter7;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;

public class demo5 {
    public static void main(String[] args) {
        try {
            student stu[]=new student[10];
            for(int i=0;i<10;i++) {
                stu[i]=new student();//必须挨个实例化对象数组
            }
            Scanner sc=new Scanner(new File("score1.txt"));
            PrintStream out1=new PrintStream(new File("score3.txt"));
            PrintStream out2=new PrintStream(new File("score4.txt"));
            
            for(int i=0;i<10;i++) {
                if(sc.hasNext()) {
                    stu[i].name=sc.next();
                    stu[i].sco1=Integer.parseInt(sc.next());
                    stu[i].sco2=Integer.parseInt(sc.next());
                    stu[i].sco3=Integer.parseInt(sc.next());
                }
            }
            for(int i=0;i<10;i++) {
                if(stu[i].name==null) {
                    break;
                }
                if(stu[i].getarg()>=75) {
                    out1.println(stu[i].name);
                }else {
                    out2.println(stu[i].name);
                }
            }
            out1.close();
            out2.close();
            sc.close();
        }catch(FileNotFoundException e) {
            System.out.println("file not found");
        }catch(Exception e) {
            System.out.println(e);
        }
    }
    
    static class student{
        String name;
        int sco1;
        int sco2;
        int sco3;
        public int getarg() {//用函数定义arg而不是int arg=sco1+sco2+sco3;因为这样不初始化sco123,调用arg时默认为零
            return (sco1+sco2+sco3)/3;
        }
    }
}

 

posted @ 2019-04-17 15:55  海底淤泥  阅读(570)  评论(0编辑  收藏  举报