-
쉽게 배우는 자바 프로그래밍 2판 5장 도전문제JAVA/연습문제 2022. 10. 13. 15:20반응형
# 개발 공부하는 초보자가 작성한 답안이니 정답이 아닐 수 있습니다!!!
1. 학생 수와 점수를 입력하면 각 학생의 성적을 출력하는 프로그램을 작성해보자.
1-1. 학생 수와 점수를 위한 배열 변수를 선언한다. 그리고 Scanner 클래스도 선언해서 키보드로 데이터를 받을 준비를 한다.
📢주어진 값📢 int numOfStudents = 0; int scores[]; Scanner inScanner = new Scanner(System.in);
1-2. 키보드로 학생 수를 입력받고 입력된 학생 수에 해당하는 크기의 scores 배열을 생성한다.
📢주어진 값📢 numOfStudents = inScanner.nextInt(); scores = ______________;
1-3. for 문을 이용해 학생 수만큼 키보드로 성적을 입력받은 후 출력하도록 한다. 그리고 프로그램을 실행한 후 결과를 확인한다.
📢주어진 값📢 System.out.println(numOfStudents + "명의 학생 성적을 입력하세요."); for (int i = 0; i < scores.length; i++) { // 키보드 값을 배열에 대입하는 코드 System.out.println(numOfStudents + "명의 학생 성적은 다음과 같습니다."); for (int i = 0; i < scores.length; i++) { // 배열 원소를 출력하는 코드 }
🧤정답🧤 public static void main(String[] args) { int numOfStudents = 0; int scoreOfStudents = 0; int scores[]; Scanner inScanner = new Scanner(System.in); System.out.printf("학생 수? "); numOfStudents = inScanner.nextInt(); scores = new int[numOfStudents]; System.out.println(numOfStudents + "명의 학생 성적을 입력하세요."); for (int i = 0; i < scores.length; i++) { scoreOfStudents = inScanner.nextInt(); scores[i] = scoreOfStudents; System.out.println(scores[i]); } System.out.println(numOfStudents + "명의 학생 성적은 다음과 같습니다."); for (int i = 0; i < scores.length; i++) { System.out.print(scores[i] + " "); } } }
2. 1번의 프로그램을 for문과 if~else문을 사용해 학생들의 등급을 출력하는 프로그램으로 확장해보자. 그리고 이번에는 for~each 문도 사용해보자.
2-1. 1번 코드에서 for~each 문으로 사용할 수 있는 곳은 바꿔본다.
🧤정답🧤 public static void main(String[] args) { int numOfStudents = 0; int scoreOfStudents = 0; int scores[]; Scanner inScanner = new Scanner(System.in); System.out.printf("학생 수? "); numOfStudents = inScanner.nextInt(); scores = new int[numOfStudents]; System.out.println(numOfStudents + "명의 학생 성적을 입력하세요."); for (int i = 0; i < scores.length; i++) { scoreOfStudents = inScanner.nextInt(); scores[i] = scoreOfStudents; System.out.println(scores[i]); } System.out.println(numOfStudents + "명의 학생 성적은 다음과 같습니다."); for (int i : scores) { System.out.print(i + " "); } } }
2-2. 1번에서 작성한 프로그램에서 메인 메서드의 마지막에 다음과 같은 for문을 추가한다.
📢주어진 값📢 for (int i = 0; _________; i++){ }
2-3. if~else문을 사용해 scores 배열의 각 원소에 대하여 점수 구간별로 등급을 출력하는 코드를 추가한다. 그리고 프로그램을 실행한 후 결과를 확인한다.
📢주어진 값📢 if (______________) System.out.println((i + 1) + "번 학생의 등급은 A입니다."); else if ...
🧤정답🧤 public static void main(String[] args) { int numOfStudents = 0; int scoreOfStudents = 0; int scores[]; int scores2[]; Scanner inScanner = new Scanner(System.in); System.out.printf("학생 수? "); numOfStudents = inScanner.nextInt(); scores = new int[numOfStudents]; scores2 = new int[numOfStudents]; System.out.println(numOfStudents + "명의 학생 성적을 입력하세요."); for (int i = 0; i < scores.length; i++) { scoreOfStudents = inScanner.nextInt(); scores[i] = scoreOfStudents; } System.out.println(numOfStudents + "명의 학생 성적은 다음과 같습니다."); for (int i = 0; i < scores.length; i++) { System.out.print(scores[i] + " "); } System.out.println(); for (int i = 0; i < scores2.length; i++) { scores2[i] = i; } for (int i : scores2) { if (scores[i] >= 90) { System.out.println((i + 1) + "번 학생의 등급은 A입니다."); } else if (scores[i] >= 80) { System.out.println((i + 1) + "번 학생의 등급은 B입니다."); } else if (scores[i] >= 70) { System.out.println((i + 1) + "번 학생의 등급은 C입니다."); } else if (scores[i] >= 60) { System.out.println((i + 1) + "번 학생의 등급은 D입니다."); } else { System.out.println((i + 1) + "번 학생의 등급은 E입니다."); } } } }
3. 2의 프로그램에서 등급에 대한 내용을 열거 타입을 사용하여 수정해보자.
3-1. 2번 코드에서 다음과 같은 내용을 열거 타입으로 추가한다.
📢주어진 값📢 A는 최우수 B는 우수 C는 보통 D는 미흡 E는 탈락
3-2. 2번 코드에서 학생의 성적에 대한 등급을 화면에 나타낼 때 A혹은 B와 같은 등급 대신에 '최우수'. '우수' 등으로 나타나도록 수정하라. 그리고 프로그램을 실행한 후 다음 결과처럼 나타나는지 확인하라.
🧤정답🧤 public enum Grade { A("최우수"), B("우수"), C("보통"), D("미흡"), E("탈락"); private String s; private Grade(String s) { this.s = s; } public String toString() { return s; } } public static void main(String[] args) { int numOfStudents = 0; int scoreOfStudents = 0; int scores[]; Grade grade; Scanner inScanner = new Scanner(System.in); System.out.printf("학생 수? "); numOfStudents = inScanner.nextInt(); scores = new int[numOfStudents]; System.out.println(numOfStudents + "명의 학생 성적을 입력하세요."); for (int i = 0; i < scores.length; i++) { scoreOfStudents = inScanner.nextInt(); scores[i] = scoreOfStudents; } System.out.println(numOfStudents + "명의 학생 성적은 다음과 같습니다."); for (int i = 0; i < scores.length; i++) { System.out.print(scores[i] + " "); } System.out.println(); for (int i = 0; i < scores.length; i++) { if (scores[i] >= 90) { grade = Grade.valueOf("A"); System.out.println((i + 1) + "번 학생의 등급은 " + grade + "입니다."); } else if (scores[i] >= 80) { grade = Grade.valueOf("B"); System.out.println((i + 1) + "번 학생의 등급은 " + grade + "입니다."); } else if (scores[i] >= 70) { grade = Grade.valueOf("C"); System.out.println((i + 1) + "번 학생의 등급은 " + grade + "입니다."); } else if (scores[i] >= 60) { grade = Grade.valueOf("D"); System.out.println((i + 1) + "번 학생의 등급은 " + grade + "입니다."); } else { grade = Grade.valueOf("E"); System.out.println((i + 1) + "번 학생의 등급은 " + grade + "입니다."); } } } }
반응형'JAVA > 연습문제' 카테고리의 다른 글
쉽게 배우는 자바 프로그래밍 2판 5장 프로그래밍 문제 Part.2 (6~9번) (0) 2022.10.14 쉽게 배우는 자바 프로그래밍 2판 5장 프로그래밍 문제 Part.1 (1~5번) (0) 2022.10.13 쉽게 배우는 자바 프로그래밍 2판 5장 연습문제 Part.1 (1번 ~ 5번) (0) 2022.10.13 쉽게 배우는 자바 프로그래밍 2판 5장 연습문제 Part.2 (6번 ~ 11번) (1) 2022.10.13 쉽게 배우는 자바 프로그래밍 2판 4장 프로그래밍 문제 (6번 ~ 8번) (2) 2022.10.08