Sınıf öğeli Dizide Sıralama Sorusu

Kişilere ait bilgilerin tutulmakta olduğu bir dizi verilmiştir. Aşağıdaki program için iki tane fonksiyon yazın.

  1. Dizi içindeki kişileri yaşlarına göre sıralayan bir fonksiyon yazın.
  2. Dizi içindeki kişileri adlarına göre sıralayan bir fonksiyon yazın.

classDataArray.java kodunu kullanarak gerekli düzenlemeleri yapın (programınız için gereksiz satırları silin) ve bu iki fonksiyonu nereye yazmanız gerektiğini belirleyin. Fonksiyonları yazdıktan sonra main() fonksiyonu içinde gerekli düzenlemeleri yaparak programın çıktısı olarak (1) ilk önce sırasız şekilde dizinin elemanlarını gösterin, daha sonra (2) yaşa göre sıralanmış dizinin elemanlarını gösterin ve sonra da (3) ada göre sıralanmış dizinin elemanlarını gösterin.

İsterseniz aşağıdaki kodu da kullanabilirsiniz. // sinifVeriDizisi.java

// sınıf nesnelerinden oluşan veri öğeleri

// programı şu şekilde çalıştırın: C>java SinifVeriUyg

////////////////////////////////////////////////////////////////

class Kisi

{

private String soyadi;

private String adi;

private int yasi;

//--------------------------------------------------------------

public Kisi(String soyad, String ad, int yas) // kurucu

{

soyadi = soyad;

adi = ad;

yasi = yas;

}

//--------------------------------------------------------------

public void kisiGoster()

{

System.out.print(" Soyadı: " + soyadi);

System.out.print(", Adı: " + adi);

System.out.println(", Yaşı: " + yasi);

}

//--------------------------------------------------------------

public String soyadGetir() // soyadını getirme { return soyadi; }

} // Kisi sınıf sonu

////////////////////////////////////////////////////////////////

class SinifVeriDizisi

{

private Kisi[] a; // diziye referans

private int elemanSayısı; // veri elemanlarının sayısı

public SinifVeriDizisi(int maksimum) // kurucu fonksiyon

{

a = new Kisi[maksimum]; // diziyi oluştur

elemanSayisi = 0; // henüz eleman yok

}

//--------------------------------------------------------------

public Kisi arama(String arananSoyad) // alanan değeri bulma

{

int j;

for(j=0; j<elemanSayisi; j++) // her eleman için,

if( a[j].soyadGetir().equals(arananSoyad) ) // öğe bulundu mu?

break; // bitmeden döngüden çık

if(j == elemanSayisi) // sona kadar gitti mi?

return null; // evet, bulamadı

else

return a[j]; // hayır, buldu

} // arama() bitti

//--------------------------------------------------------------

public void ekleme(String soyad, String ad, int yas) // kişiyi diziye ekle

{

a[elemanSayisi] = new Kisi(soyad, ad, yas);

elemanSayisi++; // eleman sayısını artır

}

//--------------------------------------------------------------

public boolean silme(String arananSoyad) // kişiyi diziden sil

{

int j;

for(j=0; j<elemanSayisi; j++) // değeri arama

if( a[j].soyadGetir().equals(arananSoyad) )

break;

if(j==elemanSayisi) // bulunamadı

return false;

else // bulundu

{

for(int k=j; k<elemanSayisi; k++) // aşağı kaydırma

a[k] = a[k+1];

elemanSayısı--; // eleman sayısını azalt

return true;

}

} // silme () bitti

//--------------------------------------------------------------

public void diziGoster() // dizinin bütün içeriğini gösterme

{

for(int j=0; j<elemanSayısı; j++) // her eleman için, a[j].kisiGoster(); // elemanı gösterme

}

//--------------------------------------------------------------

} // SinifVeriDizisi sınıfı bitti

////////////////////////////////////////////////////////////////

class SinifVeriUyg

{

public static void main(String[] args)

{

int maksimumBoyut = 100; // dizinin boyutu

SinifVeriDizisi arr; // diziye referans

arr = new SinifVeriDizisi(maksimumBoyut); // diziyi oluştur

// 10 tane öğe ekle

arr.ekleme("Evans", "Patty", 24);

arr.ekleme("Smith", "Lorraine", 37);

arr.ekleme("Yee", "Tom", 43);

arr.ekleme("Adams", "Henry", 63);

arr.ekleme("Hashimoto", "Sato", 21);

arr.ekleme("Stimson", "Henry", 29);

arr.ekleme("Velasquez", "Jose", 72);

arr.ekleme("Lamarque", "Henry", 54);

arr.ekleme("Vang", "Minh", 22);

arr.ekleme("Creswell", "Lucinda", 18);

arr.diziGoster(); // öğeleri göster

String arananKelime = "Stimson"; // öğe ara

Kisi bulundu;

bulundu = arr.arama(arananKelime);

if(bulundu != null)

{

System.out.print("Bulundu ");

bulundu.kisiGoster();

}

else

System.out.println(arananKelime + " bulunamadı.");

System.out.println("Smith , Yee, ve Creswell siliniyor.");

arr.silme("Smith"); // 3 öğe sil

arr.silme("Yee");

arr.silme("Creswell");

arr.diziGoster(); // öğeleri tekrar göster

} // main() bitti

} // SinifVeriUyg sınıfı bitti

soruldu: 01 Eki '15, 17:12

deanwinchester's gravatar image

deanwinchester
0111
cevap kabul oranı: 0%

Bu soruya ilk cevap veren sen ol!
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077
×3

Soruldu: 01 Eki '15, 17:12

Görüntüleme: 340 kez

Son güncelleme: 01 Eki '15, 17:12

powered by BitNami OSQA