2013년 7월 1일 월요일

(130701) 6일차 FileTestEx2.java (6일차 5교시 파일 텍스트 문제)

 - test2.txt








 - 소스

import java.io.*;
import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.Vector;

public class FileTestEx2 {

public static void main(String[] args) {

/*
* test2.txt 파일을 이용하여 아래와 같은 프로그램을 하시오
* 1. 5명의 총점과 평균을 화면에 표시하시오
* 2. 총점을 기준으로 등수를 표시하시오
*/

File f = new File("test2.txt");

try{
Scanner sc = new Scanner(f);
Vector<String> s = new Vector<>();
while(sc.hasNext()) // 다음 가져올 라인이 있으면 true값을 반환
s.add(sc.nextLine());

for(int i = 0; i < s.size() ; i++)
System.out.println(s.get(i));

Vector<String> s2 = new Vector<>();
for(int i=0 ; i < s.size() ; i++){
StringTokenizer st = new StringTokenizer(s.get(i)," ");
while(st.hasMoreTokens()){
s2.add(st.nextToken()); // 공백이 여러개든, 한 개든 추출해서 List의 Vector에 삽입
}
}

System.out.println();
Vector<Integer> s3 = new Vector<>();
for(int i = 0; i < 5 ; i++){
int total = 0;
for(int j = 2 ; j < 5 ; j++){
int val = Integer.parseInt(s2.get((i*5)+j));
total = val + total;
}
s3.add(total);
System.out.println(i+1 +"번 학생 총점 : " + total);
System.out.println(i+1 +"번 학생 평균 : " + total/3);
}

System.out.println();

Vector<Integer> s4 = new Vector<>();
for(int i=0 ; i<s3.size() ; i++){
s4.add(s3.get(i));
// System.out.println(s3.get(i));
// System.out.println(s4.get(i));
}

for(int i=0 ; i<s3.size()-1 ; i++){ // 총점이 높은 사람부터 내림차순으로 정렬
for(int j=i+1 ; j<s3.size() ; j++){
if(s3.get(i) < s3.get(j)){
int temp = s3.get(i);
s3.set(i, s3.get(j));
s3.set(j, temp);
}
}
}

for(int i=0 ; i<s4.size() ; i++){ // 총점과 순위를 매칭시킴
for(int j=0 ; j<s3.size() ; j++){
if((s4.get(i)).equals(s3.get(j)))
System.out.println(i+1 +"번 학생 : " + (j+1) +"등");
}
}

} catch(FileNotFoundException e){
e.printStackTrace();
}
}
}


 - 결과