본문 바로가기
국비/JAVA

Array를 이용해 성적 관리 프로그램 만들기

by haheaven 2021. 8. 27.

 

 

- Array?

: 배열을 의미하며, 타입이 같은 변수들을 여러 개 모아 놓은 자료형이다(일차원일때)

: 생성 방법 

int[] arr = new int[5] // 배열의 길이가 5인 arr생성 
int[] arr2 = {1,2,3}  //배열의 길이가 3이고, 1,2,3이 들어있는 arr2 생성

: 배열의 길이? 배열이름.length; 를 통해 알 수 있다.

: 배열은 한 번 생성하면 수정이 불가능 

-> 수정 방법 : 새로운 배열 생성 -> 배열 값 복사 -> 참조변수 변경 

 

 

- 2차원 배열 

int[][] arr = new int[3][2];  //2개를 저장할 수 있는 배열 3개 생성

: 2차원 배열 행의 길이 ? arr.length; (nested_loop활용)

: 2차원 배열 열의 길이?  arr[i].length; (nested_loop활용)

 

 

 

 

 


 

 

 

- 2차원 배열 이용해서 성적 관리 프로그램 만들기 

문제 제시 

① 학생 3명의 이름은 "피카츄","뽀로로", "브레드"

  String[] names = new String[] { "피카츄","뽀로로", "브레드"};

 

② 과목 3개 이름은 "국어", "영어", "수학"

  String[] subjects = {"국어", "영어", "수학"};

 

③ 2차원 배열 socres 사용해서 학생은 행, 과목은 열에 넣기 

 int[][] scores = new int[names.length][subjects.length];

 

④ 점수는 사용자가 입력 (Scanner)

 

⑤ 출력형태

        국어    영어   수학   총점    평균
---------------------------------------
피카츄     0     0     0     0      0
뽀로로     0     0     0     0      0
브레드     0     0     0     0      0 
---------------------------------------
총점      0     0     0      0      0

 

- 작성 코드

public class Practice3 {

	private static void quiz1() {
        
        String[] names = new String[] { "피카츄","뽀로로", "브레드"};
		String[] subjects = {"국어", "영어", "수학"};
		int[][] scores = new int[names.length][subjects.length];
		
		Scanner s = new Scanner(System.in);
		
        
      //점수 입력 받는 코드 
	    for(int i=0; i <names.length; i++) {
	    	System.out.println(names[i]+"의 점수입력 ");
	    	for(int j=0; j<subjects.length; j++) {
	    		System.out.print(subjects[j]+ "점수 >> ");
	    	      scores[i][j] = s.nextInt();
	    	}  	
	    }//end of outer_for
		
		
	
		
	//     국어    영어    수학  총점   평균    코드
		System.out.print("\t");
		for(int i=0; i<subjects.length; i++) {
			System.out.print(subjects[i]+"\t");
		}  System.out.println("총점"+"\t"+"평균");
		System.out.println("--------------------------------------------");
		
     int korsum=0; int engsum=0; int mathsum=0;
		
	// 학생이름 국어점수 영어점수 수학점수 총점  평균  코드	
	     for(int i=0; i<scores.length; i++) {
	    	 int sum = 0;                   // 학생이 바뀌면 sum은 리셋
	    	 System.out.print(names[i]+"\t");
	    	 
	    	 for(int j=0; j<scores[i].length; j++) {
	    	     System.out.print(scores[i][j]+"\t");
	    		 sum += scores[i][j];
	    		 
	    	 }  //end of inner
	    	 System.out.print(sum+"\t"+sum/scores[i].length);  
	    	 System.out.println();
	    	 
	    	 korsum += scores[i][0];
	    	 engsum += scores[i][1];
	    	 mathsum += scores[i][2];
	    	 
	     } // end of outer_for
	     System.out.println("---------------------------------------------");
	     System.out.println("총점"+"\t"+korsum +"\t"+engsum+"\t"+mathsum);
			

  }//end of class

	
	public static void main(String[] args) {
		 quiz1();

	}

}

-> 학원 강의 복습 :  점수입력 받기 + 네임과 각 점수 출력하기

     + 생각 더하기  : 총점, 평균 구현 해보기

 

 

'국비 > JAVA' 카테고리의 다른 글

문자 기반 (보조)Stream  (0) 2021.09.02
컬렉션 프레임워크  (0) 2021.09.01
LOMBOK  (0) 2021.09.01
상속_추상클래스와 인터페이스  (0) 2021.08.30
메서드,반복문, 조건문을 이용한 자판기만들기  (0) 2021.08.29

댓글