PROGRAM 14
PROGRAM CALCULATEGPA; {ANTHONY F. ORTIZ, ASSIGNMENT 4C, JUNE 29, 1994} {THIS PROGRAM CALCULATES A STUDENT'S GPA AND PRINTS IT TO THE SCREEN.} USES CRT; VAR GRADE: CHAR; GRADEPOINTS: REAL; ANS: STRING; UNITS: REAL; TOTAL: REAL; TOTAL2: REAL; GPA: REAL; PROCEDURE INPUTGRADE; BEGIN WRITE ('ENTER STUDENT''S GRADE. '); READLN (GRADE); WRITE ('ENTER THE NUMBER OF UNITS. '); READLN (UNITS); END; PROCEDURE ACCUMULATOR; BEGIN TOTAL := TOTAL + (GRADEPOINTS * UNITS); TOTAL2 := TOTAL2 + UNITS; GPA := TOTAL / TOTAL2; END; PROCEDURE PRINTGRADE; BEGIN WRITELN; CASE GRADE OF 'A': BEGIN WRITE ('GREAT, YOU RECEIVED 4 GRADE POINTS FOR EACH UNIT '); GRADEPOINTS :=4; WRITELN ('FOR A TOTAL OF ', (GRADEPOINTS * UNITS):1:1, ' POINTS.'); END; 'a': BEGIN WRITE ('GREAT, YOU RECEIVED 4 GRADE POINTS FOR EACH UNIT '); GRADEPOINTS := 4; WRITELN ('FOR A TOTAL OF ', (GRADEPOINTS * UNITS):1:1, ' POINTS.'); END; 'B': BEGIN WRITE ('GOOD, YOU RECEIVED 3 GRADE POINTS FOR EACH UNIT '); GRADEPOINTS := 3; WRITELN ('FOR A TOTAL OF ', (GRADEPOINTS * UNITS):1:1, ' POINTS.'); END; 'b': BEGIN WRITE ('GOOD, YOU RECEIVED 3 GRADE POINTS FOR EACH UNIT '); GRADEPOINTS := 3; WRITELN ('FOR A TOTAL OF ', (GRADEPOINTS * UNITS):1:1, ' POINTS.'); END; 'C': BEGIN WRITE ('JUST OK, YOU RECEIVED 2 GRADE POINTS FOR EACH UNIT '); GRADEPOINTS := 2; WRITELN ('FOR A TOTAL OF ', (GRADEPOINTS * UNITS):1:1, ' POINTS.'); END; 'c': BEGIN WRITE ('JUST OK, YOU RECEIVED 2 GRADE POINTS FOR EACH UNIT '); GRADEPOINTS := 2; WRITELN ('FOR A TOTAL OF ', (GRADEPOINTS * UNITS):1:1, ' POINTS.'); END; 'D': BEGIN WRITE ('NOT GOOD. YOU RECEIVED 1 GRADE POINT FOR EACH UNIT '); GRADEPOINTS := 1; WRITELN ('FOR A TOTAL OF ', (GRADEPOINTS * UNITS):1:1, ' POINTS.'); END; 'd': BEGIN WRITE ('NOT GOOD. YOU RECEIVED 1 GRADE POINT FOR EACH UNIT '); GRADEPOINTS := 1; WRITELN ('FOR A TOTAL OF ', (GRADEPOINTS * UNITS):1:1, ' POINTS.'); END; 'F': BEGIN WRITE ('TRY AGAIN. YOU DIDN''T RECEIVE ANY GRADE POINTS '); GRADEPOINTS := 0; WRITELN ('FOR A TOTAL OF ', (GRADEPOINTS * UNITS):1:1, ' POINTS.'); END; 'f': BEGIN WRITE ('TRY AGAIN. YOU DIDN''T RECEIVE ANY GRADE POINTS '); GRADEPOINTS := 0; WRITELN ('FOR A TOTAL OF ', (GRADEPOINTS * UNITS):1:1, ' POINTS.'); END; ELSE BEGIN WRITELN ('THAT IS NOT A LETTER GRADE. '); UNITS := 0; END; END; ACCUMULATOR; END; PROCEDURE INQUIRY; BEGIN WRITELN; WRITE ('WOULD YOU LIKE TO ENTER ANOTHER GRADE? TYPE "NO" TO QUIT. '); READLN (ANS); END; PROCEDURE PRINTGPA; BEGIN WRITELN ('YOUR G. P. A. IS ', GPA:1:2); WRITELN; WRITE ('PRESS ENTER KEY TO CONTINUE. '); READLN; END; BEGIN TOTAL := 0; TOTAL2 := 0; GPA := 0; REPEAT CLRSCR; INPUTGRADE; PRINTGRADE; INQUIRY; UNTIL (ANS = 'NO') OR (ANS = 'no'); CLRSCR; PRINTGPA; END. { OUTFILE: PROG14.OUT } ENTER STUDENT'S GRADE. a ENTER THE NUMBER OF UNITS. 4 GREAT, YOU RECEIVED 4 GRADE POINTS FOR EACH UNIT FOR A TOTAL OF 16.0 POINTS. WOULD YOU LIKE TO ENTER ANOTHER GRADE? TYPE "NO" TO QUIT. no YOUR G. P. A. IS 4.00 PRESS ENTER KEY TO CONTINUE.
BACK TO COMP151 PAGE.