Advertisement
Theerayut

testscore

Dec 8th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. typedef struct
  5. {
  6.     char name[21];
  7.     float score;
  8.     int num;
  9.     char grade;
  10. }student;
  11. int input(student s[100]);
  12. float average(student s[100],int num);
  13. float sigma(student s[100],int num, float avg);
  14. void decision(student s[100],int num, float avg,float sd);
  15. void output(student s[100],int num);
  16. int main()
  17. {
  18.     int num;
  19.     float avg,sd;
  20.     student std[100];
  21.     num=input(std);
  22.     avg=average(std,num);
  23.     sd=sigma(std,num,avg);
  24.     decision(std,num,avg,sd);
  25.     output(std,num);
  26.     system("PAUSE");
  27.     return 0;
  28. }
  29.  
  30. int input(student s[100])
  31. {
  32.     int i,num;
  33.     printf("Number of students : ");
  34.     scanf("%d",&num);
  35.     for(i=0;i<num;i++)
  36.     {
  37.         printf("Neme #%d : ",i+1);
  38.         scanf("%s",s[i].name);
  39.         printf("Score #%d : ",i+1);
  40.         scanf("%f",&s[i].score);
  41.         printf("Attend #%d : ",i+1);
  42.         scanf("%d",&s[i].num);
  43.     }
  44.     return num;
  45. }
  46.  
  47. float average(student s[100],int num)
  48. {
  49.     int i;
  50.     float sum=0,avg=0;
  51.     for(i=0;i<num;i++)
  52.     {
  53.         sum+=s[i].score;
  54.     }
  55.     avg=sum/num;
  56.     printf("SCORE AVERAGE = %.2f\n", avg);
  57.     return avg;
  58. }
  59.  
  60. float sigma(student s[100],int num, float avg)
  61. {
  62.     int i;
  63.     float sum=0,sd=0;
  64.     for(i=0;i<num;i++)
  65.     {
  66.         sum+=(s[i].score-avg)*(s[i].score-avg);
  67.     }
  68.     sd=sqrt(sum/num);
  69.     printf("SCORE SD = %.2f\n",sd);
  70.     return sd;
  71. }
  72.  
  73. void decision(student s[100],int num, float avg,float sd)
  74. {
  75.     int i;
  76.     for(i=0;i<num;i++)
  77.     {
  78.         if(s[i].score>avg&&s[i].score>sd&&s[i].num>0.8*45)
  79.         {
  80.             s[i].grade='G';
  81.         }
  82.         else if(s[i].score>avg&&s[i].num>0.5*45)
  83.         {
  84.             s[i].grade='P';
  85.         }
  86.         else
  87.         {
  88.             s[i].grade='F';
  89.         }
  90.     }
  91. }
  92.  
  93. void output(student s[100],int num)
  94. {
  95.     int i,g=0,p=0,f=0;
  96.     printf("-----------------------------\n");
  97.     printf("Name\t Score\t Attend\t Grade\n");
  98.     printf("-----------------------------\n");
  99.     for(i=0;i<num;i++)
  100.     {
  101.         printf("%s\t %.2f\t %d\t %c\n",s[i].name,s[i].score,s[i].num,s[i].grade);
  102.     if(s[i].grade=='G')
  103.     {
  104.         g++;
  105.     }
  106.     else if (s[i].grade=='P')
  107.     {
  108.         p++;
  109.     }
  110.     else if(s[i].grade=='F')
  111.     {
  112.         f++;
  113.     }
  114. }
  115.     printf("-----------------------------\n");
  116.     printf("GOOD=%d, PASS=%d, FAIL=%d\n", g, p, f);
  117.     printf("-----------------------------\n");
  118.    
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement