Menu
Coddy logo textTech

Meydan Okuma: Not Sıralayıcı

Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 63 / 65.

challenge icon

Görev

Kolay

Bir haritadan (map) öğrenci verilerini işleyen, geçen öğrencileri filtreleyen ve onları alfabetik olarak düzenleyen kapsamlı bir öğrenci not yönetim sistemi oluşturun. Bu meydan okuma; harita yineleme (map iteration), koşullu filtreleme, liste işlemleri ve sıralamayı birleştirir.

Size aşağıdaki girdi sağlanmıştır:

  • Öğrenci adlarını (anahtarlar) ve test puanlarını (değerler) temsil eden bir JSON dizesi

JSON dizesi şu şekilde görünecektir: {"Alice": 85, "Bob": 45, "Charlie": 92, "Diana": 58, "Eve": 76, "Frank": 39, "Grace": 88}

Göreviniz şunları yapmaktır:

  1. Uygun Dart yöntemlerini kullanarak JSON dizesini bir Map'e dönüştürün
  2. Geçen öğrencilerin adlarını saklamak için passingStudents adında boş bir liste oluşturun
  3. Harita üzerinde gezinin ve 60 veya daha yüksek puan alan öğrencilerin adlarını passingStudents listesine ekleyin
  4. sort() yöntemini kullanarak passingStudents listesini alfabetik olarak sıralayın
  5. Sınava giren toplam öğrenci sayısını şu formatta yazdırın: Total students: X
  6. Geçen öğrenci sayısını şu formatta yazdırın: Students who passed: X
  7. Kalan öğrenci sayısını şu formatta yazdırın: Students who failed: X
  8. Geçen öğrencileri alfabetik sırayla, her biri yeni bir satırda olacak şekilde şu formatta yazdırın: Passing student: [name]
  9. Eğer hiçbir öğrenci geçemediyse şunu yazdırın: No students passed the exam

Programınız; düzgün harita yineleme, 60 geçme eşiğine göre verileri filtrelemek için koşullu mantık, liste manipülasyonu ve sıralama işlemlerini göstermelidir. Çıktı, geçen öğrencilerin alfabetik sırayla listelendiği, yukarıda belirtilen tam formatla eşleşmelidir.

Kendin dene

import 'dart:io';
import 'dart:convert';

void main() {
  // JSON dize girişini oku
  String? jsonString = stdin.readLineSync();
  
  // JSON dizesini bir Map'e dönüştür
  Map<String, dynamic> studentGrades = jsonDecode(jsonString!);
  
  // Geçen öğrencileri saklamak için boş bir liste oluştur
  List<String> passingStudents = [];
  
  // TODO: Kodunuzu aşağıya yazın
  // 1. Map üzerinde döngü kurun ve 60 veya daha yüksek puan alan öğrencileri filtreleyin
  // 2. Geçen öğrencilerin isimlerini passingStudents listesine ekleyin
  // 3. passingStudents listesini alfabetik olarak sıralayın
  // 4. Gerekli istatistikleri hesaplayın ve yazdırın
  // 5. Geçen öğrencileri belirtilen formatta yazdırın
  
  // Sonuçları çıktı olarak verin (kendi uygulamanızla değiştirin)
  print("Total students: ");
  print("Students who passed: ");
  print("Students who failed: ");
  // Geçen öğrencileri veya "No students passed the exam" mesajını yazdırın
}

Mantık & Akış bölümündeki tüm dersler