C Not Ortalaması Uygulaması
Sizlere bu yazımda bir arkadışımın ödevi için yazdığım c programlama dilinde bir uygulamadan bahsedeceğim. Problem şu : N adet öğrencinin arasınav, ödev, proje, yılsonu notlarının girildiği ve bu notlarla ortalamayı hesaplayan, standart sapmayı hesaplayan ve bu notlar sonunda her öğrencinin notunun harf karşılığını gösteren histogramı çizen programı yazınız.Ayrıca genel başarı ortalaması 100 üzerinden 50nin altındaysa tüm notları genel ortalamayı 50 yapacak bir katsayı ileçarpın. Sorumuz kısaca böyle. Bu uygulamayı yazmak için öncelikle Visual Studio 2008'i açtım ve oradan New->Project->Visual C++ ->Win32 Console Aplication dan yeni bir proje açtım. Kodlar için açıklamaları program içinde belirttim incelemek isteyenler için...
// p : Defines the entry point for the console application.
//#include "stdafx.h"
#include<stdio.h>
#include<math.h>
int _tmain(int argc, _TCHAR* argv[])
{int oSay,a1=0,a2=0,b1=0,b2=0,c1=0,c2=0,d1=0,d2=0,f1=0,f2=0,sat=0,eb;
float gOrt,gOrtToplam=0.0,ort,ortEkle,gOrtTop=0.0,ortalama[100],katSayi=0.0,not[100][5],sN=0,x=0;
char ortHarf[100];
printf("kac tane ogrenci gireceksiniz?\n");
scanf("%d",&oSay);
// N adet öğrencinin notlarını not adlı diziye yükle
for(int i=0;i<oSay;i++)
{
printf("%d. ogrenci icin \n",i+1);
printf("Ogrenci numarasini giriniz : ");
scanf("%f",¬[i][i]);printf("Ara Sinav notunu giriniz : ");
scanf("%f",¬[i][i+1]);printf("Odev notunu giriniz : ");
scanf("%f",¬[i][i+2]);printf("Proje notunu giriniz : ");
scanf("%f",¬[i][i+3]);printf("Yil sonu notunu giriniz : ");
scanf("%f",¬[i][i+4]);printf("======================================\n");
}printf("============ Sonuclar ================\n\n");
//ortalamayı hesapla
for(int j=0;j<oSay;j++)
{
ort=(not[j][j+1])*30/100+(not[j][j+2])*20/100+(not[j][j+3])*20/100+(not[j][j+4])*30/100;
gOrtToplam = gOrtToplam + ort;//genele ortalamaların toplamını bul
ortalama[j]=ort;
}gOrt = gOrtToplam/oSay;
printf("==========================\n");
printf("=Genel ortalama : %.2f =\n",gOrt);
printf("==========================\n\n");
//genel ortalama(başarı ortalaması) 50 den küçükse tüm notları katsayı ile çarp
if(gOrt<50)
{
float katSayi = 50/gOrt;
for(int k=0;k<oSay;k++)
{
not[k][k+1] = not[k][k+1] * katSayi;
not[k][k+2] = not[k][k+2] * katSayi;
not[k][k+3] = not[k][k+3] * katSayi;
not[k][k+4] = not[k][k+4] * katSayi;
}
//ortalamayı tekrar hesapla
gOrtToplam =0;
ort=0;
for(int j=0;j<oSay;j++)
{
ort=(not[j][j+1])*30/100+(not[j][j+2])*20/100+(not[j][j+3])*20/100+(not[j][j+4])*30/100;
gOrtToplam = gOrtToplam + ort;
ortalama[j]=ort;
}gOrt=0;
gOrt = gOrtToplam/oSay;
printf("================================\n");
printf("= Genel Ortalama Degistirildi =\n");
printf("= Yeni genel ortalama : %.2f =\n",gOrt);
printf("================================\n\n");
}//standart sapmayı hesapla
for(int i=0;i<oSay;i++)
{
x = x + pow((ortalama[i]-gOrt),2);
}
sN=sqrt(x/(oSay-1));
printf("========================\n");
printf("= Standart Sapma=%.2f =\n",sN);
printf("========================\n\n");
printf("==================================================================\n");
// ekranda gosterprintf("No AraSinav Odev Proje Yilsonu Ortalama HarfKarsiligi\n");
for(int l=0;l<oSay;l++)
{
printf("%.0f %.0f %.0f %.0f %.0f %.2f ",not[l][l],not[l][l+1],not[l][l+2],not[l][l+3],not[l][l+4],ortalama[l]);
if(ortalama[l]> 0 && ortalama[l]<40){ ortHarf[l]='F2'; printf("F2\n");}
if(ortalama[l]>39 && ortalama[l]<50){ ortHarf[l]='F1'; printf("F1\n");}
if(ortalama[l]>49 && ortalama[l]<55){ ortHarf[l]='D2'; printf("D2\n");}
if(ortalama[l]>54 && ortalama[l]<60){ ortHarf[l]='D1'; printf("D1\n");}
if(ortalama[l]>59 && ortalama[l]<65){ ortHarf[l]='C2'; printf("C2\n");}
if(ortalama[l]>64 && ortalama[l]<70){ ortHarf[l]='C1'; printf("C1\n");}
if(ortalama[l]>69 && ortalama[l]<75){ ortHarf[l]='B2'; printf("B2\n");}
if(ortalama[l]>74 && ortalama[l]<80){ ortHarf[l]='B1'; printf("B1\n");}
if(ortalama[l]>79 && ortalama[l]<90){ ortHarf[l]='A2'; printf("A2\n");}
if(ortalama[l]>89) { ortHarf[l]='A1'; printf("A1\n");}
}printf("==================================================================\n\n");
printf("===================================\n");
printf("====== == == == == == == == == == =\n");
for(int i=0;i<oSay;i++)
{
if(ortalama[i]>89)a1=a1+1;
if(ortalama[i]>79 && ortalama[i]<90) a2=a2+1;
if(ortalama[i]>74 && ortalama[i]<80) b1=b1+1;
if(ortalama[i]>69 && ortalama[i]<75) b2=b2+1;
if(ortalama[i]>64 && ortalama[i]<70) c1=c1+1;
if(ortalama[i]>59 && ortalama[i]<65) c2=c2+1;
if(ortalama[i]>54 && ortalama[i]<60) d1=d1+1;
if(ortalama[i]>49 && ortalama[i]<55) d2=d2+1;
if(ortalama[i]>39 && ortalama[i]<50) f1=f1+1;
if(ortalama[i]>0 && ortalama[i]<40) f2=f2+1;
}
int k[]={a1,a2,b1,b2,d1,d2,c1,c2,f1,f2};
eb=k[0];
for(int i=1;i<10;i++)
{
if(eb<k[i])
eb=k[i];
}
sat=eb;
for(int j=eb;j>0;j--)
{
printf("%d. =",j);
if(f2>=sat) printf("** "); else printf(" ");
if(f1>=sat) printf("** "); else printf(" ");
if(d2>=sat) printf("** "); else printf(" ");
if(d1>=sat) printf("** "); else printf(" ");
if(c2>=sat) printf("** "); else printf(" ");
if(c1>=sat) printf("** "); else printf(" ");
if(b2>=sat) printf("** "); else printf(" ");
if(b1>=sat) printf("** "); else printf(" ");
if(a2>=sat) printf("** "); else printf(" ");
if(a1>=sat) printf("** =");else printf(" =");
printf("\n");
sat--;
}
printf("====== == == == == == == == == == =\n");
printf("=== F2 F1 D2 D1 C2 C1 B2 B1 A2 A1 =\n");
printf("===================================\n\n\n\n\n");
return 0;
}
Programın çalışmasına örnek bir resim :




24 Kasım 2009, 17:24
Helalin var fatihim eline sağlık …
28 Kasım 2009, 15:07
sağolasın ömerim