Bilgi[siz]
19Kas/092

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",&not[i][i]);

  printf("Ara Sinav notunu giriniz : ");
  scanf("%f",&not[i][i+1]);

  printf("Odev notunu giriniz : ");
  scanf("%f",&not[i][i+2]);

  printf("Proje notunu giriniz : ");
  scanf("%f",&not[i][i+3]);

  printf("Yil sonu notunu giriniz : ");
  scanf("%f",&not[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 goster

 printf("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 :

Bu yazıyı beğendiniz mi?

RSS Kaynağımıza abone olun!

657 kez okunmuş.

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Yorumlar (2) Geri izlemeler (0)
  1. Helalin var fatihim eline sağlık …


Yorum gönder.


*
Sizin bir script,virus ya da zararli bir yazilim olmadiginizi, asagidaki kodu dogru girerek yapacaginiz yorum ile anlamis olacagim. Guvenlik geregi yapilan bir uygulamadir. Girmeniz gereken kodun uzerine tiklayarak, kodlari sesli olarakda dinleyebilirsiniz. Bu resme tiklayarak harfleri sesli olarak dinleyebilirsiniz.
Guvenlik kodunu sesli dinle

Geri izleme yok.