[자바] 점수를 TEXT로 입력받아 처리하는 프로그램
답변올릴려고 했더니 먼저 올린 답변이 있어서 여기에 올린다.
만드는데 정확하게 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