예제)
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
// 성적처리 프로그램
public class Test5 {
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(
new InputStreamReader(System.in));
int inwon;
String name[];
int score[][];
int tot[], rank[];
do{
System.out.print("처리할 인원수 ? ");
inwon=Integer.parseInt(br.readLine());
}while(inwon<1||inwon>100);
// 배열의 메모리 할당
// 주의 : 배열의 크기를 결정하면 동적으로 크기를 변경할수없다.
name=new String[inwon];
score=new int[inwon][3];
tot=new int[inwon];
rank=new int[inwon];
String title[]={"국어 ? ", "영어 ? ", "수학 ? "};
// inwon 수만큼의 자료를 입력 받는다.
for(int i=0; i<inwon; i++) {
System.out.print((i+1)+"번째 이름 ? ");
name[i]=br.readLine();
for(int j=0; j<score[i].length; j++) {
System.out.print(title[j]);
score[i][j]=Integer.parseInt(br.readLine());
// 총점 계산(int 배열은 초기화 시키지 않으면 0으로 초기화)
tot[i]+=score[i][j];
}
// 순위의 초기값은 1로
rank[i]=1;
} // for(int i=0_end -> 브레스의 끝이 어디인지 확인할 수 있게 처음부분을 써놓음
// 순위를 계산한다.
for(int i=0; i<inwon-1; i++) {
for(int j=i+1; j<inwon; j++) {
if(tot[i] > tot[j])
rank[j]++;
else if(tot[i] < tot[j])
rank[i]++;
}
}
// 자료를 출력 한다.
System.out.println("\n\t\t성적처리");
System.out.println("이름 국어 영어 수학 총점 석차");
for(int i=0; i<inwon; i++) {
System.out.printf("%-10s", name[i]);
for(int j=0; j<score[i].length; j++) {
System.out.printf("%5d", score[i][j]);
}
System.out.printf("%5d%5d\n", tot[i], rank[i]);
}
}
}
결과) 인원수와 이름 국어,영어,수학 이름을 인원수에 맞춰 입력하면 성적표가 점수와 학점,석차가 계산되어 출력됨
'자바 > 문법' 카테고리의 다른 글
난수(무작위 수) 출력 프로그램 (0) | 2013.05.11 |
---|---|
입력된 여러 숫자를 작은 순서대로 정리하는 프로그램 (0) | 2013.05.11 |
배열을 이용한 요일 계산기 (0) | 2013.05.11 |
배열을 사용한 달력만들기 (0) | 2013.05.11 |
배열 사용방법과 향상된 for문 (0) | 2013.05.11 |