Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C program i need help the test average and the class average arent adding and al

ID: 3890298 • Letter: C

Question

C program

i need help the test average and the class average arent adding and also need help clearing the gradebook and output the file to a txt file

thank you

#define _CRT_SERCURE_NO_WARNINGS

#define PAUSE system("pause")

#define FLUSH myFlush();

#define CLS system("cls")

#define ROWS 10

#define COL 4

#include <stdio.h>

#include <stdlib.h>

void classAverage(int gradeBook[][COL], int studentID, float sum, float average);

void clearBook(int gradeBook[][COL], int studentID);

void displayMenu();

void testAverage(int gradeBook[][COL], int studentID, float sum, int average);

void fileOutput(int gradeBook[][COL], int studentID);

void myFlush();

void inputGrades(int gradeBook[][COL], int studentID);

void studentAverage(int gradeBook[][COL],int studentID, float sum, int average);

int userChoice();

int main() {

int gradeBook[ROWS][COL] = { 0 };

int studentID = 0;

float sum = 0;

int average = 0;

int choice = 5;

  

do{

choice = userChoice();

switch(choice){

case 1:

inputGrades(gradeBook, studentID);

PAUSE;

break;

case 2:

studentAverage(gradeBook, studentID, sum,average);

PAUSE;

break;

case 3:

testAverage(gradeBook,studentID, sum,average);

PAUSE;

break;

case 4:

classAverage(gradeBook, studentID, sum,average);

PAUSE;

break;

case 5:

fileOutput(gradeBook , studentID);

PAUSE;

break;

case 6:

clearBook(gradeBook,studentID);

PAUSE;

break;

default:

printf("Invaild selection");

break;

}

} while(choice != 5);

  

  

  

}// end Main

//===================================================================================================================

void classAverage(int gradeBook[][COL], int studentID, float sum, float average){

  

int i , j;

sum = 0;

for( i = 0; i < ROWS; i++){

for( j = 0; j < COL; j++){

sum += gradeBook[i][j];

}

}

average = sum / studentID;

printf("The Class Average is %.2f. ",average );

}

void displayMenu(){

printf("[1] Enter Grades ");

printf("[2] Student Average ");

printf("[3] test Average ");

printf("[4] Class Average ");

printf("[5] Export to Textfile ");

printf("[6] Clear Gradebook ");

printf("Please Enter your seelction: ");

}// End displayMenu()

void testAverage(int gradeBook[][COL], int studentID, float sum, int average){

  

int i;

average = 0;

sum = 0;

printf("Find the average for exam#: ");

scanf("%i", &average);

  

for(i = 0; i < ROWS; i++){

sum += gradeBook[i][average];

}

  

printf("The average for test #%i is %.2f", average, sum/ ROWS);

}

void myFlush(){

while(getchar() != ' ');

} // end myFlush()

void inputGrades(int gradeBook[][COL], int studentID){

int i , j;

printf("Enter the number of student:- ");

scanf("%i",&studentID);

for(i=0;i<studentID;i++){

printf("Enter Score for Student ID %d ", i);

for(j=0;j<COL;j++){

printf("Enter score %d:-", j+1);

scanf("%d",&gradeBook[i][j]);}// end input grades

}

}// end inputGrades();

void studentAverage(int gradeBook[][COL], int studentID, float sum, int average){

int i;

printf("Find the Average for student #: ");

scanf("%i", &studentID);

for(i = 0; i < COL; i ++){

sum += gradeBook[studentID][i];

}

printf("The Average for student #%i is %.2f ", studentID, sum/4 );

}// end studentAverage();

int userChoice(){

int result;

displayMenu();

scanf("%i", &result);

FLUSH;

return result;

} // end getChoice

void clearBook(int gradeBook[][COL], int studentID){

int i , j;

for(i=0;i<studentID;i++)

for(j=0;j<COL;j++)

gradeBook[i][j] = 0;

}// end clearBook();

void fileOutput(int gradeBook[][COL], int studentID){

FILE *fptr;

   fptr = fopen("gradebook.txt", "w");

if(fptr == NULL){

printf("Error!");

exit(1);

}// end if statement

  

for (int i = 0; i <= studentID; i++){

for (int j = 0; j <= COL; j++)

{

fprintf(fptr, "grades[%i][%i] = %i ", i, j, gradeBook[i][j]);

}

}

  

fclose(fptr);

  

printf("Saved as gradebook.txt.... ");

}// end file output

Explanation / Answer

/****Comments****/
/**Kudos for writing such good program ***/
/***There was a minor error, the value of studentID wasn't getting saved ***/
/**I have changed the return type of inputGrades as int to reflect correct value of studentID ***/
/**Some other minor changes are testAverage contains average-1 in sum instead of average to reflect correct test**/
/** Also testAverage contains sum/studentID instead of sum/Rows to show correct output**/
/***And corrected the spelling of selection from seelection :P **/

/******************************************************************************

Online C Compiler.
Code, Compile, Run and Debug C program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#define _CRT_SERCURE_NO_WARNINGS
#define PAUSE system("pause")
#define FLUSH myFlush();
#define CLS system("cls")
#define ROWS 10
#define COL 4

#include <stdio.h>
#include <stdlib.h>


void classAverage(int gradeBook[][COL], int studentID, float sum, float average);
void clearBook(int gradeBook[][COL], int studentID);
void displayMenu();
void testAverage(int gradeBook[][COL], int studentID, float sum, int average);
void fileOutput(int gradeBook[][COL], int studentID);
void myFlush();
int inputGrades(int gradeBook[][COL], int studentID);
void studentAverage(int gradeBook[][COL],int studentID, float sum, int average);
int userChoice();

int main() {
int gradeBook[ROWS][COL] = { 0 };
int studentID = 0;
float sum = 0;
int average = 0;
int choice = 5;
  
do{
choice = userChoice();
switch(choice){
case 1:
studentID=inputGrades(gradeBook, studentID);
PAUSE;
break;
case 2:
studentAverage(gradeBook, studentID, sum,average);
PAUSE;
break;
case 3:
testAverage(gradeBook,studentID, sum,average);
PAUSE;
break;
case 4:
classAverage(gradeBook, studentID, sum,average);
PAUSE;
break;
case 5:
fileOutput(gradeBook , studentID);
PAUSE;
break;
case 6:
clearBook(gradeBook,studentID);
PAUSE;
break;
default:
printf("Invaild selection");
break;
}
} while(choice != 5);
  
  
  
}// end Main
//===================================================================================================================


void classAverage(int gradeBook[][COL], int studentID, float sum, float average){
  
int i , j;
sum = 0;
for( i = 0; i < ROWS; i++){
for( j = 0; j < COL; j++){
sum += gradeBook[i][j];
}
}
average = sum / studentID;
printf("The Class Average is %.2f. ",average );
}


void displayMenu(){
printf("[1] Enter Grades ");
printf("[2] Student Average ");
printf("[3] Test Average ");
printf("[4] Class Average ");
printf("[5] Export to Textfile ");
printf("[6] Clear Gradebook ");
printf("Please Enter your selction: ");
}// End displayMenu()



void testAverage(int gradeBook[][COL], int studentID, float sum, int average){
  
int i;
average = 0;
sum = 0;
printf("Find the average for exam#: ");
scanf("%i", &average);
  
for(i = 0; i < studentID; i++){
sum += gradeBook[i][average-1];
  
}
  
printf("The average for test #%i is %.2f", average, sum/ studentID);
}

void myFlush(){
while(getchar() != ' ');
} // end myFlush()

int inputGrades(int gradeBook[][COL], int studentID){
int i , j;
printf("Enter the number of student:- ");
scanf("%i",&studentID);
for(i=0;i<studentID;i++){
printf("Enter Score for Student ID %d ", i);
for(j=0;j<COL;j++){
printf("Enter score %d:-", j+1);
scanf("%d",&gradeBook[i][j]);}// end input grades
}
return(studentID);
}// end inputGrades();


void studentAverage(int gradeBook[][COL], int studentID, float sum, int average){
int i;
printf("Find the Average for student #: ");
scanf("%i", &studentID);
for(i = 0; i < COL; i ++){
sum += gradeBook[studentID][i];
}
printf("The Average for student #%i is %.2f ", studentID, sum/4 );
}// end studentAverage();


int userChoice(){
int result;
displayMenu();
scanf("%i", &result);
FLUSH;
return result;
} // end getChoice


void clearBook(int gradeBook[][COL], int studentID){
int i , j;
for(i=0;i<studentID;i++)
for(j=0;j<COL;j++)
gradeBook[i][j] = 0;
}// end clearBook();


void fileOutput(int gradeBook[][COL], int studentID){
FILE *fptr;
fptr = fopen("gradebook.txt", "w");
if(fptr == NULL){
printf("Error!");
exit(1);
}// end if statement
  
for (int i = 0; i <= studentID; i++){
for (int j = 0; j <= COL; j++)
{
fprintf(fptr, "grades[%i][%j] = %i ", i, j, gradeBook[i][j]);
}
}
  
fclose(fptr);
  
printf("Saved as gradebook.txt.... ");
}// end file output