Hızlı erişim:
Karadeniz Teknik Üniversitesi İstatistik ve Bilgisayar Bilimleri 2. Sınıf ikinci dönem Nesne Yönelimli Programlama dersi vize projesi.
2021 yılı 2. sınıf Bahar Dönemi N.Y.P. dersinde hocamız Tolga Berber C++ dilini ve Qt kütüphanesinin araçlarını kullanarak yapabileceğimiz 3 adet proje belirledi.
-
Belediye Taşımacılığı Yönetimi: Bu yazılımda bir belediyeye ait toplu taşıma sisteminin yönetilmesi istenmektedir.
-
Teknoloji Marketi Otomasyonu: Bu projede, bir teknoloji marketine ait ürünlerin yönetilmesi istenmektedir.
-
Kargo Firma Otomasyonu: Bir kargo firmasına ait gönderilerin yönetimini sağlayan bir yazılım geliştirmemiz beklenmektedir.
Bu projelerden bir tanesini en az 2 kişi, en fazla 3 kişilik gruplar halinde yapılmasını zorunlu tuttu. Biz 3 arkadaş olarak Kargo firma otomasyonu projesini yapmaya karar verdik.
Hedef
Yazılımın aşağıdaki yetenekleri sağlamalıdır!
-
Gönderiler sisteme kaydedilebilmelidir.
-
Her gönderinin desi türünden hesabı yapılabilmelidir Gönderi fiyatı desi üzerinden yapılacaktır.
-
Desi hesabı ağırlık veya hacim ile hesaplanabilir
- Normalde sadece hacim ile hesaplanır fakat firma ağırlık ile hesaplama mekanizması da istemektedir.
-
-
Gönderilerin ödemesine göre 2 farklı tür olabilir!
-
Gönderici Ödemeli
-
Alıcı Ödemeli
-
-
-
Firma Hizmet verdiği illeri (şubelerini) ve aralarındaki mesafeleri yazılıma girebilmelidir.
-
Firma gönderdiği adresleri kaydetmek istemektedir. Bu sebeple, gönderici veya alıcı adına göre gönderi esnasında kayıt yapılabilmelidir.
Bonus: Gönderilerin geliş sıralarına göre gönderilmeleri. (Yukarıdaki adımlar tamamlandıktan sonra değerlendirmeye tabidir.)
-
Gönderiler sisteme kaydedilebilmelidir.
-
Her gönderinin desi türünden hesabı yapılabilmelidir Gönderi fiyatı desi üzerinden yapılacaktır.
-
Desi hesabı hacim üzerinden yapılabiliyor.
-
Normalde sadece hacim ile hesaplanır fakat firma ağırlık ile hesaplama mekanizması da istemektedir.
-
Gönderilerin ödemesine göre 2 farklı tür olabilir! (Alici Ödemeli , Gönderici Ödemeli)
-
Firma Hizmet verdiği illeri (şubelerini) girebilmelidir.
-
Firma Hizmet verdiği illerin mesafelerini yazılıma girebilmelidir. Karayolları Genel Müdürlüğündeki iller arasındaki mesafe veritabanı kullanıldı.
-
Firma gönderdiği adresleri kaydetmek istemektedir. Bu sebeple, gönderici veya alıcı adına göre gönderi esnasında kayıt yapılabilmelidir.
Kritik:
Program ilk çalıştığında eğer şube eklenmediyse Kargo ekle ekranı çöküyor.Çok fazla test edemedik.- Bazen anlamsız şekilde çöküyor.
Normal
- Kargo Ekle ekranındaki sinyal slot bağlantısı olan Label'lar ilk açıldığında rastgele sayılar üretiyor.
Tutarın hesaplanması için ilk olarak şubelerin eklenmesi gerektir. Kargo tutarların hesaplanması oluşturduğumuz tablo için tıklayın.
Bu ekran da şube adı, telefon numarası, yetkiki kişi ve şube ekranını kaydediyoruz.
Bu ekranda KGM'den çektiğimiz iller arası uzaklık tablosunu kullanmak için Şube illerini önceden tanımladık. Tutarı hesaplamak ilin seçilmesi gerekmektedir.
Şubenin yeni kargo kaydetmesini sağlar. Bu ekranda Desi Hesaplama, Şube seçimi ve müşteri detayları bulanmaktadır. Bu bilgileri sisteme kaydetmektedir.
Elimizde 24x30x26 ebatlarında bir kolimiz olduğunu düşünelim. Kargo tutarını hesaplamak için önce desiyi hesaplamamız gereklidir.
Desi = En x Boy x Yükseklik / 3000
formülünden yararlanarak desi hesaplanır. Örneğimizdeki kolinin desisi 6.24 gelmekte.
İllerin uzaklıklarını aşağıdaki excel dosaysından almaktayız.
Uzaklıkları işem kolaylığı açısından 3 ayırdık.
Aralık (Km) | Çarpan |
---|---|
0-300 | 5 |
300-600 | 7 |
600- | 10 |
Örneğin;
Km | Çarpan | Desi | Tutar (TL) | |
---|---|---|---|---|
Adıyaman - Gaziantep | 150 | 5 | 6.24 | 31,20 |
Aksaray - Adıyaman | 580 | 7 | 6.24 | 43,68 |
Çorum - İstanbul | 614 | 10 | 6.24 | 62,40 |
Trabzon - İstanbul | 1248 | 10 | 6.24 | 62,40 |
KGM iller arası uzaklaklık için tıklayın.
İndirdiğimiz excel dosyasını numbers üzerinden düzenledik. Ve Python ile uygun hale getirdik.
Python kodları için tıklayın.
-
C++
-
Qt
-
Git