Öğrenciye Not Ekleme
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 35 / 68.
Görev
KolayÜç girdi alacaksınız: mevcut öğrenci not defterini temsil eden bir JSON nesnesi, bir öğrencinin adı ve eklenecek bir not. Not defteri, anahtar olarak öğrenci adlarını kullanır ve her öğrencinin bir "id" değeri ile bir "grades" dizisi vardır. İkinci girdi öğrencinin adı, üçüncü girdi ise eklenecek nottur (sayı olarak).
Her üç girdiyi de okuyun, JSON dizesini bir not defteri dizisine dönüştürün, belirtilen öğrenciyi bulun, yeni notu o öğrencinin notlar dizisine ekleyin ve güncellenmiş not defterini print_r() kullanarak yazdırın.
Girdi formatı:
- Birinci satır: Mevcut not defterini temsil eden bir JSON nesnesi (örnek:
{"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}}) - İkinci satır: Öğrencinin adı (örnek:
Alice) - Üçüncü satır: Eklenecek not (örnek:
88)
Beklenen çıktı: Belirtilen öğrencinin notlar dizisine yeni notun eklendiği, print_r() kullanılarak görüntülenen güncellenmiş not defteri dizisi
Kendin dene
<?php
// Not defteri JSON dizesini oku
$gradebookJson = fgets(STDIN);
// Öğrencinin adını oku
$studentName = trim(fgets(STDIN));
// Eklenecek notu oku
$grade = intval(fgets(STDIN));
// JSON'u diziye dönüştür
$gradebook = (array)json_decode($gradebookJson, true);
// YAPILACAK: Kodunuzu aşağıya yazın
// Öğrenciyi bulun ve yeni notu notlar dizisine ekleyin
// Güncellenmiş not defterini yazdır
print_r($gradebook);
?>Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması5Öğrenci Not Defteri
Proje Kurulumu: Veri YapısıYeni Öğrenci EklemeÖğrenciye Not EklemeÖğrenci Ortalamasını HesaplamaEn Başarılı Öğrenciyi BulmaKarne Oluşturma3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama