프로그래밍 언어 I 및 실습 중간고사


◎ 구조체 배열을 이용하여 다음 프로그램을 작성하시오. 이때, 구조체에는 학번, 이름(크기가 20인 문자 배열), 과목1 점수, 과목1 등급, 과목2 점수, 과목2 등급, 과목3 점수, 과목3 등급, 과목4 점수, 과목4 등급, 평균 평점 멤버가 있다.

(0) PL1_MID_EX 폴더를 생성하고 각각 독립된 파일에 함수를 작성할 것

(1) 사용자로부터 학번, 이름, 이산수학, PL1, 자료구조, 디지털 교과목의 점수를 반복해서 입력받고, 더 이상 입력이 없는 경우 그동안 받은 학생 수를 돌려주는 함수 작성

(2) 배열과 학생수를 넘겨받아 각 교과목의 등급을 계산하여 채우는 함수 작성

(힌트 : 등급은 열거형(enum)으로 선언- 예 : A+ -> A_PLUS)

점수

등급

평점

95 ~ 100

A+

4.5

90 ~ 94

A

4.0

85 ~ 89

B+

3.5

80 ~ 84

B

3.0

75 ~ 79

C+

2.5

70 ~ 74

C

2.0

65 ~ 69

D+

1.5

60 ~ 64

D

1.0

0 ~ 59

F

0

(3) 배열과 학생수를 넘겨받아 평균 평점을 계산하여 채우는 함수 작성 (이때 이산수학, 자료구조, 디지털 교과목은 3학점, PL1은 2학점 - 학점수와 평점은 #define을 이용 정의)

예를 들면, 이산수학 B+, PL1 A, 자료구조 B, 디지털 C 등급을 받은 경우

3.5 ✕ 3 + 4.0 ✕ 2 + 3.0 ✕ 3 + 2.0 ✕ 3 = 33.5

33.5 / 11 = 3.05

(4) 배열과 학생수, 교과목, 등급을 넘겨받아 그 과목의 그 등급을 받은 학생들의 학번, 이름, 점수를 표 형태로 출력하는 함수 작성. 예를 들면, 이산수학과 B를 넘겨받으면 이산수학 교과목에서 B를 받은 학생들의 학번, 이름, 이산수학 점수를 화면에 출력한다. 이때 출력 순서는 상관없다.

(5) 사용자에게 과목과 등급을 메뉴 형태로 보여주고 두 항목을 입력 받는 함수 작성

(6) main()에서는 (1)함수 수행 후 (2), (3)을 수행하고, (5)를 수행하여 선택을 입력 받은 후 (4)를 수행하는 행위를 반복. 예를 들면 사용자의 선택에 따라 디지털 교과목에서 A를 받은 학생들 명단을 출력하고, 다시 선택에 따라 이산수학에서 F를 받은 학생 명단을 계속 출력할 수 있도록 프로그램 작성