29 Mayıs 2012 Salı

Öğrenci not programı

Elektrik-Elektronik Mühendisliğinde okuyan bir arkadaşımın Bilgisayar Programlama dersi final projesi için yaptığım basit bir öğrenci otomasyon programı.Bu program maksimum 50 kişilik bir sınıftaki notları kullanıcıdan alarak öğrencilerin notunu, harf notunu, sınıfın ortalamasını, standart sapmasını hesaplayan ve daha sonra bu değerleri ekranda görüntüleyen bir programdır.



#include <iostream.h>
#include <cmath>
#include <stdlib.h>

void letter_grade(float stuav,float av,float dev);

int main()
{
    //variables
    char c;
    float mid1[50],mid2[50],finex[50],stuaverage[50];
    int counter=0,a=0,b=9;
    float deviation=0.0,deviation_total,average=0.0,total=0.0,maxgrade=0.0,mingrade=100.0;
    int grade_dis[10]={0,0,0,0,0,0,0,0,0,0};
    
    do{
    cout << "Enter the student's first midterm exam result\n";   //getting exam results
    cin >> mid1[counter];
    cout << "Enter the student's second midterm exam result\n";
    cin >> mid2[counter];
    cout << "Enter the student's final exam result\n";
    cin >> finex[counter];
    cout << "Do you want to add another student?\nY/N?";
    cin >> c;
    stuaverage[counter] = mid1[counter] * 0.25 + mid2[counter] * 0.25 + finex[counter] * 0.5 ; //calculating students average
    total = total + stuaverage[counter];
    
    if(maxgrade < stuaverage[counter]){
                maxgrade = stuaverage[counter];
    }
    if(stuaverage[counter] < mingrade){
                mingrade = stuaverage[counter];
    }
    
    if(stuaverage[counter]<10)                   // calculating overall grade distribution table
    {
       grade_dis[0]++;
    }
    else if(stuaverage[counter]>=10 && stuaverage[counter]<20)
    {
       grade_dis[1]++;
    }
    else if(stuaverage[counter]>=20 && stuaverage[counter]<30)
    {
       grade_dis[2]++;
    }
    else if(stuaverage[counter]>=30 && stuaverage[counter]<40)
    {
       grade_dis[3]++;
    }
    else if(stuaverage[counter]>=40 && stuaverage[counter]<50)
    {
       grade_dis[4]++;
    }
    else if(stuaverage[counter]>=50 && stuaverage[counter]<60)
    {
       grade_dis[5]++;
    }
    else if(stuaverage[counter]>=60 && stuaverage[counter]<70)
    {
       grade_dis[1]++;
    }
    else if(stuaverage[counter]>=70 && stuaverage[counter]<80)
    {
       grade_dis[1]++;
    }
    else if(stuaverage[counter]>=80 && stuaverage[counter]<90)
    {
       grade_dis[1]++;
    }
    else if(stuaverage[counter]>=90 && stuaverage[counter]<100)
    {
       grade_dis[1]++;
    }
    counter++;    
    average = total / counter;   // class overall average
     }while(c!='n'&& c!='N');
     //calculating standart deviation
     for(int i=0;i<counter;i++)
     {
            deviation_total=deviation_total+(stuaverage[i]-average)*(stuaverage[i]-average);
     }
     deviation=sqrt(deviation_total/(counter-1));
     // results printing on the screen
     cout << "\nTotal " << counter << " student's exam results' entered\n";
     cout << "Total grade " <<(float)total << "\n";
     cout << "Class average " << (float)average << "\n";
     cout << "Lowest grade " << (float)mingrade << "\n";
     cout << "Highest grade " << (float)maxgrade << "\n";
     cout << "Standart deviation " << (float)deviation << "\n";
     cout << "\nOverall Grade Distribution \n\n";
     
     for(int i=0;i<10;i++)
     {
       cout << a << "-" << b << " " << grade_dis[i] << "\n";
       a=a+10;
       b=b+10;
     }
     
     cout << "\nStudent table \n\n";
     cout << "Student  Midterm1   Midterm2 \t Final \t Total \t\tLetter\n";
     
     for(int i=0;i<counter;i++)
     {
      cout << i+1 << "\t  " << mid1[i] << "\t\t" << mid2[i] << "\t   " << finex[i] << "\t   " << stuaverage[i] << "\t  \t" ;
      letter_grade(stuaverage[i],average,deviation);
      cout <<  "\n";
     }
     system("PAUSE");
     return EXIT_SUCCESS;
}
// function for calculating letter grade
void letter_grade(float stuav,float av,float dev)
{
 if(stuav<=(av-2*dev))
 {
  cout << "FF";
 }
 
 else if(stuav>(av-2*dev) && stuav<=(av-dev))
 {
  cout << "FD";
 }
 
 else if(stuav<=av && stuav>(av-dev))
 {
  cout << "DD";
 }
 else if(stuav>av && stuav<=av+dev)
 {
  cout << "DC";
}
else if(stuav>av+dev && stuav<=av+2*dev)
{
 cout << "CC";
}
else if(stuav>av+2*dev && stuav<=av+3*dev)
{
 cout << "CB";
}
else if(stuav>av+3*dev && stuav<=av+4*dev)
{
 cout << "BB";
}
else if(stuav>av+4*dev && stuav<=av+5*dev)
{
 cout <<"BA";
}
else if(stuav>av+5*dev)
{
 cout << "AA";
}
}

Hiç yorum yok:

Yorum Gönder