/* Program to compute grades for CPSC 441 students */ /* Usage: */ /* cc -o grading grading.c */ /* ./grading < marks.txt */ /* */ /* Written by Carey Williamson January 12, 1968 */ #include #define STRLEN 15 main() { char fname[STRLEN], lname[STRLEN]; int id; float a1, a2, a3, a4, a5; float mid; float fin; float tot; char grade; char flag; while( scanf("%s %s %d %f %f %f %f %f %f %f\n", fname, lname, &id, &a1, &a2, &a3, &a4, &a5, &mid, &fin) == 10 ) { tot = a1 + a2 + a3 + a4 +a5; tot /= 5; tot += 0.25 * (100.0*mid/50.0); tot += 0.5 * fin; grade = 'F'; flag = ' '; if( tot >= 50 ) { grade = 'D'; flag = ' '; } if( tot >= 55 ) { grade = 'C'; flag = '-'; } if( tot >= 60 ) { grade = 'C'; flag = ' '; } if( tot >= 65 ) { grade = 'C'; flag = '+'; } if( tot >= 70 ) { grade = 'B'; flag = '-'; } if( tot >= 75 ) { grade = 'B'; flag = ' '; } if( tot >= 80 ) { grade = 'B'; flag = '+'; } if( tot >= 85 ) { grade = 'A'; flag = '-'; } if( tot >= 90 ) { grade = 'A'; flag = ' '; } if( tot >= 95 ) { grade = 'A'; flag = '+'; } printf("%12s %-12s %4.1f %4.1f %4.1f %4.1f %4.1f %5.1f %5.1f %5.1f %c%c\n", fname, lname, a1, a2, a3, a4, a5, mid, fin, tot, grade, flag); } }