Grade Calculators
Calculating Pre-Finals Grade
List of functions to be used/completed as appropriate in the program:
voidinputScores(float scores[], int *ptrArrayLength); Function to input scores
scores[] à Array of scores
ptrArrayLength: Pointer to number of scores or array elements
voidoutputScores(float scores[], intarrayLength); Function to display scores
scores[] à Array of scores
arrayLength: Number of scores (NOT pointer)
floatcalculateAverage(float scores[], intnumScores); Function to calculate score average
scores[] à Array of scores
numScores: Number of scores
voidsortScoresAscendingOrder(float scores[], intarrayLength); Function to sort scores in descending order
scores[] à Array of scores
arrayLength: Number of scores or array elements
floatcalculatePreFinalsGrade(float testAvg, float quizAvg, float progAssignAvg); Function to calculate class
average
testAvg: Test average
quizAvg: Quiz average
progAssignAvg: Programming Assignment Average
The program’s input prompts and output statements must match the sample execution below. To print a floating pointnumber with only two decimal places use the placeholder "%.2f" :
printf("The cost is %.2f ", 15.345);
Sample Execution 1:
ls10@ra> ./prog7_final.out
CSE1233 Grade Calculator
Enter 4 Test Scores below
Print Score 1: 96
Print Score 2: 88
Print Score 3: 75
Print Score 4: 85
Enter 10 Quiz Scores below
Print Score 1: 10
Print Score 2: 9
Print Score 3: 9
Print Score 4: 10
Print Score 5: 6
Print Score 6: 2
Print Score 7: 9
Print Score 8: 7
Print Score 9: 8
Print Score 10: 10
Enter 7 Programming Assignment Scores below
Print Score 1: 100
Print Score 2: 100
Print Score 3: 75
Print Score 4: 100
Print Score 5: 90
Print Score 6: 100
Print Score 7: 95
4 Test Scores you entered are shown below
Score 1: 96.00
Score 2: 88.00
Score 3: 75.00
Score 4: 85.00
Page 3 of 5
10 Quiz Scores you entered are shown below
Score 1: 10.00
Score 2: 9.00
Score 3: 9.00
Score 4: 10.00
Score 5: 6.00
Score 6: 2.00
Score 7: 9.00
Score 8: 7.00
Score 9: 8.00
Score 10: 10.00
7 Programming Assignment Scores you entered are shown below
Score 1: 100.00
Score 2: 100.00
Score 3: 75.00
Score 4: 100.00
Score 5: 90.00
Score 6: 100.00
Score 7: 95.00
Your Top 8 Quiz Scores to be used are:
Score 1: 10.00
Score 2: 10.00
Score 3: 10.00
Score 4: 9.00
Score 5: 9.00
Score 6: 9.00
Score 7: 8.00
Score 8: 7.00
Your Top 7 Programming Assignment Scores to be used are:
Score 1: 100.00
Score 2: 100.00
Score 3: 100.00
Score 4: 100.00
Score 5: 95.00
Score 6: 90.00
Your Test Average is: 86.00
Your Quiz Average is: 90.00
Your Prog Assignment Average is: 97.50
Pre-Finals Grade Calculation
Your pre-finals grade is: 88.90
Sample Execution 2:
ls10@ra> ./prog7_final.out
CSE1233 Grade Calculator
Have you failed to turn in any assignments, enter Y for Yes and N for No? Y
Your class grade is F, please talk to your instructor
My code for program 5:
#include
#include
float calculateCharges(float);
main()
{
float car1, car2, car3;
float charge1, charge2, charge3;
float totalHours = 0.0;
float totalCharges = 0.0;
printf("Enter the hours for car 1: ");
scanf("%f", &car1);
totalHours = totalHours + car1;
charge1 = calculateCharges(car1);
totalCharges = totalCharges + charge1;
printf("Enter the hours for car 2: ");
scanf("%f", &car2);
totalHours = totalHours + car2;
charge2 = calculateCharges(car2);
totalCharges = totalCharges + charge2;
printf("Enter the hours for car 3: ");
scanf("%f", &car3);
totalHours = totalHours + car3;
charge3 = calculateCharges(car3);
totalCharges = totalCharges + charge3;
printf("\n");
printf("Car\t\tHours\t\tCharge\n");
printf("1\t\t%.1f\t\t%.2f\n", car1, charge1);
printf("2\t\t%.1f\t\t%.2f\n", car2, charge2);
printf("3\t\t%.1f\t\t%.2f\n", car3, charge3);
printf("TOTAL\t\t%.1f\t\t%.2f\n", totalHours, totalCharges);
}
float calculateCharges(float h)
{
const float MINIMUM_CHARGE = 2.0;
const float MAXIMUM_CHARGE = 10.00;
/* the garage charges 2.00 for any amount of
time up to 3 hours */
if (h<=3)
return MINIMUM_CHARGE;
/* determine how many hours past 3 hours */
h = h - 3;
/* 0.50 for each hour (or part of an hour) past 3 hours */
float additionalAmount = ceil(h) * 0.50;
float charge = MINIMUM_CHARGE + additionalAmount;
if (charge > MAXIMUM_CHARGE)
return MAXIMUM_CHARGE;
else
return charge;
}
Solution
#include
#include
voidcheckMissingAssignments();
voidinputScores(float scores[], int *ptrArrayLength);
voidoutputScores(float scores[], intarrayLength);
floatcalculateAverage(float scores[], intnumScores);
voidsortScoresAscendingOrder(float scores[], intarrayLength);
floatcalculatePreFinalsGrade(float testAvg, float quizAvg, float progAssignAvg);
main()
{
/* Declare and initialize variables */
intnumTests = 4, numQuizzes = 10, numProgAssignments = 7;
intnumDropQuizzes = 2, numDropProgAssignments = 1;
floattestAvg = 0.0, quizAvg = 0.0, progAssignAvg = 0.0, classAvg = 0.0;
floattestScores[4], quizScores[10], progAssignScores[7];
floatpreFinalsGrade = 0.0, finalsGrade = 0.0;
/* Declare and initialize pointer variables ptrQuizzes and ptrProgAssignments */
int *ptrTests = &numTests;
printf("CSE1233 Grade Calculator\n\n");
/* Check for missing assignments */
checkMissingAssignments();
/* Read scores */
/* Read Test Scores */
printf("\nEnter 4 Test Scores below\n");
inputScores(testScores, ptrTests);
/* Read Quiz Scores */
printf("\nEnter 10 Quiz Scores below\n");
/* Write function call to read quiz scores */
/* Read Programming Assignment Scores */
/* Display message and write function call to read prog assignment scores */
/* Print Original Scores */
/* Display Test scores */
printf("\n4 Test Scores you entered are shown below\n");
outputScores(testScores, numTests);
/* Display Quiz Scores */
printf("\n10 Quiz Scores you entered are shown below\n");
outputScores(quizScores, numQuizzes);
/* Display message and write function call to display Programming Assignment Scores */
/* Sort Scores in Descending order: Needed to drop lowest scores */
/* Sort Quiz scores in descending order */
sortScoresAscendingOrder(quizScores, numQuizzes);
/* Drop lowest 2 quiz scores */
printf("\nYour Top 8 Quiz Scores to be used are:\n");
outputScores(quizScores, numQuizzes-numDropQuizzes);
/* Sort Prog Assignment scores in descending order */
/* Write function call to drop lowest 1 programming assignment score */
printf("\nYour Top 7 Programming Assignment Scores to be used are:\n");
/* Calculate Averages */
/* Calculate Test Average of 4 Tests */
testAvg = calculateAverage(testScores, numTests);
printf("\nYour Test Average is: %.2f\n", testAvg);
/* Calcluate Quiz Average of Top 8 Quiz Scores */
quizAvg = calculateAverage(quizScores, numQuizzes-numDropQuizzes);
/* Multiply quiz average by 10 to convert average to the scale of 100 */
quizAvg = quizAvg * 10;
printf("Your Quiz Average is: %.2f\n", quizAvg);
/* Calcluate Average of Top 7 Programming Assignment Scores */
progAssignAvg = calculateAverage(progAssignScores, numProgAssignments-numDropProgAssignments);
printf("Your Prog Assignment Average is: %.2f\n", progAssignAvg);
/* Pre-Finals Grade Calculation */
printf("Pre-Finals Grade Calculation\n");
preFinalsGrade = calculatePreFinalsGrade(testAvg, quizAvg, progAssignAvg);
printf("Your pre-finals grade is: %.2f", preFinalsGrade);
printf("\n");
}
/* Function to check missing assignments */
voidcheckMissingAssignments()
{
charcheckSubmissions = '\0';
printf("Have you failed to turn in any assignments, enter Y for Yes and N for No? ");
scanf("%c", &checkSubmissions);
if(checkSubmissions == 'Y')
{
printf("Your class grade is F, please talk to your instructor\n");
// exit(0);
}
}
/* Function to read scores into an array*/
voidinputScores(float scores[], int *ptrArrayLength)
{
int i;
/* complete the function */
//scanf("%d",scores[])
}
/* Function to print scores using array*/
voidoutputScores(float scores[], intarrayLength)
{
int i;
for (i=0; i { printf("Score %d: %.2f\n", i+1, scores[i]); } } /* Calculate average*/ floatcalculateAverage(float scores[], intnumScores) { int i; float sum = 0.0, avg = 0.0; /* complete the function */ avg = sum/numScores; returnavg; } /* Sort array in ascending order */ voidsortScoresAscendingOrder(float scores[], intarrayLength) { int i = 0, j=0; floatfTemp = 0.0; for (i = 0; i { for (j = 0; j < arrayLength-i-1; j++) { if (scores[j] < scores[j+1]) { fTemp = scores[j]; scores[j] = scores[j+1]; scores[j+1] = fTemp; } } } } /* Pre-finals Average */ floatcalculatePreFinalsGrade(float testAvg, float quizAvg, float progAssignAvg) { if (testAvg< 60 || progAssignAvg< 60) { printf("Your pre-final class grade is: F\n"); // exit(0); } else return 0.65 * testAvg + 0.15 * quizAvg + 0.20 * progAssignAvg; }