Programalama > JAVA - JSP


Ort. 5
Puan ver:
Açıklama:

Ödevin amacı bir banka sistemi içinde birden çok müşterinin, birden çok hesabı olmasını sağlamak. Bu hesaplar birikimli yada vadeli olarak 2 tür olabilir. Fakat factory patterni sayesinde daha fazla hesap türü eklenebilir, buda sistemin geliştirilebilir ve esnek bir yapıda olmasının bir sonucudur. IntHesapTuru’nden implement edilen yeni sınıflar ve ConHesap sınıfına eklenecek yeni hesap türleri ile sistem gelişebilir.
Banka sınıfında banka adı ve müşteri sayısı dataları private olarak tanımlanmıştır, müşteriler bir arrayde tutulur. Müşteri sınıfından türetilen nesneler bu arrayde saklanır. Bu sınıfta müşteri ekleme ve listeleme metodları bulunur.
Müşteri sınıfında hesaplar sınıfından yaratılan ve hesapları tutan hesaplar adlı bir array vardır. Bu arraye hesap ekleme ve listeleme metodalrı bulunur. Bu sınıfta ayrıca müşterinin adı ve hesap numarısı tutulur. Banka sınıfı ile müşteri sınıfı arasında 1 e N ilişkisi bulunur.
Hesap sınıfında oluşturulan hesabın verilerinin gönderildiği bir contructor vardır, HesapTuruBelirle() metoduna gönderilen bir string ile hesap turu belirlenir. Müşteri sınıfı ile müşteri sınıf arasında 1 e N ilişkisi vardır.
IntHesap interface IntHesapTuru tipinde bir değer dondurur. HesapTuruAta abstract metdonuna yollanacak bir string ile bu sağlanır.
ConHesap sınıfında IntHesap interfacenin HesapTuruAta metodunun gerçekleştirimi yapılır.
IntHesapTuru interfacinde BakiyeHesapla abstarct metodu tanımlanır.
VadeliHesap ve BirikimHesap sınıfları IntHesapTurunu implement ederler,abstract BakiyeHesapla metodunu gerçekleştirimini sağlarlar. 
Test sınıflarında oluşturulan sınıflardan nesne oluşturulabiliyor mu? Oluşturulan nesneler veri tutabiliyor mu (set)? Bu değerler geri döndürülebiliyor mu (get)? sorularına yanıt alınır. 
	
Hazırlama Ortamı:
Eclipse



public class banka {

	
	private String bankaAdi;
	private Musteri[] musteriler = new Musteri[100]; 
	private int musteriSayisi = 0;
	
	public banka(String ad){
	bankaAdi=ad;
	}
	
	public void MusteriEkle(Musteri m){
	musteriler[musteriSayisi++]=m;}
	
	public void Listele(){
	for (int i=0;i<musteriSayisi;i++)
	System.out.println(musteriler[i].MusteriBilgisiListele());}
	
	public String getAd(){
		return bankaAdi;}
	public Musteri getMusteri(){
		return musteriler[musteriSayisi-1];}
	
	
}

public class Musteri {
	private String adSoyad;
	private long musteriNo;
	private Hesap[] hesaplar=new Hesap[100];
	private int hesapSayisi=0; 
	
	
	public Musteri(String isim,long no){
		adSoyad=isim;
		musteriNo=no;}
	
	public void HesapEkle(Hesap h){
			hesaplar[hesapSayisi++]=h;
			}
	public String MusteriBilgisiListele(){
		String metin=new String();
		metin+=adSoyad+" "+musteriNo+" ";
		for(int i=0;i<hesapSayisi;i++)
			metin+="\n"+hesaplar[i].HesapBilgisiListele();
		
		return metin;
		
	}
	public Hesap getHesap()
	{
		return hesaplar[hesapSayisi-1];
	}	
}

public class Hesap {
	private long hesapNo;
	private long bakiye;
	private String baslangicTarihi;
	private IntHesapTuru tur;
	private IntHesap fac;
	
	public Hesap(long hesapNo,String baslangicTarihi,long bakiye){
		this.hesapNo=hesapNo;
	    this.baslangicTarihi=baslangicTarihi;
	    this.bakiye=bakiye;
	}
	public String getBaslangicTarihi() {
		return baslangicTarihi;
	}
	public long getHesapNo() {
		return hesapNo;
	}
	public long getBakiye() {
		return bakiye;
	}
	public void HesapTuruBelirle(String turadi)
	{		
	  fac=(IntHesap) new ConHesap(this);
	  tur=(IntHesapTuru)fac.HesapTuruAta(turadi);
	  	
	}
	public String HesapBilgisiListele(){
		double bakiyeMiktari=tur.BakiyeHesapla(this);
		String metin=new String();
		metin+=getBaslangicTarihi()+" "+getHesapNo()+" "+bakiyeMiktari;
		return metin;
	}
}
public interface IntHesap {
		
IntHesapTuru HesapTuruAta(String tur);	
}
public class ConHesap implements IntHesap{
	private Hesap h;
	private String tur;
	
public ConHesap (Hesap h)
{
	this.h=h;

}	

public IntHesapTuru HesapTuruAta(String tur)
{    this.tur=tur;
	if ("birikim".equals(tur))
		return (IntHesapTuru)new BirikimHesap(h);
	   else
	return (IntHesapTuru)new VadeliHesap(h);

}
public Hesap getHesap()
{
	return h;
     }
}
public interface IntHesapTuru {
	double BakiyeHesapla(Hesap h);
	
}

public class BirikimHesap implements IntHesapTuru{
	private Hesap h;
	private double gunlukFaiz=0.1;
	public BirikimHesap(Hesap h)
	{
	this.h=h;	
	
	}
    public Hesap getHesap()
        {
    	return h;
    	}
    
	public double BakiyeHesapla(Hesap h)
	    {
		return (double)(h.getBakiye()*gunlukFaiz*60);	
	    }
	public double getgunlukfaiz()
		{
		return gunlukFaiz;
		}
}
public class VadeliHesap implements IntHesapTuru {
	private Hesap h;
	private double yillikFaiz=0.15;
	public VadeliHesap(Hesap h)
	{
	this.h=h;	
	
	}
	public double BakiyeHesapla(Hesap h)
	{
		
	    return (double)(h.getBakiye()*yillikFaiz*450);	
	}
	public double getyillikfaiz()
	{
		return yillikFaiz;
	}
	public Hesap getHesap()
	{
		return h;
	}
}


*****Test Sınıfları*****
import junit.framework.TestCase;
public class TestBanka extends TestCase {

	banka btest;
	
	protected void setUp()
	{
		btest= new banka("garanti");
	}
	public void testBanka() {
	assertEquals("garanti",btest.getAd());	
	}
	
	public void testMusteriEkle() {
		Musteri m=new Musteri("isim",000);
		btest.MusteriEkle(m);
		assertEquals(m,btest.getMusteri());
	}
}

import junit.framework.TestCase;
public class TestMusteri extends TestCase {
	Musteri m;
	Hesap h;
	protected void setUp() {
		m  = new Musteri("çağlar anar",123);
		h = new Hesap(112,"12,2009",9000);
		m.HesapEkle(h);
	}

	public void testMusteri() {
		assertNotNull(m);		
	}

	public void testHesapEkle() {
		assertEquals(m.getHesap(),h);
		
	}

}

import junit.framework.TestCase;
public class TestHesap extends TestCase {

	Hesap h;
	protected void setUp() {
		h = new Hesap(112,"12,2002",2500);
		h.HesapTuruBelirle("birikim");
	}

	public void testHesap() {
		assertNotNull(h);
	}

	public void testGetBaslangicTarihi() {
		assertEquals(h.getBaslangicTarihi(),"12,2002");
	}

	public void testGetHesapNo() {
		assertEquals(h.getHesapNo(),112);
	}

	public void testGetBakiye() {
		assertEquals(h.getBakiye(),2500);
	}
}
import junit.framework.TestCase;
public class TestConHesap extends TestCase {
	
    Hesap h;
    ConHesap ch;
	protected void setUp() {
		
		h = new Hesap(123,"11,2002",345);
		h.HesapTuruBelirle("birikim");
		ch = new ConHesap(h);
		
	}


	public void testHesapTuruAta() {
		assertEquals(h,ch.getHesap());
	}
}
import junit.framework.TestCase;
public class TestBirikimHesap extends TestCase {

	BirikimHesap bht;
	Hesap h;
	protected void setUp()
	{		
		h = new Hesap(1234,"12,2004",2500);
		bht=new BirikimHesap(h);
		
	}
    public void testConstructor()
    	{
    	assertEquals(bht.getHesap(),h);
    	}
	public void testBakiyeHesapla()
	{
	   assertEquals((int)(2500*bht.getgunlukfaiz()*60),(int)bht.BakiyeHesapla(h) );	
	}
}
import junit.framework.TestCase;
public class TestVadeliHesap extends TestCase {

	VadeliHesap vht;
	Hesap h;
	protected void setUp()
	{		
		h = new Hesap(1234,"12,2004",2500);
		vht=new VadeliHesap(h);
		
	}
    public void testConstructor()
    	{
    	assertEquals(vht.getHesap(),h);
    	}
	public void testBakiyeHesapla()
	{
	   assertEquals((int)(2500*vht.getyillikfaiz()*450),(int)vht.BakiyeHesapla(h) );	
	}
}


Yorumlar                 Yorum Yaz
Bu hazır kod'a ilk yorumu siz yapın!
KATEGORİLER
ASP - 240
ASP.NET - 24
C# - 75
C++ - 174
CGI - 8
DELPHI - 247
FLASH - 49
HTML - 536
PASCAL - 246
PERL - 11
PHP - 160
WML - 9
XML - 2
Copyright © 2002 - 2024 Hazır Kod - Tüm Hakları Saklıdır.
Siteden yararlanırken gizlilik ilkelerini okumanızı tavsiye ederiz.
hazirkod.com bir İSOBİL projesidir.