[문제]
Scanner 클래스를 사용하여 6개 학점(‘A’, ‘B’, ‘C’, ‘D’, ‘F’)을 문자로 입력받아 ArrayList에 저장하고, ArrayList를 검색하여 학점을 점수(A=4.0, B=3.0, C=2.0, D=1.0, F=0)로 변환하여 평균을 출력하는 프로그램을 작성하라.

코드

import java.util.*;

public class ArrayListSc {	
	public static void main(String[] args) {
		ArrayList<Character> a = new ArrayList<Character>();
		Scanner scanner = new Scanner(System.in);

		System.out.print("6개의 학점을 빈 칸으로 분리 입력(A/B/C/D/F)>>");
		for(int i=0; i<6; i++) {
			String s = scanner.next();
			if(s.length() > 1) {
				System.out.println("Not character");
				scanner.close();
				return;
			}
			char ch = s.charAt(0);
			if((ch >= 'A' && ch <= 'D') || ch == 'F')
				a.add(ch);
			else {
				System.out.println("Invalid");
				scanner.close();
				return;
			}
		}		
		double score=0.0;
		for(int i=0; i<a.size(); i++) {
			char ch = a.get(i);
			switch(ch) {
				case 'A' : score += 4.0; break;
				case 'B' : score += 3.0; break;
				case 'C' : score += 2.0; break;
				case 'D' : score += 1.0; break;
				case 'F' : score += 0.0; break;			
			}
		}		
		System.out.print(score/a.size());
		scanner.close();
	}
}

실행결과

6개의 학점을  칸으로 분리 입력(A/B/C/D/F)>>A C A B F D
2.3333333333333335

태그:

Cpp

카테고리:

업데이트:

댓글남기기