JAVA dili ile yazılmış çeşitli kod parçaları bu bölümde yer alır. Kaynak kodları eğitim amacına yönelik olup, geliştirme ve çalışma ortamında kullanılmasından doğabilecek sorunlardan UBenzer sorumlu tutulamaz.
Başlık da maşallah Melekler & Şeytanlar gibi oldu, neyse.
Nesneye Dayalı Programlama dersinin ilk ödevini bu hafta teslim ettik. Bizden basit bir restoran yönetim sistemi yazmamız istendi. Tabii ki nesneleri, nesneler arası kalıtım (inheritance), çok şekillilik (polymorphism), arayüzler (interface) kullanarak!
Proje JAVA’da geliştirildi. Takım halinde, üç kişi geliştirdik. Bazılarımız NetBeans kullandı, bazılarımız Eclipse. Bazılarımız ise Windows 7’de Eclipse’i bir türlü çalıştıramayıp Windows XP sanal makinesi kurdu. (Ben)
EK1: Eclipse’i Windows 7′de çalıştıramama nedenim şuymuş: Ben Windows 7′yi 64 bit kurmuştum. Ancak Eclipse 32 bit bir uygulama olduğundan JDK 64-bit’in yanına, 32-bit JDK da yüklemek gerekiyormuş. Yükledim, kurtuldum.
Projede nesneler arası iletişim, kalıtım ve çok şekilliliğe örnek bulabilirsiniz. Program ayrıca 1.5 sürpriz yumurta içeriyor, belki onları da bulabilirsiniz.
Programda üç tip kullanıcı için üç senaryo var: Yönetici, restoran ve kullanıcı ekleyip çıkartabiliyor. Restoran operatörü kullanıcının verdiği siparişleri onaylayıp kurye ile gönderiyor, yemek ve menü ekliyor. Müşteri ise sipariş veriyor.
Projenin kolay kontrolü için roller arası geçişi tek butona indirgedik. Ama normalde herkes kullanıcı adı ve şifresiyle girebilir. (User sınıfına User ve Pass eklenmesi yeterli olacaktır.)
Projenin kaynak kodlarını ve raporunu takım arkadaşlarım Gül Deliorman ve Özlem Gürses’in de onaylarını alarak burada paylaşıyorum. Devamını oku »
Interpreter (Yorumlayıcı olarak Türkçeleştirilebilir) kaynak kodunu satır satır işleten yazılım türüne verilen addır.
Külyutmaz 2.1 Gül Deliorman ile beraber JAVA’da geliştirdiğimiz yorumlayıcıdır. Ödevde bize verilen dilin kurallarına uygun her şeyi kabul ederken, kurallara aykırı hiçbir şeyi kabul etmemekte, kısaca kül yutmamaktadır. Sonuçta, verilen işlemi yorumlayarak (interpreting) bir tam sayı (integer) üretmektedir. Devamını oku »
Külyutmaz 1.0, Gül Deliorman ile beraber geliştirdiğimiz bir Lexical Analyzer ve Parser’dır. Ödevde bize verilen dilin kurallarına uygun her şeyi kabul ederken, kurallara aykırı hiçbir şeyi kabul etmemekte, kısaca kül yutmamaktadır. Devamını oku »
Dördüncü Veri Yapıları (Data Structures) projemiz çizgeler (graphs) üzerineydi. Proje temel olarak aşağıdakileri içeriyor:
Üçüncü veri yapıları projemizde bizden bir restoran bilgi sistemi yazmamız bekliyordu. Bu bilgi sisteminin verileri tutma biçimini tasarlarken bizden bellekte az yer kaplayacak şekilde optimize edilmesi (en iyileştirilmesi) değil, en çabuk ulaşılabilecek şekilde optimize edilmesi istenmişti.
Bu ödev aynı zamanda JAVA’da dosyalama işlemleri için de iyi bir örnek oluşturuyor. Oluşturduğumuz nesnelerin binary olarak ve doğrudan nesne olarak diske yazılıp diskten okunması ödev kapsamında istenmese bile, bizim teslim ettiğimiz ödevde yer alıyor.
Bu ödevde ikili arama ağacı (binary search tree) uygulaması, Hashtable kullanımına örnekler, JAVA’da vektör kullanımı, basit arayüz tasarımı ve ObjectInputStream ObjectOutputStream nesneleri ile veri kaydedip okuma örneklerine erişebilirsiniz. Devamını oku »