package bagildegerlendirme;
import bagildegerlendirme.ortaklar.*;
import bagildegerlendirme.hesaplamalar.*;
public class calistir extends ortak {
public calistir()
{
int notlar[] = {
30,40,50,30,30,
10,01,32,33,29,
25,12,32,29,28,
23,23,32,38,69,
23,10,53,29,32,
30,35,10,64,32,
48,32,32,5,64,
36,64,34,67,32
};
ortalamahesapla(notlar);
String tip="tablo2";
if(ortalama<29.5 || ortalama >=59.5)
{
tip="tablo1";
}else
if(ogrsay<30)
tip="tablo1";
System.out.println("Bagil Icin Ogr Say:"+ogrsay+" Ort:"+ortalama);
ortak t;
System.out.println("Tablo-1");
new tablo1(notlar).histogramgoster();
if(tip.equals("tablo1"))
{
System.out.println("Tablo-1 Calisacak!");
//t = new tablo1(notlar);
}
else
{
System.out.println("Tablo-2");
t = new tablo2(notlar,ortalama,ogrsay);
t.histogramgoster();
}
}
public static void main(String[] args) {
new calistir();
}
}
package bagildegerlendirme.ortaklar;
public class ortak {
public int ogrsay;
public double ortalama;
public int histogram[]= new int[9];
public void ortalamahesapla(int[] notlar)
{
double toplam=0;
for(int i=0;i<notlar.length;i++)
{
if(notlar[i]>14 && notlar[i]<86)
{
toplam+=notlar[i];
ogrsay++;
}
if(ogrsay>0 && toplam>0) {
ortalama=yuvarla(toplam/ogrsay);
}
}
}
public double yuvarla(double sayi)
{
double sonuc = Math.round(sayi*100);
sonuc/=100;
return sonuc;
}
public void histogramgoster()
{
String[] harfler= {"AA","BA","BB","CB","CC","DC","DD","FD","FF"};
for(int i=0;i< harfler.length;i++)
{
System.out.println(harfler[i] + "::" + histogram[i]);
}
}
}
package bagildegerlendirme.hesaplamalar;
import bagildegerlendirme.ortaklar.*;
public class tablo1 extends ortak{
public tablo1(int[] notlar)
{
for(int i=0;i<notlar.length;i++)
{
int hesap=hesapla(notlar[i]);
histogram[hesap]++;
}
}
private int hesapla(int not)
{
int deger[]= {90,80,70,65,60,55,50,40};
for(int i=0;i<deger.length;i++)
if(not>=deger[i])
return i;
return 8;
}
}
package bagildegerlendirme.hesaplamalar;
import bagildegerlendirme.ortaklar.*;
public class tablo2 extends ortak {
public tablo2(int[] notlar, double ortalama, int ogrsay)
{
double sapma= standartsapma(notlar, ortalama);
System.out.println("sapma:"+sapma);
for(int ogr=0;ogr<notlar.length;ogr++)
{
if(notlar[ogr]>29 && notlar[ogr]<86)
{
double z= zdeger(sapma,ortalama,notlar[ogr]);
double t= tdeger(z);
int indis=hesap(ortalama,t);
histogram[indis]++;
}
else
{
if(notlar[ogr]<30)
{
histogram[8]++;
}
else
{
//>85
histogram[0]++;
}
}
}
}
private int hesap(double ortalama,double t)
{
double degerler[]= new double[0];
/*double iyi[]= {66,62,58,54,50,46,42,30};
double orta[]= {70,66,62,58,53,49,44,34};
double zayif[]= {74,70,66,62,57,51,47,36};
*/
if(ortalama>49.5)
degerler = new double[] {66,62,58,54,50,46,42,30};
else
if(ortalama>39.5)
degerler = new double[] {70,66,62,58,53,49,44,34};
else
if(ortalama>29.5)
degerler = new double[] {74,70,66,62,57,51,47,36};
for(int i=0;i<degerler.length;i++)
if(t>=degerler[i])
return i;
return 8; // FF
}
private double standartsapma(int[] notlar, double ortalama)
{
int sayac=0;
double toplam=0;
for(int i=0;i<notlar.length;i++)
{
if(notlar[i]>14 && notlar[i]<86)
{
toplam+=Math.pow((notlar[i]-ortalama),2);
sayac++;
}
}
if(sayac>0 && toplam>0)
{
toplam/=sayac;
toplam=Math.sqrt(toplam);
}
// sapma 0 olamaz
if(toplam==0.0)
toplam=1.0;
return toplam;
}
private double zdeger(double sapma, double ortalama, int not)
{
double sonuc=(not-ortalama)/sapma;
return sonuc;
}
private double tdeger(double zdeger)
{
double sonuc= yuvarla(50+10*zdeger);
return sonuc;
}
}