Tạo bảng điểm
Thuộc phần Logic và luồng chương trình trong hành trình PHP của Coddy. Bài học 38 trên 68.
Thử thách
DễBạn sẽ nhận một đầu vào: một đối tượng JSON đại diện cho sổ điểm của học sinh. Sổ điểm dùng tên học sinh làm khóa, mỗi học sinh có "id" và một mảng (array) "grades" chứa điểm bài kiểm tra.
Đọc đầu vào, chuyển chuỗi JSON thành mảng sổ điểm, rồi tạo phiếu báo điểm có định dạng cho tất cả học sinh. Với mỗi học sinh, hãy hiển thị tên, mã số học sinh, từng điểm và điểm trung bình được làm tròn đến 2 chữ số thập phân.
Định dạng đầu ra chính xác như sau:
- In
===== REPORT CARD =====làm tiêu đề - Với mỗi học sinh, in:
Student: [name]ID: [student_id]Grades: [grade1], [grade2], [grade3], ...(tất cả điểm được ngăn cách bằng dấu phẩy và khoảng trắng)Average: [average](được làm tròn đến 2 chữ số thập phân)- Một dòng trống sau mỗi học sinh (ngoại trừ học sinh cuối cùng)
Định dạng đầu vào: Một dòng chứa đối tượng JSON đại diện cho sổ điểm (ví dụ: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
Đầu ra mong đợi: Phiếu báo điểm có định dạng, hiển thị thông tin của từng học sinh gồm tên, mã số, tất cả điểm và điểm trung bình đã tính
Tự làm thử
<?php
// Đọc đầu vào JSON
$input = trim(fgets(STDIN));
// Chuyển JSON thành mảng
$gradebook = (array)json_decode($input, true);
// In ra tiêu đề
echo "===== REPORT CARD =====\n";
// TODO: Viết code của bạn bên dưới
// Lặp qua từng học sinh trong gradebook
// Với mỗi học sinh:
// - In ra tên
// - In ra ID
// - In ra tất cả điểm số
// - Tính và in ra điểm trung bình (làm tròn đến 2 chữ số thập phân)
// - Thêm một dòng trống giữa các học sinh (trừ sau học sinh cuối cùng)
?>Tất cả bài học trong Logic và luồng chương trình
1Hàm nâng cao
Hàm ẩn danhClosure và 'use'Hàm mũi tênHàm callbackDùng 'call_user_func'Hàm biếnTruyền tham chiếuHàm đệ quyÔn tập: tổng hợp về hàm4Mảng đa chiều
Tạo mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuChỉnh sửa phần tử trong mảng 2 chiềuLặp qua các vòng lặp lồng nhauMảng kết hợp 2 chiềuÔn tập: bài tập lưới đơn giản2Thao tác nâng cao với mảng
Thêm phần tử bằng 'array_push'Xóa phần tử bằng 'array_pop'Thêm phần tử vào đầu mảng bằng 'array_unshift'Xóa phần tử đầu mảng bằng 'array_shift'Gộp các mảng được đánh chỉ sốGộp các mảng kết hợpTrích xuất phần tử bằng 'array_slice'Kiểm tra giá trị bằng 'in_array'Tìm khóa bằng 'array_search'Ôn tập: bài tập về danh sách phát3Sắp xếp mảng
Sắp xếp mảng có chỉ số tăng dầnSắp xếp mảng có chỉ số giảm dầnSắp xếp mảng kết hợp theo giá trịSắp xếp mảng kết hợp theo khóaSắp xếp theo thứ tự tự nhiênSắp xếp tùy chỉnh bằng 'usort'Ôn tập: Sắp xếp bảng xếp hạngTự luyện tập: Trình biên dịch PHP online