본문 바로가기

자바/문법

성적표 출력하는 프로그램

예제)


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]);

}

}

}


결과) 인원수와 이름 국어,영어,수학 이름을 인원수에 맞춰 입력하면 성적표가 점수와 학점,석차가 계산되어 출력됨