• 검색 결과가 없습니다.

함수 2

N/A
N/A
Protected

Academic year: 2022

Share "함수 2"

Copied!
25
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

제 7 주:

©

J.-H. Kang, CNU

강 지 훈 jhkang@cnu.ac.kr 충남대학교 컴퓨터공학과

©

J.-H. Kang, CNU

함수 2

(2)

©

J.-H. Kang, CNU

[제 7 주 실습]

성적 처리

2

(3)

©

J.-H. Kang, CNU

 성적처리: 단계별로 해결하자

 제1단계 [프로그램 7-1]

 점수를 학점으로 변환하기

 제2단계 [프로그램 7-2]

 학점을 평점으로 바꾸기

 제3단계 [프로그램 7-3]

 세 과목 점수 입력 처리하기

 제4단계 [프로그램 7-4]

 평균평점 구하기

[실습] 성적처리 3

(4)

©

J.-H. Kang, CNU

[프로그램 7-1]

점수를 학점으로 변환하기

[실습 7-1] 점수를 학점으로 4

(5)

©

J.-H. Kang, CNU

 제1단계 [프로그램 7-1]

 입력

 0부터 100 사이의 정수로 된 점수가 학생 수 만큼 입력

 100보다 큰 점수가 입력되면 다음과 같은 오류 메시지를 내보낸 다.

 입력의 종료 조건

 음수의 점수가 입력되면 입력은 종료되는 것으로 본다. 더 이상 점수는 입력되지 않는다.

 출력

 입력된 점수와 그에 해당하는 학점을 출력한다.

 마지막에 학점별 학생수를 출력한다.

[실습 7-1] 점수를 학점으로 5

오류: 100이 넘어서, 정상적인 점수가 아닙니다.

(6)

©

J.-H. Kang, CNU

 프로그램 7-1 [2]

 출력의 예

[실습 7-1] 점수를 학점으로 6 - 점수를 입력하시오: 82

점수: 82, 학점: B

- 점수를 입력하시오: 45 점수: 45, 학점: F

- 점수를 입력하시오: 93 점수: 93, 학점: A

- 점수를 입력하시오: 102

오류: 100이 넘어서, 정상적인 점수가 아닙니다.

- 점수를 입력하시오: 66 점수: 66, 학점: D

- 점수를 입력하시오: 87 점수: 87, 학점: B

- 점수를 입력하시오: -1

음의 점수가 입력되어 입력을 종료합니다.

A는 1명입니다.

B는 2명입니다.

C는 0명입니다.

D는 1명입니다.

F는 1명입니다.

프로그램을 종료합니다.

(7)

©

J.-H. Kang, CNU

 점수 입력을 함수로 [1]

 점수 하나 입력 받는 것을 함수로 만들어 사용한다.

 private int inputScore()

함수에 주어지는 입력값은 없다.

출력값, 즉 리턴값은 키보드에서 입력 받은 한 개의 점수

점수가 올바르게 입력되었는지는 검사하지 않는다.

입력은 Scanner의 nextInt()를 사용

입력 전에 Prompt message를 다음과 같이 내보낸다.

 사용법:

int score;

score = inputScore();

[실습 7-1] 점수를 학점으로 7

- 점수를 입력하시오:

(8)

©

J.-H. Kang, CNU

 점수 입력을 함수로 [2]

 함수를 이용하지 않을 경우에는?

int score;

System.out.print(“>점수를 입력하시오: “);

score = sScanner.nextInt();

while (score >= 0) { if (score >100) {

System.out.print(“오류: 100이 넘어서, 정상적인 점수가 아닙니다.”) ; } else {

/* 점수가 정상이다 */

/* 필요한 일을 한다 */

……

} System.out.print(“>점수를 입력하시오: “);

score = sScanner.nextInt();

}

[실습 7-1] 점수를 학점으로 8

(9)

©

J.-H. Kang, CNU

 점수 입력을 함수로 [2]

 함수를 이용할 경우에는?

int score;

score = inputScore();

while (score >= 0) { if (score >100) {

System.out.print(“오류: 100이 넘어서, 정상적인 점수가 아닙니다.”) ; } else {

/* 점수가 정상이다 */

/* 필요한 일을 한다 */

……

}

score = inputScore();

}

[실습 7-1] 점수를 학점으로 9

(10)

©

J.-H. Kang, CNU

 점수를 학점으로 변환

 점수를 학점으로 변환하는 기준

 90~100: A

 80~89: B

 70~79: C

 60~69: D

 0~59: F

 함수를 사용하자!

 private char score2Grade(int score)

함수의 입력: 양의 정수 (0~100)

 이 함수의 입력 값에 오류는 없는 것으로 한다.

출력(return value): 점수에 해당하는 학점 (‘A’~’F’ 중의 하나)

 사용법:

char grade;

grade = score2Grade(85); /*변수 grade의 값은 ‘B’가 된다. */

[실습 7-1] 점수를 학점으로 10

(11)

©

J.-H. Kang, CNU

[프로그램 7-2]

학점을 평점으로 변환하기

[실습 7-2] 학점을 평점으로 11

(12)

©

J.-H. Kang, CNU

 제2단계 [프로그램 7-2]

 문제

 [프로그램 7-1]에서는 점수를 입력받아 학점으로 변환했 다.

 여기서는 학점을 평점으로 또 변환한다.

 점수 ⇒ 학점 ⇒ 평점

 입력의 종료 조건

 음수의 점수가 입력되면 입력은 종료되는 것으로 본다. 더 이상 점수는 입력되지 않는다.

 출력

 입력된 점수와 그에 해당하는 학점과 평점을 출력한다.

 마지막에 학점별 학생수를 출력한다.

[실습 7-2] 학점을 평점으로 12

(13)

©

J.-H. Kang, CNU

 프로그램 7-2 [2]

 출력의 예

[실습 7-2] 학점을 평점으로 13 - 점수를 입력하시오: 82

점수: 82, 학점: B, 평점: 3.0 - 점수를 입력하시오: 45 점수: 45, 학점: F , 평점: 0.0 - 점수를 입력하시오: 93 점수: 93, 학점: A , 평점: 4.0 - 점수를 입력하시오: 102

오류: 100이 넘어서, 정상적인 점수가 아닙니다.

- 점수를 입력하시오: 66 점수: 66, 학점: D , 평점: 1.0 - 점수를 입력하시오: 87 점수: 87, 학점: B , 평점: 3.0 - 점수를 입력하시오: -1

음의 점수가 입력되어 입력을 종료합니다.

A는 1명입니다.

B는 2명입니다.

C는 0명입니다.

D는 1명입니다.

F는 1명입니다.

프로그램을 종료합니다.

(14)

©

J.-H. Kang, CNU

 학점을 평점으로 변환

 학점을 평점으로 변환하는 기준

 A: 4.0

 B: 3.0

 C: 2.0

 D: 1.0

 F: 0.0

 함수를 사용하자!

 private double grade2Point (char grade)

함수의 입력: 학점 (‘A’~’F’)

 이 함수의 입력 값에 오류는 없는 것으로 한다.

출력(return value): 학점에 해당하는 평점 (0.0~4.0)

 사용법:

double point;

point = grade2Point(‘B’); /*변수 point의 값은 3.0이 된다. */

[실습 7-1-2] 학점을 평점으로 14

(15)

©

J.-H. Kang, CNU

[프로그램 7-3]

3 과목 처리하기

[실습 7-1-3] 3과목 처리하기 15

(16)

©

J.-H. Kang, CNU

 제3단계 [프로그램 7-3]

 문제

 [프로그램 7-2]에서는 한번에 하나의 점수만 입력받았다.

 여기서는 한번에 3 과목의 점수를 입력 받는다.

 과목은 Korean, English, Computer

 입력의 종료 조건

 음수의 점수가 입력되면 입력은 종료되는 것으로 본다. 더 이상 점수는 입력되지 않는다.

 출력

 입력된 점수와 그에 해당하는 학점과 평점을 출력한다.

 학점별 인원수는 출력하지 않는다.

[실습 7-1-3] 3과목 처리하기 16

(17)

©

J.-H. Kang, CNU

 프로그램 7-3 [3]

 출력의 예

[실습 7-1-3] 3과목 처리하기 17

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력합니다:

- 점수를 입력하시오: 82 - 점수를 입력하시오: 77 - 점수를 입력하시오: 90

[국 어] 점수: 82, 학점: B, 평점: 3.0 [영 어] 점수: 77, 학점: C, 평점: 2.0 [컴퓨터] 점수: 90, 학점: A, 평점: 4.0

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력합니다:

- 점수를 입력하시오: 45 - 점수를 입력하시오: 66 - 점수를 입력하시오: 88

[국 어] 점수: 45, 학점: F , 평점: 0.0 [영 어] 점수: 77, 학점: C, 평점: 2.0 [컴퓨터] 점수: 90, 학점: A, 평점: 4.0

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력합니다:

- 점수를 입력하시오: 93 - 점수를 입력하시오: 56 - 점수를 입력하시오: 72

[국 어] 점수: 93, 학점: A, 평점: 4.0 [영 어] 점수: 56, 학점: F, 평점: 0.0 [컴퓨터] 점수: 72, 학점: C, 평점: 2.0

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력합니다:

- 점수를 입력하시오: 102 - 점수를 입력하시오: 85 - 점수를 입력하시오: 20

오류: 100이 넘어서, 정상적인 점수가 아닌 것이 있습니다.

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력합니다:

- 점수를 입력하시오 : 66 - 점수를 입력하시오 : 85 - 점수를 입력하시오 : 20

[국 어] 점수: 66, 학점: D, 평점: 1.0 [영 어] 점수: 85, 학점: B, 평점: 3.0 [컴퓨터] 점수: 20, 학점: F, 평점: 0.0

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력합니다:

- 점수를 입력하시오 : 87 - 점수를 입력하시오 : 95 - 점수를 입력하시오 : 99

[국 어] 점수: 87, 학점: B, 평점: 3.0 [영 어] 점수: 95, 학점: A, 평점: 4.0 [컴퓨터] 점수: 99, 학점: A, 평점: 4.0

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력합니다:

- 점수를 입력하시오 : -1 - 점수를 입력하시오 : -1 - 점수를 입력하시오 : -1

음의 점수가 입력되어 입력을 종료합니다.

프로그램을 종료합니다.

(18)

©

J.-H. Kang, CNU

 3 과목 점수 입력 받기

 inputScore()를 3 번 사용한다.

System.out.print(“> 세 과목 (국어, 영어 컴퓨터)의 점수를 차례로 입력합니다: “) ; score_Korean = inputScore() ;

score_English = inputScore() ; score_Computer = inputScore() ;

[실습 7-1-3] 3과목 처리하기 18

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력합니다:

- 점수를 입력하시오: 82

- 점수를 입력하시오: 77

- 점수를 입력하시오: 90

(19)

©

J.-H. Kang, CNU

 점수 오류 검사하기

 3 개의 점수 중에서 하나만 100 이 넘어도 오류 메시지를 내보내기로 한다.

if ( (score_Korean > 100) || (score_English> 100) || (score_Computer > 100 ) ) { System.out.print(“오류: 100 이 넘어서, 정상적인 점수가 아닌 것이 있습니다.”) ; }

[실습 7-1-3] 3과목 처리하기 19

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력합니다:

- 점수를 입력하시오: 102 - 점수를 입력하시오: 85 - 점수를 입력하시오: 20

오류: 100이 넘어서, 정상적인 점수가 아닌 것이 있습니다.

(20)

©

J.-H. Kang, CNU

[프로그램 7-4]

평균 평점 구하기

[실습 7-4] 평균평점 구하기 20

(21)

©

J.-H. Kang, CNU

 제4단계 [프로그램 7-4]

 문제

 [프로그램 7-3]과 입력은 동일하다.

 세 과목 Korean, English, Computer 의 점수를 입력받는다.

 입력의 종료 조건

 음수의 점수가 입력되면 입력은 종료되는 것으로 본다. 더 이상 점수는 입력되지 않는다.

 출력

 입력된 점수와 그에 해당하는 학점과 평점을 출력한다.

 또한 평균 평점을 출력한다.

 평균 평점대별 학생수를 출력한다.

[실습 7-4] 평균평점 구하기 21

(22)

©

J.-H. Kang, CNU

 프로그램 7-4 [3]

 출력의 예

[실습 7-4] 평균평점 구하기 22

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력하시오: 82 77 90 [국 어] 점수: 82, 학점: B, 평점: 3.0

[영 어] 점수: 77, 학점: C, 평점: 2.0 [컴퓨터] 점수: 90, 학점: A, 평점: 4.0 이 학생의 평균평점은 3.0 입니다.

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력하시오: 45 66 88 [국 어] 점수: 45, 학점: F , 평점: 0.0

[영 어] 점수: 77, 학점: C, 평점: 2.0 [컴퓨터] 점수: 90, 학점: A, 평점: 4.0 이 학생의 평균평점은 2.0 입니다.

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력하시오: 93 56 72 [국 어] 점수: 93, 학점: A, 평점: 4.0

[영 어] 점수: 56, 학점: F, 평점: 0.0 [컴퓨터] 점수: 72, 학점: C, 평점: 2.0 이 학생의 평균평점은 2.0 입니다.

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력하시오: 102 85 20 오류: 100이 넘어서, 정상적인 점수가 아닙니다.

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력하시오: 66 85 20 [국 어] 점수: 66, 학점: D, 평점: 1.0

[영 어] 점수: 85, 학점: B, 평점: 3.0 [컴퓨터] 점수: 20, 학점: F, 평점: 0.0 이 학생의 평균평점은 1.33 입니다.

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력하시오: 87 95 99 [국 어] 점수: 87, 학점: B, 평점: 3.0

[영 어] 점수: 95, 학점: A, 평점: 4.0 [컴퓨터] 점수: 99, 학점: A, 평점: 4.0 이 학생의 평균평점은 3.67 입니다.

> 세 과목 (국어, 영어, 컴퓨터) 의 점수를 차례로 입력하시오: -1 -1 -1 음의 점수가 입력되어 입력을 종료합니다.

평균평점이 3.0 이상 4.0 미만인 학생은 2 명입니다.

평균평점이 2.0 이상 3.0 미만인 학생은 2 명입니다.

평균평점이 1.0 이상 2.0 미만인 학생은 1 명입니다.

평균평점이 1.0 미만인 학생은 1 명입니다.

프로그램을 종료합니다.

(23)

©

J.-H. Kang, CNU

 평균 평점 계산

 평균 평점(GPA: Grade Point Average) 구하기

 gpa = (point_Korean + point_English + point_Computer) / 3.0 ;

 함수로:

private double calcGPA

(double point_Korean, double point_English, double point_Computer) {

return ... ; // 여기를 채우시오 }

[실습 7-4] 평균평점 구하기 23

(24)

©

J.-H. Kang, CNU

 평균평점 별 학생 수 구하기

if (gpa >= 3.0) { count3 ++ ; }

else if (gpa >= 2.0) { count2 ++ ;

}

else if

... // 마저 채우시오 }

[실습 7-4] 평균평점 구하기 24

(25)

©

J.-H. Kang, CNU

[제 7 주] 끝

25

참조

관련 문서

· 피투자자가 더 이상 관계기업이나 공동기업의 정의를 충족하지 못하게 된 시점부터 지분법의 사용을 중단. · 정의를 충족하지

가장 마지막에 호출된 함수가 가장 먼저 실행을 완료하고 복귀하는 후입 선출 구조이므로, 후입선출 구조의 스택을 이용하여 수행순서 관리 함수 호출이 발생하면

더 이상 이수할 교과목이 없을 경우 일반교양과목을 이수하여 영역별 이수기준을

국가적 공간들은

„ 정의: 단사 함수이고 동시에 전사 함수인 함수를. 전단사 함수(one-to-one correspondence

교재: 모던웹을 위한 JavaScript Jquery 입문,

[r]

 Class는 스스로 객체 생성 방법을 가지고 있어야 한다... 더 이상