Menu
Coddy logo textTech

成績表の生成

CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 38/68。

challenge icon

チャレンジ

簡単

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桁に丸める)
//   - 生徒の間に空行を追加する(最後の生徒の後を除く)

?>

論理とフローのすべてのレッスン