I am having a hard time understanding exactly what is being asked. These are the instructions. Below the instructions is my previous program. How do I use the *FILE?

For this program, you are going to modify your previous program (program 3) so that it will now have a menu to see if the user wants to read the input from a file or interactively. If the user wants to read the input from a file,then the output will also go into a different file. If the user wants to read the input interactively,then the output will go to the screen.

Your initial menu will look like the following:

Menu

<1> Read data from a file

<2> Read data interactively

Enter choice:

Here is a sample input file:

21 25

30 30

10 12

55 60

-1 /* this is the flag to end inputting the assignment data */

21 25

30 30

10 12

21 25

30 30

Here is another sample input file:

21 25

30 30

10 12

55 60

-1 /* this is the flag to end inputting the assignment data */

21 25

-1 /* this is the flag to end inputting the midterm exam data */

21 25

30 30

-Thank You for your timeCode:#include <stdio.h> float Homework() //Function for Homework grades { int HWTotal=0; //The total amount of points that have been earned in homework int HWAssignment=0; //The amount of points the assignment is worth int HWAssignmentTotal=0;//The net total of assignment points int HWInput=0;//User inputs the grade for homework float Final_HWGrade; //Calculated Homework average int n=1; //Count for assignment printf("Type -1 when you are done entering grades \n"); //Loop for Homework assignments enter grades until -1 is inputed while (HWInput != -1) { printf("\nWhat is the grade for Assignment %d ? ", n); scanf("%d", &HWInput); //If a -1 is entered and no grades have been entered total homework score is 0 if (HWInput == -1 && HWAssignmentTotal==0) { printf("No Homework grades were entered for Homework \n"); return 0.0; } //If there is a negative number other than -1 that is entered error else if (HWInput != -1 && HWInput < 0) { printf("Error: No Negative Grades!\n Please close and try again."); return (0); } //If grades are still being inputed this asks for assignment points and adds all points possible //until the user inputs -1 which will stop the loop else if (HWInput != -1) { printf("What is the total amount of points in the Assignment %d? ",n); scanf("%d", &HWAssignment); //If inputed grade is higher than assignment networth then ERROR if (HWInput > HWAssignment) { printf("Error: Grade is Higher than Total Possible Points! \n No extra credit available! Close and try again \n"); return 0; } HWAssignmentTotal+=HWAssignment;//Calculates Homework points earned HWTotal+=HWInput;//Calculates maximum of points available } n++; //incriment for Homework count } //Calculates the Homework Average Final_HWGrade=50.00*HWTotal/HWAssignmentTotal; return Final_HWGrade; //Returns Homework average } float Midterm() //Funtcion for midterm grades { int MidtermGrade=0; //Variable for user to input the Midterm grade int MidtermMaxGrade=0; //Maximum of total points that can be earned in the Midterm Assignment int Midterm_Total=0; //Total Points earned in Midterm int Midterm_Points=0;//Maximum number of points from all assignments int MidtermNumber=1; //Count for midterm float MidtermOverall_Grade;//Final Midterm Average //Loop for Midterm Inputs no more than 3 can be entered while (MidtermNumber <= 3) { printf("\nWhat is the grade for Midterm %d? ", MidtermNumber); scanf("%d", &MidtermGrade); /*If a -1 is inputed and the Midterm_Total is 0 no grades have been entered and 0 points are earned in Midterm Average*/ if (MidtermGrade == -1 && Midterm_Total == 0) { printf("No Midterm grades were entered\n"); return 0.0; } //If user inputs a number smaller than 0 other than -1 ERROR else if(MidtermGrade != -1 && MidtermGrade < 0) { printf("Error: No Negative Grades!\n Please close and try again."); return (0); } /* If there you want to input 1 or 2 grades and input -1 this lets the program know that only a certain number of grades are to be calculated*/ else if (MidtermGrade == -1) { MidtermOverall_Grade=20.00*Midterm_Points/Midterm_Total; return MidtermOverall_Grade; } else { printf("What is the total amount of points in Midterm %d? ", MidtermNumber); scanf("%d", &MidtermMaxGrade); if (MidtermGrade > MidtermMaxGrade) { printf("Error: Grade is Higher than Total Possible Points! \n No extra credit available! Close and try again \n"); return 0; } Midterm_Points+=MidtermGrade; //Calculates total points earned Midterm_Total+=MidtermMaxGrade; //Calculates max number of points available MidtermNumber++; //Incriment for Midterm Count } } MidtermOverall_Grade=20.0*Midterm_Points/Midterm_Total; //Calculates Midterm average return MidtermOverall_Grade; //Returns Midterm Average } float FinalExam() //Function for Final Exam { int FinalInput;//Input for Final grade int FinalTotalPoints=0; //Maximum of total points available for assignments int FinalPoints=0; //Maximum points available for Assignment int FinalPointsEarned=0;//Total points earned in assignments float FinalTestAvg;//Average for Final Exam int FinalCount=1;//Count for Final Exam //Loop for Final Exam. Loops out when it reaches 2 grades while (FinalCount <=2) { //Asks user for Final Grade printf("\nWhat is the grade for Final Part %d? ", FinalCount); scanf("%d", &FinalInput); //If grade inputed is a negative Error occurs if (FinalInput < 0) { printf("Error: Grade cannot be Negative! \n Please close and try again \n"); return 0; } //Ask user for maximum points available printf("What is the total amount of for this part of the Final? "); scanf("%d", &FinalPoints); FinalPointsEarned+=FinalInput; //Calculates total of points that have been earned FinalTotalPoints+=FinalPoints; //Calculates total of points available //If Points earned is greater than maximum points in an assignment ERROR. if (FinalPointsEarned > FinalTotalPoints) { printf("Error: Grade is Higher than Total Possible Points! \n No extra credit available! Close and try again \n"); return 0; } FinalCount++; //Count for Final Exam } //Calculates Final Exam Average FinalTestAvg=30.00*FinalPointsEarned/FinalTotalPoints; return FinalTestAvg; //Returns the Final Exam Average } char FinalGrade( float FinalExamAvg, float MidtermAvg, float HWAverage) /* Once all grades have been calculated this function takes in values from previous functions and calculates the final overall score and then determines what letter grade is earned */ { char LetterGrade; //Variable to recieve what letter grade will be earned float FinalOverall_Avg;//Variable to recieve all grades added together FinalOverall_Avg= HWAverage + MidtermAvg + FinalExamAvg; //Calculates the overall grade /* This system of if statements determines what letter grade will be earned based off of the number FinalOverall_Avg variable recieves. If the Final Grade is Higher than or equal to a 90 then LetterGrade is given the character 'A'. If the Final Grade is between a 89 and 80 then LetterGrade is given the character 'B'. If the Final Grade is between a 79 and 70 then LetterGrade is given the character 'C'. If the Final Grade is between a 69 and 60 then LetterGrade is given the character 'D'. If the Final Grade is less than 60 then LetterGrade is given the character 'F'. */ if (FinalOverall_Avg >=90) { LetterGrade='A'; return LetterGrade; } else if (FinalOverall_Avg <=89 && FinalOverall_Avg >=80) { LetterGrade='B'; return LetterGrade; } else if (FinalOverall_Avg <=79 && FinalOverall_Avg >=70) { LetterGrade='C'; return LetterGrade; } else if (FinalOverall_Avg <=69 && FinalOverall_Avg >=60) { LetterGrade='D'; return LetterGrade; } else { LetterGrade='F'; return LetterGrade; } } void Outputs(float HWFinal, float MidtermFinal, float FinalTestFinal, char Grade_Letter) //This function takes all return values for previous functions and is then outputted with their respective Assignments { float AverageGrade; AverageGrade=HWFinal+MidtermFinal+FinalTestFinal; printf("\nHomework Assignments Averge: %.2f\n",HWFinal); printf("Midterm Averge: %.2f\n", MidtermFinal); printf("Final Test Averge: %.2f\n", FinalTestFinal); printf("--------------------\n"); printf("Final Grade: %.2f\n", AverageGrade); printf("You made a %c in the class.\n", Grade_Letter); return ; } int main() { printf("Menu\n"); printf("<1> "); printf(""); printf(""); float HomeworkAverage= Homework(); float MidtermAverage= Midterm(); float FinalAverage= FinalExam(); char OverallLetter_Grade= FinalGrade(HomeworkAverage, MidtermAverage, FinalAverage); Outputs(HomeworkAverage, MidtermAverage, FinalAverage, OverallLetter_Grade); return 0; }