성적표 생성하기
Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨 — 68개 중 38번째.
챌린지
쉬움하나의 입력을 받게 됩니다: 학생 성적부를 나타내는 JSON 객체입니다. 성적부는 학생 이름을 키(key)로 사용하며, 각 학생은 "id"와 테스트 점수가 포함된 "grades" 배열을 가집니다.
입력을 읽고, JSON 문자열을 성적부 배열로 변환한 뒤, 모든 학생에 대한 형식화된 성적표를 생성하세요. 각 학생에 대해 이름, 학생 ID, 모든 개별 성적, 그리고 소수점 둘째 자리까지 반올림한 평균 성적을 표시합니다.
출력 형식을 다음과 같이 정확히 맞추세요:
- 헤더로
===== REPORT CARD =====를 출력합니다. - 각 학생에 대해 다음을 출력합니다:
Student: [name]ID: [student_id]Grades: [grade1], [grade2], [grade3], ...(모든 성적은 쉼표와 공백으로 구분)Average: [average](소수점 둘째 자리까지 반올림)- 각 학생 사이에 빈 줄 추가 (마지막 학생 제외)
입력 형식: 성적부를 나타내는 JSON 객체가 포함된 한 줄 (예시: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
예상 출력: 각 학생의 이름, ID, 모든 성적 및 계산된 평균이 포함된 형식화된 성적표
직접 해보기
<?php
// JSON 입력 읽기
$input = trim(fgets(STDIN));
// JSON을 배열로 변환
$gradebook = (array)json_decode($input, true);
// 헤더 출력
echo "===== REPORT CARD =====\n";
// TODO: 아래에 코드를 작성하세요
// 성적부의 각 학생을 반복문으로 처리
// 각 학생에 대해:
// - 이름 출력
// - ID 출력
// - 모든 성적 출력
// - 평균 계산 및 출력 (소수점 둘째 자리까지 반올림)
// - 학생들 사이에 빈 줄 추가 (마지막 학생 제외)
?>