Code Monkey home page Code Monkey logo

sigorta-yonetim-sistemi's Introduction

Sigorta Yönetim Sistemi


Sigorta firması için bir yazılım yaptığınızı düşünün. 
Sigorta firmasının "Bireysel" (Individual) ve "Kurumsal" (Enterprise) olmak üzere iki tip müşteri profili bulunmaktadır. 
Müşteri profili için "Account" isminde soyut sınıf (abstract class) tasarlayınız. 
Account sınıfı müşterinin sisteme giriş sonrasında tüm bilgilerinin tutulduğu hesap bilgisidir. 
"Account" sınıfı içinde "User" tipinde bir nesne referansı bulunur. (Aggeration ilişkisi olarak)



"User" sınıfı müşterinin kişi bilgilerini ifade eder. "User" sınıfında müşterinin

isim (String),
soyisim (String),
email (String),
şifre (String),
meslek (String),
yaş (int),
adres listesi (ArrayList<Address>)
sisteme son giriş tarihi (Date)

bilgileri bulunur. 
Ayrıca, "User" sınıfında ArrayList tipinde adreslerinin tutulduğu bir liste vardır. 
Adres bilgisi iki tiptir. Ev adresi ("HomeAddress") ve İş adresi ("BusinessAddress") olmak üzere iki tane sınıf tasarlayınız. 
Bu adres sınıfları "Address" isimli bir interface'den kalıtım alacaktır. 
Fakat, bu interface'de hangi fonksiyonların olması gerektiğine siz karar vereceksiniz.


Müşteri adreslerinin ekleyip çıkarılma sorumluluğunu üstlenmiş olan "AddressManager" isminde bir sınıf tasarlayınız. 
Bu sınıfın içinde "User" nesnesinin adres listesine eleman ekleme-çıkarma yapabilen iki tane static fonksiyon tanımlayınız. 
Bu fonksiyon isimlerini siz belirleyiniz.

"Account" sınıfında müşteri bilgilerini ekrana yazdıran "final" tipinde, değer döndürmeyen ve ismi "showUserInfo" bir fonksiyon tanımlayınız.

"Account" sınıfında müşterilerin yaptırdıkları sigortaları liste halinde saklayınız.
Sigortayı temsil eden "Insurance" isminde bir soyut sınıf tasarlayınız. Bu soyut sınıf içinde


sigortanın ismi (String),
sigortanın ücreti (double)
sigortanın başlangıç-bitiş tarihi (Date)

gibi değişkenlere sahip olacaktır. 
Ayrıca "calculate" isminde soyut bir fonksiyon tanımlanacaktır. 
Bu soyut fonksiyon aşağıda kalıtım alınan sınıflarda doldurulacaktır.


Bu soyut sınıftan türeyen

"HealthInsurance" (özel sağlık sigortasu),
"ResidenceInsurance" (konut sigortası),
"TravelInsurance" (seyahat sigortası),
"CarInsurance" (otomobil sigortası)

4 tane alt sınıf tasarlayınız.
Her alt sınıf "calculate" isimli soyut fonksiyonu override ederek, sigorta ücretini kendine göre hesaplayacaktır.

Yukarıdaki tanımları dikkate aldığımızda soyut sınıf olan "Account" sınıfında aşağıdakiler yer almalıdır.

kullanıcının login olma durumu (AuthenticationStatus)
kullanıcı nesnesi (User)
kullanıcının yaptırmış olduğu sigortaların listesi (ArrayList)

AuthenticationStatus tipinde bir enum tanımlayınız. 
Enum içinde SUCCESS ve FAIL isminde iki tane sabit tanımlayın. 
SUCCESS login işlemi başarılı ise kullanılacaktır. FAIL ise login olmamışsa kullanılacaktır.


kullanıcının hesabına login olabilmesi için bir fonksiyon tanımlanacaktır. 
Bu fonksiyon email ve şifre bilgisi alacak ve gelen email şifre bilgisini User sınıfındaki email ve şifre ile kıyaslayacaktır.
Eğer girilen bilgiler doğruysa giriş işlemi başarılı olacaktır. Ve kullanıcının login olma durumu SUCCESS'e çekilecektir.
Giriş işlemi başarısız ise "InvalidAuthenticationException" tipinde bir hata fırlatacaktır. 
Bu hata sınıfını Exception isimli Java sınıfından kalıtım alarak sizin yazmanız gerekecektir.


kullanıcının adreslerine ekleme yapabileceği bir soyut olmayan fonksiyon tanımlanacaktır. 
kullanıcının adreslerinden çıkartma yapabileceği bir soyut olmayan fonksiyon tanımlanacaktır. 
kullanıcının login olma durumunu veren değer döndüren fonksiyon tanımlanacaktır.

kullanıcının sigorta poliçesi ekleyebilmesi için soyut (abstract) bir fonksiyon tanımlanacaktır. 
Bu soyut sınıf "Individual" ve "Enterprise" isimli alt sınıflarda override edilerek doldurulacaktır. 
Çünkü, bireysel ve kurumsal müşterilerin ekledikleri paketlerin fiyatlarına uygulanan kar marjı farklı olacaktır.


"Individual" ve "Enterprise" sınıfları "Account" sınıfından kalıtım alacaktır.

AccountManager isminde bir sınıf tasarlayınız.
Bu sınıf içinde TreeSet tipinde bir veri listesi tutsun.
Oluşturduğunuz bireysel ve kurumsal hesapları bu listede saklayınız. 
bu sınıf içinde login isminde bir fonksiyon tanımlayınız. 
Bu fonksiyon dışarıdan verilen email ve şifre bilgisini alıp Account listesi üzerinde dolaşıp uygun bir giriş işlemi bulursa Account nesnesini çağrıldığı yere dönecektir.
Bu fonksiyon Account nesnesi üzerindeki "login" olma fonksiyonunu çağıracaktır. 
Unutmayın bu fonksiyon "InvalidAuthenticationException" tipinde hata fırlatabiliyordu. 
Bu nedenle burada try-catch mekanizması kurmayı unutmayınız.



"Account" sınıfından nesneleri TreeSet içinde tutacağımız için "Comparable" interface'den kalıtım almış olmasına dikkat edin. 
Ayrıca, "Account" sınıfının "hashCode" ve "equals" fonksiyonlarını doldurmayı unutmayın.



sigorta-yonetim-sistemi's People

Contributors

tajdingurdal avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.