Tuesday, December 12, 2023

11B Classlardan devam Map mapten nesneye

 







SINAV NOTLARI LİSTELEME ÖRNEĞİ

// Öğrenci tablomuz ve öğrencilere ait notların olduğu bir tablomuz bulunmakta
// Program çalıştırıldığında Öğrencilerin numaralarını ve yanlarına adsoyadları listeleyiniz.
// ve program hangi öğrencinin notlarını görmek istediğimizi sorsun, okul no istesin
// okul numarası girilen öğrencinin notlarını listeleyen programı yazınız.

import 'dart:io';

import 'NotlarList.dart';
import 'OgrenciList.dart';

void main(List<String> args) {
  // öğrenci listesi sınıf ile üretiliyor
  List<Ogrenci> ogrList = [];
  for (var item in ogrenciler) {
    ogrList.add(Ogrenci.mapToOgrenci(item));
  }

// not listesi üretiliyor
  List<Puan> puanList = [];
  for (var item in notlar) {
    puanList.add(Puan.mapToPuan(item));
  }

// öğrenciler ekranda listeleniyor.
  for (var item in ogrList) {
    print("${item.OkulNo} - ${item.AdSoyad}");
  }

// hangi öğrencinin notlarının listeleneceğini kullanıcıya soruyoruz
  print("Notları görmek istediğiniz öğrencinin Okul Nosunu giriniz: ");
  int okulNo = int.parse(stdin.readLineSync()!);

// girilen okul numarasına göre öğrenci aranıyor
  var ogr = ogrList.where((x) => x.OkulNo == okulNo).firstOrNull;

  if (ogr == null) {
    // öğrenci bulanamadı ise bilgilendiriliyor
    print("Böyle bir öğrenci bulunamadı");
  } else {
    // ogr null değil, yani öğrenci bulunmuş, öğrenci idsine göre notları aranıyor.
    var ogrNotlari = puanList.where((x) => x.OgrID == ogr.ID);

    if (ogrNotlari.length == 0) {
      print("Bu öğrenciye ait not bilgisi mevcut değil");
    } else {
      print("${ogr.AdSoyad} isimli öğrencinin ders notları");
      for (var item in ogrNotlari) {
        print("${item.DersAdi} - ${item.DersNotu}");
      }
    }
  }
}

class Ogrenci {
  int? ID;
  int? OkulNo;
  String? AdSoyad;

  Ogrenci(this.ID, this.OkulNo, this.AdSoyad);
  Ogrenci.mapToOgrenci(Map<String, String> map) {
    this.ID = int.parse(map["ID"].toString());
    this.OkulNo = int.parse(map["OkulNo"].toString());
    this.AdSoyad = map["AdSoyad"];
  }
}

class Puan {
  int? ID;
  int? OgrID;
  String? DersAdi;
  int? DersNotu;

  Puan(this.ID, this.DersAdi, this.DersNotu, this.OgrID);
  Puan.mapToPuan(Map<String, Object> map) {
    this.ID = int.parse(map["ID"].toString());
    this.OgrID = int.parse(map["OgrID"].toString());
    this.DersNotu = int.parse(map["Notu"].toString());
    this.DersAdi = map["DersAdi"].toString();
  }
}



var ogrenciler = [
  {"ID": "1", "OkulNo": "986", "AdSoyad": "Kavram Esgin"},
  {"ID": "2", "OkulNo": "548", "AdSoyad": "Ünan Yabaneri"},
  {"ID": "3", "OkulNo": "481", "AdSoyad": "Simre Ceylan arapgirlioğlu"},
  {"ID": "4", "OkulNo": "998", "AdSoyad": "Ünzil Koban"},
  {"ID": "5", "OkulNo": "527", "AdSoyad": "Yiğithan Dirmen"},
  {"ID": "6", "OkulNo": "923", "AdSoyad": "Kalagay Yoncacı"},
  {"ID": "7", "OkulNo": "424", "AdSoyad": "Ayke Özer"},
  {"ID": "8", "OkulNo": "133", "AdSoyad": "Ürünay Bütün"},
  {"ID": "9", "OkulNo": "754", "AdSoyad": "Hürsev Uçar"},
  {"ID": "10", "OkulNo": "907", "AdSoyad": "Gülgen Şiray aslan"},
];


var notlar = [
  {"ID": "1", "DersAdi": "Matematik", "Notu": 45, "OgrID": 1},
  {"ID": "2", "DersAdi": "Türkçe", "Notu": 100, "OgrID": 1},
  {"ID": "3", "DersAdi": "Kimya", "Notu": 67, "OgrID": 1},
  {"ID": "4", "DersAdi": "Biyoloji", "Notu": 43, "OgrID": 1},
  {"ID": "5", "DersAdi": "Coğrafya", "Notu": 98, "OgrID": 1},
  {"ID": "6", "DersAdi": "Matematik", "Notu": 13, "OgrID": 2},
  {"ID": "7", "DersAdi": "Biyoloji", "Notu": 87, "OgrID": 2},
  {"ID": "8", "DersAdi": "Matematik", "Notu": 43, "OgrID": 3},
  {"ID": "9", "DersAdi": "Kimya", "Notu": 56, "OgrID": 3},
  {"ID": "10", "DersAdi": "Coğrafya", "Notu": 12, "OgrID": 3},
  {"ID": "11", "DersAdi": "Türkçe", "Notu": 76, "OgrID": 4},
  {"ID": "12", "DersAdi": "Biyoloji", "Notu": 62, "OgrID": 4},
  {"ID": "13", "DersAdi": "Coğrafya", "Notu": 78, "OgrID": 2},
  {"ID": "14", "DersAdi": "Tarih", "Notu": 99, "OgrID": 1},
];


No comments: