//Kodlayan:İlhan BAHAR
//Kaynak:www.ilhanbahar.com
//22.10.2008
//Grafik Programı
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>//system çalışsın diye ekledim
float sinif_Ortalama,sinif_Topla;//Genel olsunlar ki fonks çekebilelim
int kisi;//Sınıf mevcudu
int aa,ba,bb,cb,cc,dc,dd,ff,gelen_Ort;//Tek tek harf kodlarını genel tanımladık
float aa_Topla,ba_Topla,bb_Topla,cb_Topla,cc_Topla,dc_Topla,dd_Topla,ff_Topla;//Her harfin toplamını alıyoruz
float aa_Ort,ba_Ort,bb_Ort,cb_Ort,cc_Ort,dc_Ort,dd_Ort,ff_Ort;//Her harfin ortalamasını alıyoruz
float Ortalama_Hesapla(int,int);
char *Harf_Notu(float);
void Yildiz_Bas(float);
void Ekrana_Bas(void);
float Ortalama_Hesapla(int vize,int final)
{
float ortalama=(vize*0.3)+(final*0.7);//Ortalamayı hesapla
sinif_Topla=sinif_Topla+ortalama;//Sınıf ortalamasını topla
sinif_Ortalama=sinif_Topla/kisi;//Gerçek ortalamayı bul
return ortalama;
}
char *Harf_Notu(float ortalama)//Harf değişkenlerini bul
{
if (ortalama<=100 && ortalama>=93)
{aa++;aa_Topla=aa_Topla+ortalama;aa_Ort=(aa_Topla/aa);return “AA”;}//Burada her harf için ortalama alınıp AA değeri gönderiliyor
else if (ortalama<=92 && ortalama>=86)
{ba++;ba_Topla=ba_Topla+ortalama;ba_Ort=(ba_Topla/ba);return “BA”;}
else if (ortalama<=85 && ortalama>=79)
{bb++;bb_Topla=bb_Topla+ortalama;bb_Ort=(bb_Topla/bb);return “BB”;}
else if (ortalama<=78 && ortalama>=72)
{cb++;cb_Topla=cb_Topla+ortalama;cb_Ort=(cb_Topla/cb);return “CB”;}
else if (ortalama<=71 && ortalama>=65)
{cc++;cc_Topla=cc_Topla+ortalama;cc_Ort=(cc_Topla/cc);return “CC”;}
else if (ortalama<=64 && ortalama>=58)
{dc++;dc_Topla=dc_Topla+ortalama;dc_Ort=(dc_Topla/dc);return “DC”;}
else if (ortalama<=57 && ortalama>=50)
{dd++;dd_Topla=dd_Topla+ortalama;dd_Ort=(dd_Topla/dd);return “DD”;}
else if (ortalama<=49 && ortalama>=0)
{ff++;ff_Topla=ff_Topla+ortalama;ff_Ort=(ff_Topla/ff);return “FF”;}
else
{printf (“Yanlis giris yaptiniz!”);}
}
void Yildiz_Bas(float basma_Sayisi)//Artık yıldız basmaya geldi
{
char x;//Ekrana ascii kodlarını basmak için tanımladık
for (int i=10;i<=basma_Sayisi;i=i+10)
{
printf (“%c”,219);//Her on katına bir tane kare bastırıyoruz
}
float kalan;
kalan=(int)basma_Sayisi % 10;
if (kalan<5 && kalan>0)//Not ortalaması 5 küsüratlı ise bir tane basacak
printf (“%c”,176);
if (kalan>=5 && kalan<10)
printf (“%c%c”,176,176); //Not ortalama 5 üstünde ise iki tane soluk kare basacak
}
void Ekrana_Bas(void)//Ekrana harfi,ortalamayı,toplam mevcut sayısını basıp,grafik fonskiyonunu çağıralım
{
printf (“nn————————————————————————–n”);
printf (“Harf tOrtalama tToplam ttttGrafik”);
printf (“nAA t%d tt%d tttt”,(int)aa_Ort,aa);Yildiz_Bas(aa_Ort);
printf (“nBA t%d tt%d tttt”,(int)ba_Ort,ba);Yildiz_Bas(ba_Ort);
printf (“nBB t%d tt%d tttt”,(int)bb_Ort,bb);Yildiz_Bas(bb_Ort);
printf (“nCB t%d tt%d tttt”,(int)cb_Ort,cb);Yildiz_Bas(cb_Ort);
printf (“nCC t%d tt%d tttt”,(int)cc_Ort,cc);Yildiz_Bas(cc_Ort);
printf (“nDC t%d tt%d tttt”,(int)dc_Ort,dc);Yildiz_Bas(dc_Ort);
printf (“nDD t%d tt%d tttt”,(int)dd_Ort,dd);Yildiz_Bas(dd_Ort);
printf (“nFF t%d tt%d tttt”,(int)ff_Ort,ff);Yildiz_Bas(ff_Ort);
}
main(void)
{
char cevap; //While için koşul değişkeni
char *harf_Al;//Harfleri fonskiyondan alıyoruz
do{
kisi++;//Kişileri artıralım
system (“cls”);//Ekranı sil
int vize,final;
char ad[20],soyad[20];
printf (“Ad Soyad:”);
scanf (“%s %s”,&ad,&soyad);
printf (“nVize (0-100):”);
scanf (“%d”,&vize);
printf (“nFinal (0-100):”);
scanf (“%d”,&final);
gelen_Ort=(int)Ortalama_Hesapla(vize,final);
printf (“nnBasari Notu:%d”,gelen_Ort);
harf_Al=Harf_Notu(gelen_Ort);//Burada fonksiyon çağrılarak birden fazla kullanılmamasını sağlıyoruz.Bu şekilde fonskiyon içindeki sayaç düzgün çalışıyor.
printf (“nnHarf Notu:%s”,harf_Al);
printf (“nnSinif Ortalamasi:%d”,(int)sinif_Ortalama);
Ekrana_Bas();
printf (“nnDevam etmek ister misiniz? (E/H) “);
scanf (“%s”,&cevap);
}while(cevap==’e’);//evet olduğu sürece devam
}
Henüz yorum yapılmamış