Tantangan: Pengurut Nilai
Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 63 dari 65.
Tantangan
MudahBuat sistem pengelolaan nilai siswa yang komprehensif. Sistem ini memproses data siswa dari map, menyaring siswa yang lulus, dan mengurutkannya berdasarkan abjad. Tantangan ini menggabungkan iterasi map, penyaringan dengan percabangan, operasi list, dan pengurutan.
Kamu diberikan input berikut:
- String JSON yang merepresentasikan map nama siswa (kunci) dan nilai ujian mereka (nilai)
String JSON akan terlihat seperti ini: {"Alice": 85, "Bob": 45, "Charlie": 92, "Diana": 58, "Eve": 76, "Frank": 39, "Grace": 88}
Tugasmu adalah:
- Parse string JSON menjadi Map menggunakan method Dart yang sesuai
- Buat list kosong bernama
passingStudentsuntuk menyimpan nama siswa yang lulus - Lakukan iterasi melalui map dan tambahkan nama siswa yang mendapat nilai 60 atau lebih ke list
passingStudents - Urutkan list
passingStudentsberdasarkan abjad menggunakan methodsort() - Cetak jumlah total siswa yang mengikuti ujian dengan format persis:
Total students: X - Cetak jumlah siswa yang lulus dengan format persis:
Students who passed: X - Cetak jumlah siswa yang tidak lulus dengan format persis:
Students who failed: X - Cetak siswa yang lulus berdasarkan urutan abjad, masing-masing pada baris baru, dengan format persis:
Passing student: [name] - Jika tidak ada siswa yang lulus, cetak:
No students passed the exam
Programmu harus menunjukkan iterasi map yang tepat, logika percabangan untuk menyaring data berdasarkan batas kelulusan 60, manipulasi list, dan operasi pengurutan. Output harus sesuai dengan format persis yang ditentukan di atas, dengan siswa yang lulus dicantumkan berdasarkan urutan abjad.
Coba sendiri
import 'dart:io';
import 'dart:convert';
void main() {
// Baca input string JSON
String? jsonString = stdin.readLineSync();
// Ubah string JSON menjadi Map
Map<String, dynamic> studentGrades = jsonDecode(jsonString!);
// Buat list kosong untuk menyimpan siswa yang lulus
List<String> passingStudents = [];
// TODO: Tulis kodemu di bawah ini
// 1. Telusuri map dan pilih siswa yang mendapat nilai 60 atau lebih
// 2. Tambahkan nama siswa yang lulus ke list passingStudents
// 3. Urutkan list passingStudents menurut abjad
// 4. Hitung dan cetak statistik yang diperlukan
// 5. Cetak siswa yang lulus dalam format yang ditentukan
// Tampilkan hasilnya (ganti dengan implementasimu)
print("Total students: ");
print("Students who passed: ");
print("Students who failed: ");
// Cetak siswa yang lulus atau pesan "No students passed the exam"
}Semua pelajaran di Logika dan Alur
1Manipulasi list Tingkat Lanjut
Properti list: first dan lastStatus list: isEmpty dan isNotEmpMembalikkan listMenambahkan ke list: insertMenghapus dari list: removeWhereMencari dalam list: indexOfMengurutkan listMengacak listRekap: Pengatur list4Manipulasi Map Lanjutan
Melakukan perulangan pada MapMemeriksa kunci dan nilaiProperti Map: kunci dan nilaiPenambahan Bersyarat: putIfAbsentMenghapus Entri dari MapMap BersarangRingkasan: Pembaruan Inventaris2Operasi Fungsional pada list
Mengubah dengan 'map'Menyaring dengan 'where'Menggunakan '.toList()'Memeriksa Kondisi dengan 'any'Kondisi dengan 'every'Menemukan dengan 'firstWhere'Ulasan: Penyaringan Data5Proyek: Perhitungan Keranjang Belanja
Menyiapkan ProyekMenambahkan Barang ke Keranjang3set
Apa itu set?Membuat setMenambahkan dan menghapus elemen dari setMemeriksa elemen dalam setMengubah list menjadi setGabungan setIrisan setSelisih setRangkuman: Daftar tamu unikLatihan sendiri: Compiler Dart online