Advertisement
Kulas_Code20

Grading Program

May 11th, 2021
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.17 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. struct StudentGrade {
  4.     int quiz1;
  5.     int quiz2;
  6.     int midterm;
  7.     int final;
  8.     int total, tScore;
  9.     float q1, q2, m, f;
  10.     float percent, avg;
  11.     char letterGrade;
  12. }g;
  13.  
  14. int main() {
  15.        
  16.         float Q_PERCENT = 12.5;
  17.         float M_PERCENT = 25.0;
  18.         float F_PERCENT = 50.0;
  19.         int Q_SCORE = 10;
  20.         int E_SCORE = 100;
  21.  
  22.         printf("Enter Quiz 1 score (maximum is 10): ");
  23.         scanf("%d", &g.quiz1);
  24.         printf("Enter Quiz 2 score (maximum is 10): ");
  25.         scanf("%d", &g.quiz2);
  26.         printf("Enter Midterm score (maximum is 100): ");
  27.         scanf("%d", &g.midterm);
  28.         printf("Enter Final score (maximum is 100): ");
  29.         scanf("%d", &g.final);
  30.        
  31.         g.q1 = ((float)g.quiz1 / Q_SCORE * Q_PERCENT);
  32.         g.q2 = ((float)g.quiz2 / Q_SCORE * Q_PERCENT);
  33.         g.m = ((float)g.midterm / E_SCORE * M_PERCENT);
  34.         g.f = ((float)g.midterm / E_SCORE * F_PERCENT);
  35.  
  36.         g.total = g.quiz1 + g.quiz2 + g.midterm + g.final;
  37.         g.percent = g.q1 + g.q2 + g.m + g.f;
  38.  
  39.         g.tScore = Q_SCORE * 2 + E_SCORE * 2;
  40.         float tPercent = Q_PERCENT * 2 + M_PERCENT + F_PERCENT;
  41.        
  42.         g.quiz1 = g.quiz1 > 10 ? 10 : g.quiz1;
  43.         g.quiz1 = g.quiz1 < 0 ? 0 : g.quiz1;
  44.         g.quiz2 = g.quiz2 > 10 ? 10 : g.quiz2;
  45.         g.quiz2 = g.quiz2 < 0 ? 0 : g.quiz2;
  46.         g.midterm = g.midterm > 100 ? 100 : g.midterm;
  47.         g.midterm = g.midterm < 0 ? 0 : g.midterm;
  48.         g.final = g.final > 100 ? 100 : g.final;
  49.         g.final = g.final < 0 ? 0 : g.final;
  50.        
  51.         if (g.percent >= 90.0)
  52.             g.letterGrade = 'A';
  53.         else if (g.percent >= 80.0)
  54.             g.letterGrade = 'B';
  55.         else if (g.percent >= 70.0)
  56.             g.letterGrade = 'C';
  57.         else if (g.percent >= 60.0)
  58.             g.letterGrade = 'D';
  59.         else
  60.             g.letterGrade = 'F';
  61.        
  62.         printf("\n\n");
  63.         printf("--------------------------------------------------------------------------------------\n");
  64.         printf("TEST\t\tTEST\t\tMAX\t\tGRADE SCORE\t\tMAXIMUM SCORE");
  65.         printf("\nPERIOD\t\tSCORE\t\tSCORE\t\tDISTRIBUTION\t\tDISTRIBUTION\n");
  66.         printf("--------------------------------------------------------------------------------------\n");
  67.         printf("Quiz 1\t\t%d\t\t%d\t\t%.2f\%%\t\t\t\%.2f\%%\n", g.quiz1, Q_SCORE, g.q1, Q_PERCENT);
  68.         printf("Quiz 2\t\t%d\t\t%d\t\t%.2f\%%\t\t\t\%.2f\%%\n", g.quiz2, Q_SCORE, g.q2, Q_PERCENT);
  69.         printf("Midterm\t\t%d\t\t%d\t\t%.2f\%%\t\t\t\%.2f\%%\n", g.midterm, E_SCORE, g.m, M_PERCENT);
  70.         printf("Final\t\t%d\t\t%d\t\t%.2f\%%\t\t\t\%.2f\%%\n", g.final, E_SCORE, g.f, F_PERCENT);
  71.         printf("--------------------------------------------------------------------------------------\n");
  72.         printf("TOTAL\t\t%d\t\t%d\t\t%.2f\%%\t\t\t%.2f\%%\n",g.total, g.tScore, g.percent, tPercent);
  73.  
  74.         printf("Average\t\t\%.2f\%%\n", ((float)g.total / g.tScore * tPercent));
  75.         printf("Grade: \t\t%c", g.letterGrade);
  76.         printf("\n--------------------------------------------------------------------------------------\n");
  77.  
  78.    
  79.     return 0;
  80. }
  81.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement