Nesne Tabanlı Programlama (Güz-2016) Hafta-13

package calisma.main;
import calisma.yfonksiyon.sayi;
import calisma.islemler.dizi;
import calisma.islemler.tekil;

public class baslangic extends sayi{
	public baslangic()
	{
		startup();	
	}
	
	public void menu()
	{
		boolean durum=true;
		
		dizi d = new dizi();
		tekil t = new tekil();
		do{
		
			ekranayaz("Menu:\n\n1)Dizi İşlemleri\n2)Tekil Sayı İşlemleri\n3)Çıkış");
			String veri = verigetir("Seçiniz:");

			switch(veri)
			{
				case "1": d.startup(); break;
				case "2": t.startup(); break;
				case "3": durum=false; ekranayaz("Çıkış Yapılıyor"); break;
				default: ekranayaz("Hatalı Giriş");
		
			}
		}while(durum);
	}
	
	public static void main(String[] aas){
		new baslangic();
	}

}
package calisma.yfonksiyon;

public abstract class sayi{

	public abstract void menu();
	
	public void startup()
	{
		menu();
	}
	
	public String verigetir(String msg)
	{
		return System.console().readLine(msg);
	}
	
	public void ekranayaz(String msg)
	{
		System.out.println(msg);
	}
	
	public int sayigirint(String msg){
		int sayi=0;
		boolean durum=true;
		
		do{
			try{
				sayi=Integer.parseInt(verigetir(msg));
				durum=false;
			}
			catch(Exception ex)
			{
				ekranayaz("Sayı formatı geçersiz!");
			}
			
			
		}
		while(durum);
		
		return sayi;
	
	}

}

 

package calisma.islemler;
import calisma.yfonksiyon.sayi;
import java.util.*;

public class dizi extends sayi{

	private int[] elemanlar;
	
	public void menu()
	{

		boolean durum=true;
		do{
		ekranayaz("Dizi İşlemleri:\n\n1)Sayi Gir\n2)Max/Min\n3)Ortalama\n4)Ana menü");
		String secim = verigetir("Seçim:");
		
		switch(secim)
		{
			case "1": sayigir(); break;
			case "2": maxmin(); break;
			case "3": ortalama(); break;
			case "4": durum=false; break;
			default: ekranayaz("Hatalı Giriş"); break;
		}
		}while(durum);	
		
	}
	
	public void sayigir()
	{
		int adet = sayigirint("Girilecek sayı adedi:");
		
		elemanlar= new int[adet];
		
		for(int i=0;i<adet;i++)
			elemanlar[i]=sayigirint((i+1)+". sayı:");
	
	}
	public void kontrol()
	{
		if(elemanlar!=null && elemanlar.length>0)
			return;
			
		sayigir();	
	
	}
	public void maxmin()
	{
		kontrol();
		Arrays.sort(elemanlar);
		ekranayaz("Max: "+elemanlar[elemanlar.length-1] +" Min: "+elemanlar[0]);
		
	
	}
	
	public void ortalama()
	{
		kontrol();
		double toplam=0;
		
		for(int i =0;i<elemanlar.length;i++)
			toplam+=elemanlar[i];
			
		double ort = toplam/elemanlar.length;
		ekranayaz("Ortalama: "+ort);	
	}

}
package calisma.islemler;
import calisma.yfonksiyon.sayi;

public class tekil extends sayi{

	int eleman;
	boolean islem=false;
	
	public void menu()
	{

		boolean durum=true;
		do{
		ekranayaz("Tekil İşlemleri:\n\n1)Sayi Gir\n2)Tek-Çift\n3)Ana menü");
		String secim = verigetir("Seçim:");
		
		switch(secim)
		{
			case "1": sayigir(); break;
			case "2": tekcift(); break;
			case "3": durum=false; break;
			default: ekranayaz("Hatalı Giriş"); break;
		}
		}while(durum);	
		
	}
	
	
	public void sayigir()
	{
		eleman = sayigirint("Sayı Giriniz:");
		islem=true;
	
	
	}
	public void kontrol()
	{
		if(islem)
			return;	
		sayigir();	
	}
	
	public void tekcift()
	{
		kontrol();
		if(eleman%2==0)
			ekranayaz(eleman+" sayısı çift");
		else
			ekranayaz(eleman+" sayısı tek");
	}

}

 

NTP (Güz-2016) Hafta-13

Share