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
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.