Skip to content

Kocaeli Üniversitesi Programlama Laboratuvarı proje çözümleri

Notifications You must be signed in to change notification settings

muhammedzahit/KOU-Programming-Lab

Repository files navigation

Kocaeli Üniversitesi Programlama Labaratuvarı

Aşağıdaki tüm projeler Yavuz Sefa Kırıkçı ve Muhammet Zahit Aydın tarafından hazırlanmıştır.
  1. JavaFx Card Game
  2. C/C++ Minimum Enclosing Circle
  3. C/C++ Text Word Counter
  4. Courier Management System
  5. Samurai Sudoku Solver
  6. PDF Upload Platform
  7. Neo4j Akademik Yayın Platformu

JavaFX Card Game

JavaFx kütüphanesi ile hazırlanmış bir kart oyunu projesi. Oyun içerisinde iki mod bulunmakta. İlk mod Futbolcu kartları için hazırlanmıştır. İkinci mod ise Basketbolcu kartları için hazırlanmıştır.Oyunun hangi modda olduğu arkaplan görseline bakarak karar verebilirsiniz. Oyun içerisinde oyuncuların kartları karşılaştırılarak kazanıp kaybetmeleri sağlanmıştır. Oyunun amacı oyuncuların kartlarını bitirmek ve rakibini yenmek. Oyunun sonunda kazanan oyuncu ekrana yazdırılmaktadır.
Oyun Görselleri:

Görsel 1: plot

Görsel 2: plot

Görsel 3: plot

Görsel 4: plot

Görsel 5: plot

Minimum Enclosing Circle

C++ programlama dili kullanılarak verilen noktaların içerisine en küçük çemberi çizdiren program. Programın çalışma mantığı verilen noktaların içerisine en küçük çemberi çizmek için en küçük çemberin merkezini bulmak ve merkezden her noktaya olan uzaklığı bulmak. Bu uzaklıkların en büyüğü çemberin yarıçapı olacaktır. Programın çalışma mantığına ait görsel aşağıda verilmiştir.

B-Spline Spline interpolation kullanılarak bu noktalardan geçen eğri bulma problemi çözülmeye çalışılmıştır. Bu eğriye göre en küçük çemberin merkezini bulmak için Newton-Raphson yöntemi kullanılmıştır. Bu yöntemle bulunan merkez noktası ve yarıçapı kullanılarak en küçük çember çizdirilmiştir.

Görsel 1:

plot

Görsel 2:

plot

Görsel 3:

plot

Görsel 4:

plot

Text Word Counter

Program, C programlama dili kullanarak metnin içerisinde hangi kelimenin kaç defa geçtiğini bulmayı amaçlar. Daha sonra bu kelimeleri ve sayısı çıktı.txt adlı dosyaya yazdırır. Kelimelerin tekrar sayılarına göre sıralanmış halini bellekte efektif bir şekilde yönetmek için Linked List yapılarını kullanır.

Görsel 1:

plot

Görsel 2:

plot

Courier Management System

Nodejs programlama dili kullanılarak bir kurye yönetim sistemi yapılmak amaçlanmıştır. Kullanıcı arayüz üzerinde istediği noktalara tıklayarak kuryenin gitmesi gereken yerleri işaretler ve 'Kargoyu Hareket Ettir' butonuna basar.

Uygulama Google Maps API ile bağlantı kurar ve seçilen konumlar arasındaki mesafeleri ve gidilebilecek en kısa yolları çeker.

Daha sonra Djkstra algoritması kullanılarak en kısa yolu bulur ve bu yolu kullanarak kuryeyi hareket ettirir.

Görsel 1:

plot

Görsel 2:

plot

Görsel 3:

plot

Görsel 4:

plot

Görsel 5:

plot

Samurai Sudoku Solver

Java programlama dili kullanılarak samurai sudoku çözümleyici bir program yazılmıştır. Sudoku çözümleme problemi 9x9'luk bir sudoku çözümlemekten farklı olarak 9 adet 9x9'luk sudoku çözümlemekten oluşmaktadır. Bu 9 adet sudoku çözümlemesi için 'Divide and Conquer' yaklaşımı kullanılmıştır. Eğer bir hareket yapıldığında sudoku çözülemezse bu hareket geri alınır ve başka bir hareket denenir. Bu işlem sudoku çözülebilene kadar devam eder.

Program aynı zamanda 'Multithreading' konusunu da kapsamaktadır. Çözümleme işlemi için eğer thread sayısını arttırsak çözümleme süresi azalır mı? sorusuna cevap arar. Sonuç olarak thread sayımız belirli bir düzeye kadar arttırıldıkça çözümleme süresi azalmaktadır.

Görsel 1:

plot

Görsel 2:

plot

Görsel 3:

plot

PDF Upload Platform

Proje, kullanıcı ve admin panellirinin bulunduğu bir dosya yükleme sistemi oluşturmayı amaçlamıştır.

Başlangıçta kullanıcıdan email ve şifre bilgilerine göre giriş yapması istenir. Eğer kullanıcı bilgileri veritabanında bulunuyorsa kullanıcı yetkinliğine göre panel sayfasına yönlendirilir.

Admin yetkisine sahip kullanıcılar veritabanındaki kullanıcı giriş bilgilerini güncelleyebilir. Aynı zamanda sisteme yüklenen pdf dosyalarını belirli kriterlere göre sorgulayabilir.

User yetkisine sahip kullanıcılar veritabanında bulunan login id’lerine göre sisteme pdf dosyası yükleyebilirler. Sorgu bölümünde ise sadece kendi yükledikleri dosyalara erişebilirler.

Görsel 1:

plot

Görsel 2:

plot

Görsel 3:

plot

Görsel 4:

plot

Görsel 5:

plot

Görsel 6:

plot

Görsel 7:

plot

Neo4j Akademik Yayın Platformu

Proje,Neo4j veritabanı kullanarak bir akademik yayın platformu oluşturmayı amaçlamıştır. Neo4j veritanı projeden bağımsız bir sunucuda çalışmaktadır. Proje gerekli authentication bilgilerini kullanarak bu sunucuya bağlanır ve veritabanı üzerinde işlemler yapar.

Server tarafında Nodejs kullanılmıştır. Client tarafında ise React kullanılmıştır. Server, Client'ın istediği Yayın Ekleme, Yayın Silme, Yayın Güncelleme, Yayın Listeleme, Yayın Sorgulama gibi işlemleri gerçekleştirir.

Client ise bu işlemleri gerçekleştirdikten sonra veritabanında yapılan değişiklikleri görebilmek için veritabanından verileri çeker ve ekrana basar.

Görsel 1:

plot

Görsel 2:

plot

Görsel 3:

plot

Görsel 4:

plot

Görsel 5:

plot

Görsel 6:

plot

About

Kocaeli Üniversitesi Programlama Laboratuvarı proje çözümleri

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published