C dili ile grafikli not hesaplama (Fonksiyonlu)

//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

}

Benzer Yazılar

Henüz yorum yapılmamış

Yorum Yazın

Su elementleri kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Arama
RSS
Beni yukari isinla