course/지식인

[자바] 점수를 TEXT로 입력받아 처리하는 프로그램

jethL 2016. 1. 5. 11:47

답변올릴려고 했더니 먼저 올린 답변이 있어서 여기에 올린다.

만드는데 정확하게 30분정도 걸렸는데...  쩝..

 

1. TEXT


name no kor mat eng
aaa 1 80 90 100
bbb 2 75 88 69
ccc 3 100 98 97
ddd 4 76 68 69



2. CLASS


import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;


public class test_001 {
  public static void main(String[] args) {

    try{
      BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("D:/work/s001.txt")));
      StringBuilder contents = new StringBuilder();
      String inputLine;


      String[] all;
      String[] sungjuk = null;
      int[] sugjuckAvg = null;
   
      String name;
      int no = 0;
   
      int kor = 0;
      int mat = 0;
      int eng = 0;
      int hap = 0;
      int avg = 0;
   
      int min = 0;
      int max = 0;
   
      while ((inputLine = br.readLine()) != null) {
        contents.append(inputLine);
        contents.append("\n");
      }
   
      all = contents.toString().split("\n");
      sugjuckAvg = new int[all.length];
   
      for(int i = 1;i < all.length; i++){
        sungjuk = all[i].split(" ");
    
        name = sungjuk[0];
        no = Integer.parseInt(sungjuk[1]);
        kor = Integer.parseInt(sungjuk[2]);
        mat = Integer.parseInt(sungjuk[3]);
        eng = Integer.parseInt(sungjuk[4]);
    
        hap = kor + mat + eng;
        avg = hap / 3;
        System.out.println("이름 : " + name + ", 번호 : " + no + ", hap : " + hap + ", 평균 : " + avg );
    
        sugjuckAvg[i] = avg;
      }
   
      for (int i = 1; i < sugjuckAvg.length; i++) {
        if (i == 1){
          min = sugjuckAvg[i];  // for 1회전때는 무조건 첫번째 숫자를 min에 넣습니다.
        }
        if (sugjuckAvg[i] > max){  // for 1회전 이상일때 max 의 값과 비교해서 크면 max 에 값을 넣습니다.
          max = sugjuckAvg[i];
        }
        if (sugjuckAvg[i] < min){ // for가 2회전 이상일때 min 의 값과 비교해서  작으면 min 에 값을 넣습니다.
          min = sugjuckAvg[i];
        }
      }
      System.out.println("최대 :" + max);
      System.out.println("최소 :" + min);
   
      br.close();
    }catch(Exception e){
      System.out.println("error~");
    }
  }
}



3. RUN


이름 : aaa, 번호 : 1, hap : 270, 평균 : 90
이름 : bbb, 번호 : 2, hap : 232, 평균 : 77
이름 : ccc, 번호 : 3, hap : 295, 평균 : 98
이름 : ddd, 번호 : 4, hap : 213, 평균 : 71
최대 :98
최소 :71