6.1 KiB
결정 내리기: 학생 성적 처리기
학습 목표
이 과제에서는 이번 수업의 의사결정 개념을 연습하기 위해 서로 다른 성적 체계에서 학생 성적을 처리하는 프로그램을 만듭니다. if...else 문, 비교 연산자, 논리 연산자를 사용하여 어떤 학생들이 과목을 통과하는지 판단합니다.
도전 과제
최근 다른 기관과 합병한 학교에서 근무 중입니다. 이제 완전히 다른 두 성적 체계에서 학생 성적을 처리하고 어떤 학생이 합격인지 결정해야 합니다. 조건부 논리를 연습하기에 완벽한 기회입니다!
성적 체계 이해하기
첫 번째 성적 체계 (숫자)
- 성적은 1-5 사이의 숫자로 주어짐
- 합격 점수: 3 이상 (3, 4, 또는 5)
- 낙제 점수: 3 미만 (1 또는 2)
두 번째 성적 체계 (문자 성적)
- 성적은 문자로 표기:
A,A-,B,B-,C,C- - 합격 점수:
A,A-,B,B-,C,C-(모든 나열된 성적은 합격) - 참고: 이 체계에는
D나F와 같은 낙제 성적은 포함되지 않음
수행 과제
다음 배열 allStudents 가 모든 학생과 그들의 성적을 나타냅니다. 각 성적 체계에 따라 합격한 모든 학생을 포함하는 새 배열 studentsWhoPass를 만드세요.
let allStudents = [
'A', // 학점 - 합격
'B-', // 학점 - 합격
1, // 숫자 점수 - 불합격
4, // 숫자 점수 - 합격
5, // 숫자 점수 - 합격
2 // 숫자 점수 - 불합격
];
let studentsWhoPass = [];
단계별 접근법
allStudents배열의 각 성적을 반복문으로 순회합니다.- 성적 유형을 확인합니다 (숫자인가 아니면 문자열인가?).
- 적절한 성적 체계 규칙을 적용합니다:
- 숫자일 경우: 성적 >= 3 인지 확인
- 문자일 경우: 유효한 합격 문자 성적인지 확인
- 합격한 성적을
studentsWhoPass배열에 추가합니다.
유용한 코드 기법
이번 수업에서 다룬 JavaScript 개념을 사용하세요:
- typeof 연산자:
typeof grade === 'number'로 숫자 성적인지 확인 - 비교 연산자: 숫자 성적 비교할 때
>=사용 - 논리 연산자: 여러 문자 성적 조건을 확인할 때
||사용 - if...else 문: 서로 다른 성적 체계 처리
- 배열 메서드: 합격 성적을 새 배열에 추가할 때
.push()사용
예상 결과
프로그램을 실행하면 studentsWhoPass 배열에 ['A', 'B-', 4, 5]가 포함되어야 합니다.
이 성적들이 합격하는 이유:
'A'와'B-'는 유효한 문자 성적이며 이 체계에서는 모두 합격4와5는 숫자 성적이고 3 이상임1과2는 숫자 성적이고 3 미만이므로 불합격
솔루션 테스트하기
다양한 시나리오로 코드를 테스트하세요:
// 다양한 학점 조합으로 테스트하십시오
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];
// 유효한 학점의 모든 조합에서 작동해야 합니다
보너스 도전과제
기본 과제를 완료한 후 다음 확장 과제를 시도하세요:
- 유효성 검사 추가: 음수나 유효하지 않은 문자 성적 등 잘못된 성적 확인
- 통계 계산: 합격한 학생과 불합격한 학생 수 계산
- 성적 변환: 모든 성적을 하나의 숫자 체계로 변환 (예: A=5, B=4, C=3 등)
평가 기준
| 평가 기준 | 우수 (4) | 우수 수준 (3) | 발전 중 (2) | 초급 (1) |
|---|---|---|---|---|
| 기능성 | 두 성적 체계 모두에서 합격 성적을 정확히 식별 | 사소한 문제나 예외는 있지만 작동 | 부분적으로 작동하나 논리 오류 있음 | 심각한 오류가 있거나 작동하지 않음 |
| 코드 구조 | 깔끔하고 잘 조직된 코드, 적절한 if...else 논리 사용 | 적절한 조건문으로 좋은 구조 | 조직에 일부 문제 있으나 허용 가능 | 구조가 부실하고 논리 이해가 어려움 |
| 개념 활용 | 비교 연산자, 논리 연산자, 조건문을 효과적으로 활용 | 수업 개념을 잘 사용하나 약간의 누락 있음 | 일부 개념 사용하나 주요 사항 누락 | 수업 개념 활용이 제한적임 |
| 문제 해결 | 문제에 대한 명확한 이해와 우아한 해결 방법 제시 | 좋은 문제 해결 접근과 탄탄한 논리 | 적절하나 혼동이 일부 있음 | 접근이 불분명하고 이해 부족 |
제출 지침
- 제공된 예제로 코드를 철저히 테스트하세요.
- 특히 조건문에 대해 논리를 설명하는 주석을 추가하세요.
- 출력 결과가 예상한 대로
['A', 'B-', 4, 5]와 일치하는지 검증하세요. - 빈 배열이나 예기치 않은 데이터 유형 같은 경계 상황도 고려하세요.
💡 전문가 팁: 간단하게 시작하세요! 우선 기본 기능이 작동하도록 한 후에 더 복잡한 기능을 추가하세요. 이번 수업에서 배운 도구로 의사결정 로직을 연습하는 것이 목표입니다.
면책 조항:
이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있으나 자동 번역에는 오류나 부정확성이 포함될 수 있음을 양지해 주시기 바랍니다. 원문 문서는 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우 전문 인력에 의한 번역을 권장합니다. 본 번역 사용으로 인한 오해나 잘못된 해석에 대해서는 당사가 책임지지 않습니다.