T. C. Okan Üniversitesi

 

Nesne Yönelimli Programlama (Object Oriented Programming)

Dersi Veren: Yrd. Doç. Dr. Şadi Evren ŞEKER

Web Sitesi: www.sadievrenseker.com/oop

Email Adresi:oop [at] sadievrenseker.com

Dersin Amacı:

Nesne yönelimli programlama mantığının temellerinin oluşturulması ve nesne yönelimli modelleme yeteneğinin kazandırılması amaçlanmaktadır. Ayrıca derste C++ dili gösterilerek bu dile intibak sağlanacaktır. Derste genel olarak nesne yönelimli modelleme kavramları olan miras ilişkisi (inheritance), çok şekillilik (polymorphism), veri kapsülleme (data encapsulation), istisna yakalama (exception handling) gibi kavramlara yer verilecektir. Ayrıca derste, Microsoft Visual Studio C++ ürünü kullanılacaktır.


Olası Ders İçeriği:
Yukarıdaki içerik tahmini içerik olup öğrenci performansına göre değiştirilebilir. Ayrıca yukarıda bağlantıları verilen yazılar sadece fikir vermek için hazırlanmış olup, ders içeriği ve öğrencilerin sorumluluğu buradaki bağlantılarda bulunan bilgilerle değil, derste anlatılan konularla sınırlıdır. 

  • Referans Kitaplar:
    "Robert W. Sebesta" tarafından yazılmış "Addison Wesley" yayın evi tarafından yayınlanmış "Concepts of Programming Languages" kitabı takip edilebilir detaylı bilgi için web sitesini ziyaret edebilirsiniz.
    Ayrıca C++ diline giriş için "Programlama Dillerine ve Veri Yapılarına Giriş", yazar: Şadi Evren ŞEKER, ISBN: 978-9944-62-782-5 kitabını kullanabilirsiniz.

  • Dersin saatleri ve sınıf:
  • Dersler pazartesi günleri 0900 -1200 saatleri arasında 402 numaralı derslikte yapılacaktır.

  • Dersin deðerlendirmesi:
  • Ödevler %10
  • Arasınav %20
  • Dönem Projesi %10
  • Final %60


    Ödevler:
    Ödev 1
  • Ödev 2
  • Ödev 3 : Derste yapılan (yukarıda, laboratuar 2 olarak geçen) kod'a devam ederek, kare, dikdörtgen, eşkenarDörtgen, şekil, doğru, nokta, küp ve silindir sınıflarını kodlayınız. Bu sınıflar arasındaki ilişkileri tanımladığınız bir adet word dosyasını, ödeviniz ile birlikte gönderiniz. Not: Bu ödevin süresi, 18 Ekim Pazartesi, ders başlangıcına kadardır, derste bu sorunun çözümünü yapacağız.
  • Ödev 4:

  • Yukarıdaki şekilde verilen, sınıf diyagramını kullanarak, C++ dilinde, sınıfları, özelliklerini ve metotlarını kodlayınız. Bu sınıfların üzerinden gerekli miktarda nesne oluşturarak aşağıdaki soruların cevaplarını ekrana bastıran bir main fonksiyonu kodlayınız:

     Ödev 5: Amiral battı programı yazılacak 5x5 boyutlarında bir matris içerisine 3 çeşit gemi yerleştirilebiliyor (boyutlarının 2,3 ve 4 olduğunu kabul edebilirsiniz), nesne yönelimli tasarımını ve kodlamasını yazınız. (6 Aralık 2010 tarihine kadar)

    Ödev 6:Emlak yönetim programı yazılacak. Bunun için emlak stoğunu tutan kısım 13 Aralık 2010 tarihine kadar ve müşteri bilgilerini tutan kısım da 20 Aralık 2010 tarihine kadar yazılacak (ödev iki parçadan oluşuyor). ilk kısmında (emlak bilgilerini tutan kısımda) aşağıdaki bilgiler bulunacaktır

    Emlak bilgileri:

    Yukarıdaki bilgilere ilave olarak, bir emlağın tekrar tekrar kiralanabileceğini / satılabileceğini dikkate alarak nesne yönelik olarak tasarlayınız.

     


     

    Proje

    Projeleriniz 3 aşamadan oluşmaktadır.

    1. Kodlama (31 Aralık Cuma gününe kadar teslim edilecek)

    2. Rapor (31 Aralık Cuma gününe kadar teslim edilecek)

    3. Sunum ( Bu bağlantıya tıklayarak bir randevü alınız. Her grup tek bir randevü alacaktır. Randevü alım işlemi 31 Aralık Cuma günü kapatılacaktır. Bu tarihe kadar randevü almayan grupların sunum yapmayacağı kabul edilecektir. )

    Projenizde bulunması gereken asgari gereksinimler (minimum requirements), derste işlenen şu konuların kapsanmasıdır:

    Polymorphism, Constructor, Inheritance, Aggregation, Object Arrays, Exception Handling, Encapsulation

    Ayrıca projelerinizin raporlarında, projenizi kullanacak olan en az 3 kullanıcı grubu tanımlayıp bu gruplar için senaryoları anlatmanız gerekmektedir. (Örneğin öğrenci otomasyonu için hoca, öğrenci ve idari personel tanımlayıp, öğrencinin ders seçme ve dersten geçmesi gibi senaryoların (ve elbette diğer kullanıcılar için farklı senaryoların) kodlanarak raporlanması gerekmektedir.)

    Yukarıdaki bu konular asgari gereksinim olup bunların tamamının yapılması halinde ancak asgari gereksinim yerine getirilmiş olacaktır. Projeniz ayrıca kodlama becerileri, senaryolarınızın başarısı ve kullanılabilirlik gibi ölçülerden notlanacaktır. Örneğin sadece teorik olarak kodlanan ve hiçbir kullanım özelliği bulunmayan bir öğrenci otomasyonu bu konuda not alamayacaktır.