Code:
#include <stdlib.h>
#include <stdio.h>
int main()
{
int a1, a2, a3, a4, a5, t1, t2, f, count, a_grades, b_grades, c_grades, d_grades, f_grades;
float assignment_total, test_total, final_exam, final_grade, sum, class_average;
bool A, B, C, D, F;
sum= 0; //sum variable used to determine class average in summary report
count= 1; //count variable used to store number of students' grades entered
//these variables store the amount of different letter grades displayed in the summary report
a_grades= 0;
b_grades= 0;
c_grades= 0;
d_grades= 0;
f_grades= 0;
//intructs the user how to properly use the program
printf (" *INSTRUCTIONS FOR USE*\n");
printf ("\n");
printf ("This program is designed to record student grades and report class averages. \n");
printf ("Enter a score between 0-100 for each grade. To calculate the class average entera negative ");
printf ("number for assignment number one.");
printf ("\n");
printf ("\n");
printf ("Please input assignment 1 score then press ENTER: ");
scanf ("%d", &a1);
//if the sentinal is not used for variable a1 then the program will continue to compute the scores.
while (a1 >=0)
{
printf ("Please input assignment 2 score then press ENTER: ");
scanf ("%d", &a2);
printf ("Please input assignment 3 score then press ENTER: ");
scanf ("%d", &a3);
printf ("Please input assignment 4 score then press ENTER: ");
scanf ("%d", &a4);
printf ("Please input assignment 5 score then press ENTER: ");
scanf ("%d", &a5);
printf ("Please input test 1 score then press ENTER: ");
scanf ("%d", &t1);
printf ("Please input test 2 score then press ENTER: ");
scanf ("%d", &t2);
printf ("Please input final exam score then press ENTER: ");
scanf ("%d", &f);
printf ("\n");
//determines if an invalid score was entered, notifies the user, and allows for a correction.
while (a1>100 || a2<0 || a2>100 || a3<0 || a3>100 || a4<0 || a4>100 || a5<0 || a5>100 || t1<0 || t1>100 || t2<0 || t2>100 || f<0 || f>100)
{
printf ("YOU HAVE ENTERED AN INVALID SCORE. CHECK YOUR SCORES AND TRY AGAIN.\n");
printf ("\n");
printf ("\n");
printf ("**IF FINISHED ENTER A NEGATIVE NUMBER FOR ASSIGNMENT 1 AND PRESS ENTER.");
printf ("\n");
printf ("Please input assignment 1 score then press ENTER: ");
scanf ("%d", &a1);
while (a1 <= -1)
{
printf ("\n");
printf ("Number of A grades: %d\n", a_grades);
printf ("Number of B grades: %d\n", b_grades);
printf ("Number of C grades: %d\n", c_grades);
printf ("Number of D grades: %d\n", d_grades);
printf ("Number of F grades: %d\n", f_grades);
printf ("\n");
printf ("Class Average score is %f\n", class_average);
printf ("\n");
printf ("The program will now close. ");
system("pause");
return 0;
}
printf ("Please input assignment 2 score then press ENTER: ");
scanf ("%d", &a2);
printf ("Please input assignment 3 score then press ENTER: ");
scanf ("%d", &a3);
printf ("Please input assignment 4 score then press ENTER: ");
scanf ("%d", &a4);
printf ("Please input assignment 5 score then press ENTER: ");
scanf ("%d", &a5);
printf ("Please input test 1 score then press ENTER: ");
scanf ("%d", &t1);
printf ("Please input test 2 score then press ENTER: ");
scanf ("%d", &t2);
printf ("Please input final exam score then press ENTER: ");
scanf ("%d", &f);
printf ("\n");
}
//echo printing the scores for verification
printf ("Assignment 1 score is: %d\n", a1);
printf ("Assignment 2 score is: %d\n", a2);
printf ("Assignment 3 score is: %d\n", a3);
printf ("Assignment 4 score is: %d\n", a4);
printf ("Assignment 5 score is: %d\n", a5);
printf ("Test 1 score is: %d\n", t1);
printf ("Test 2 score is %d\n", t2);
printf ("Final Exam score is %d\n", f);
printf ("IF THESE SCORES ARE INCORRECT YOU MUST RESTART THE PROGRAM AND RE-ENTER GRADES!");
//algebra required to compute the scores.
assignment_total= ((a1+a2+a3+a4+a5)/5)*.30;
test_total= ((t1+t2)/2)*.30;
final_exam= (f)*.40;
final_grade= (assignment_total+test_total+final_exam);
printf ("\n");
printf ("\n");
printf ("FINAL GRADE for student %d is %f\n", count, final_grade);
sum= sum+final_grade;
class_average= sum/count;
//letter grade ranges are set here
A= (final_grade >=85 && final_grade <=100);
B= (final_grade >=74 && final_grade <85);
C= (final_grade >=63 && final_grade <74);
D= (final_grade >=52 && final_grade <63);
F= (final_grade >=0 && final_grade <52);
//prints out the letter grade and keeps a running count of how many different letter grades there are.
if (A)
{
printf ("LETTER GRADE for student %d is: A\n", count);
a_grades= a_grades+1;
}
else if (B)
{
printf ("LETTER GRADE for student %d is: B\n", count);
b_grades= b_grades+1;
}
else if (C)
{
printf ("LETTER GRADE is: C\n");
c_grades= c_grades+1;
}
else if (D)
{
printf ("LETTER GRADE is: D\n");
d_grades= d_grades+1;
}
else
{
printf ("LETTER GRADE is: F\n");
f_grades= f_grades+1;
}
printf ("\n");
system ("pause");
printf ("\n");
printf ("\n");
//changes the student number to the next higher student
count= count+1;
//starts the loop over and allows the user to enter a sentinel number to produce a summary and terminate the program.
printf ("**IF FINISHED ENTER A NEGATIVE NUMBER FOR ASSIGNMENT 1 AND PRESS ENTER.");
printf ("\n");
printf ("Please input assignment 1 score and press ENTER: ");
scanf ("%d", &a1);
}
//summary report produced by entering a negative number for assignment 1.
while (a1 <= -1)
{
printf ("Number of A grades: %d\n", a_grades);
printf ("Number of B grades: %d\n", b_grades);
printf ("Number of C grades: %d\n", c_grades);
printf ("Number of D grades: %d\n", d_grades);
printf ("Number of F grades: %d\n", f_grades);
printf ("\n");
printf ("Class Average score is %f\n", class_average);
printf ("\n");
printf ("The program will now close. ");
system("pause");
return 0;
}
}
Thanks in advance for any input.