1.
Ödev [Tüm Şubeler İçin]
Teslim Tarihi
23 Kasım 2025 (Pazar günü saat 23:50’ye kadar.)
Ödev İçeriği
MinGW C++ ortamında derlenen bir program yazılacaktır. Bu ödevde başrol oyuncusu bağıl listelerdir.
Ödevde ana veri yapısı iki yönlü bağlı liste olacak (ana liste). Her ana düğümün veri alanı tek yönlü
bağlı bir “şekiller listesi” tutacak. Her şekil için ortak bir soyut Shape sınıfı oluşturup (virtual draw()
vb.) ondan türeyen Triangle, Rectangle, Star sınıfları yazılacak. Nesne yönelimli (kalıtım +
polimorfizm) kullanılmalıdır. Konsol ekranını bir 2B karakter dizisi (ör. 25 satır × 80 sütun) olarak
düşünülecek; her şeklin x,y koordinatı ve boyutları olacak, çizim karakteri ve rastgele atanmış bir z
(çizim önceliği) değeri olacak. İç içe listeler ve şekil nesneleri için kendi düğüm yapılarınızı yazmanız
gerekmektedir.
Programın davranışı: programa başlarken kullanıcıya rastgele oluşturulsun mu yoksa dosyadan mı
okunsun mu sorulacak. Rastgele seçenek seçilirse ana listede ~20 düğüm oluşturulacak; her şekiller
listesi 2–7 arası rastgele eleman içerecek; boyut, pozisyon, çizim karakteri ve z değeri rastgele
atanacak (ancak şekiller sınır dışına çıkmamalıdır). Uygulama çalışırken ana liste içinde gezinme, ilgili
düğümün şekillerine girip şekil seçme/move, silme işlemleri yapılabilmelidir; ekranda her döngüde
önce ekran temizlenip karakter dizisi güncellenerek şekiller z-değerine göre sıralanıp çizilmeli (çizim
sırası z’ye göre kontrol edilecek). Program kapanmadan önce yapılan tüm değişiklikler dosyaya
yazılmalı; dosya formatı size kalmış ama açıldığında tüm durum geri yüklenebilmelidir.
Yukarıda özeti verilmeye çalışılan ödevin detaylı anlatımı aşağıdaki 4 videoda bulunmaktadır. Videolar
çok dikkatli dinlenmeli, izlenmeli sonra ödeve başlanmalıdır.
[Link]
[Link]
[Link]
[Link]
Hiçbir şekilde Şablon (Generic) veri yapısı kullanılamaz. Her sınıfın başlık ve kaynak dosyası
ayrı olmalı ve başlık dosyasında metot gövdesi bulunmamalıdır. Hazır veri yapısı
kullanılamaz.
Önemli Not: Raporunuz detaylı olmalı ve kendi cümleleriniz olmalıdır. Kopya ödevler sıfır
olarak değerlendirilecektir. SABİS şifreniz sizin sorumluluğunuz altındadır eğer arkadaşınız
sizden habersiz ödevinizi alırsa bundan sizde sorumlu tutulur ve sıfır alırsınız.
Teslim Formatı
Klasör Hiyerarşisi
o src Klasörü (Kaynak dosyalarınızın bulunduğu klasör)
o lib Klasörü (.o dosyalarının bulunduğu klasör)
o include Klasörü (Başlık dosyalarınızın bulunduğu klasör)
o doc Klasörü (Raporunuzun bulunduğu klasör.)
o bin Klasörü (Çalıştırılabilir dosyalarınızın (.exe) bulunduğu klasör.)
o [Link] (Program için ayrıca belirtmek istedikleriniz. Önerileriniz. Boş kalabilir.)
o makefile
makefile olmayan ödev derlenmemiş olarak kabul edilmektedir. (-50 puan)
Rapor Yoksa veya yetersiz ise (-15 Puan)
Rapor pdf formatında olmalıdır. Raporu ayrıca çıktı olarak getirmenize gerek yoktur. Raporunuzda
kısaca sizden istenilen, öğrendikleriniz, ödevde yaptıklarınız, eksik bıraktığınız yerler, zorlandığınız
kısımlar anlatılabilir. Ödev raporunda yazı boyutu 12 puntodan büyük olamaz ve en az 1 sayfa,
en çok 2 sayfa olabilir.
Klasörlerinizi bir ana klasör içine koyarak .rar veya zip’leyip SABİS üzerinden gönderiniz. Ana
klasörünüzün adı sadece sizin öğrenci numaranız (örn: B111210090) olmalıdır. Yukarıda belirtilen
teslim tarihinden sonra gönderilen ödev kesinlikle kabul edilmeyecektir.
Önemli: SABİS üzerinden bir ödev için dosya gönderme hakkınız 3 seferdir. Hoca ekranında en
son yüklediğiniz dosya görünür.
Yazmış olduğunuz bütün kaynak kodların en başında aşağıdaki bilgiler bulunmalıdır. Bilgileri kendinize
göre güncelleyiniz.
/**
* @file Dosya adı
* @description Programınızın açıklaması ne yaptığına dair.
* @course Dersi aldığınız eğitim türü ve grup
* @assignment Kaçıncı ödev olduğu
* @date Kodu oluşturduğunuz Tarih
* @author Gruptakilerin yazar adları ve mail adresleri
*/
Önemli: Yazacağınız kodlar MinGW derleyicisinde kesinlikle derlenmelidir. Derlenmeyen kod itibar
görmez ve çok düşük puan üzerinden değerlendirilir. Sadece C++ kodları kullanılmalıdır.
Ödev Bireyseldir
KOPYA ÖDEV SIFIR OLARAK DEĞERLENDİRİLMEKTEDİR*
* Şubeler farklı dahi olsa kopya ödev gönderenler sıfır olarak değerlendirilecektir.