成績表の生成
CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 38/68。
チャレンジ
簡単1つの入力を受け取ります。それは学生の成績表を表すJSONオブジェクトです。成績表は学生の名前をキーとして使用し、各学生は "id" とテストのスコアを含む "grades" 配列を持っています。
入力を読み込み、JSON文字列を成績表の配列に変換し、すべての学生に対してフォーマットされた通知表を生成してください。各学生について、名前、学生ID、すべての個別の成績、および小数点以下2桁に丸められた平均点を表示します。
出力を正確に次のようにフォーマットしてください:
- ヘッダーとして
===== REPORT CARD =====を出力します - 各学生について、以下を出力します:
Student: [name]ID: [student_id]Grades: [grade1], [grade2], [grade3], ...(すべての成績をカンマとスペースで区切ります)Average: [average](小数点以下2桁に丸めます)- 各学生の後に空行を入れます(最後の学生の後を除く)
入力形式: 成績表を表すJSONオブジェクトを含む1行(例:{"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を出力する
// - すべての成績を出力する
// - 平均を計算して出力する(小数点以下2桁に丸める)
// - 生徒の間に空行を追加する(最後の生徒の後を除く)
?>