Using the knowledge in computational language in C++ it is possible to write a code that prompt user for a file name and read the data containing information for a course, store and process the data
<h3>Writting in C++ code:</h3>
<em>#include<iostream></em>
<em>#include<cstring></em>
<em>#include<fstream></em>
<em />
<em>using namespace std;</em>
<em />
<em>struct Student{</em>
<em>string lastName,firstName;</em>
<em>char subject;</em>
<em>int marks1,marks2,marks3;</em>
<em>};</em>
<em />
<em>char calcGrade(double avg){</em>
<em>char grade;</em>
<em>if(avg>=90.0&&avg<=100.0)</em>
<em>grade='A';</em>
<em>else if(avg>=80&&avg<=89.99)</em>
<em>grade='B';</em>
<em>else if(avg>=70&&avg<=79.99)</em>
<em>grade='C';</em>
<em>else if(avg>=60&&avg<=69.99)</em>
<em>grade='D';</em>
<em>else</em>
<em>grade='E';</em>
<em>return grade;</em>
<em>}</em>
<em />
<em>int main(){</em>
<em>char inFilename[20],outFilename[20];</em>
<em>int noOfRec,i,sum,count;</em>
<em>double avg,classAvg;</em>
<em>char grade;</em>
<em>cout<<"Please enter the name of the input file: ";</em>
<em>cin>>inFilename;</em>
<em>cout<<"Please enter the name of the output file: ";</em>
<em>cin>>outFilename;</em>
<em>ifstream ifile;</em>
<em>ifile.open(inFilename);</em>
<em>ofstream ofile;</em>
<em>ofile.open(outFilename);</em>
<em>if(!ifile){</em>
<em>cout<<inFilename<<" cannot be opened";</em>
<em>return -1;</em>
<em>}else{</em>
<em>ifile>>noOfRec;</em>
<em>struct Student s[noOfRec];</em>
<em>for(i=0;i<noOfRec;i++){</em>
<em>ifile>>s[i].lastName,s[i].firstName,s[i].subject,s[i].marks1,s[i].marks2,s[i].marks3;</em>
<em>}</em>
<em>if(!ofile){</em>
<em>cout<<outFilename<<" cannot be opened";</em>
<em>}else{</em>
<em>ofile<<"Student Grade Summary\n";</em>
<em>ofile<<"---------------------\n";</em>
<em>ofile<<"ENGLISH CLASS\n";</em>
<em>ofile<<"Student name\tTest Avg\n";</em>
<em>sum=0;</em>
<em>count=0;</em>
<em>classAvg=0.0;</em>
<em>for(i=0;i<noOfRec;i++){</em>
<em>if(s[i].subject=='E'){</em>
<em>avg=(s[i].marks1+s[i].marks2+s[i].marks3)/3;</em>
<em>grade=calcGrade(avg);</em>
<em>ofile<<s[i].firstName<<" "<<s[i].lastName<<"\t"<<avg<<"\t"<<grade<<"\n";</em>
<em>sum+=avg;</em>
<em>count+=1;</em>
<em>}</em>
<em>}</em>
<em>classAvg=sum/count;</em>
<em>ofile<<"\n\t\tClass Average\t\t"<<classAvg<<"\n";</em>
<em>ofile<<"---------------------\n\n";</em>
<em>ofile<<"HISTORY CLASS\n";</em>
<em>ofile<<"Student name\tTest Avg\n";</em>
<em>sum=0;</em>
<em>count=0;</em>
<em>classAvg=0.0;</em>
<em>for(i=0;i<noOfRec;i++){</em>
<em>if(s[i].subject=='H'){</em>
<em>avg=(s[i].marks1+s[i].marks2+s[i].marks3)/3;</em>
<em>grade=calcGrade(avg);</em>
<em>ofile<<s[i].firstName<<" "<<s[i].lastName<<"\t"<<avg<<"\t"<<grade<<"\n";</em>
<em>sum+=avg;</em>
<em>count+=1;</em>
<em>}</em>
<em>}</em>
<em>classAvg=sum/count;</em>
<em>ofile<<"\n\t\tClass Average\t\t"<<classAvg<<"\n";</em>
<em>ofile<<"---------------------\n\n";</em>
<em>ofile<<"MATH CLASS\n";</em>
<em>ofile<<"Student name\tTest Avg\n";</em>
<em>sum=0;</em>
<em>count=0;</em>
<em>classAvg=0.0;</em>
<em>for(i=0;i<noOfRec;i++){</em>
<em>if(s[i].subject=='M'){</em>
<em>avg=(s[i].marks1+s[i].marks2+s[i].marks3)/3;</em>
<em>grade=calcGrade(avg);</em>
<em>ofile<<s[i].firstName<<" "<<s[i].lastName<<"\t"<<avg<<"\t"<<grade<<"\n";</em>
<em>sum+=avg;</em>
<em>count+=1;</em>
<em>}</em>
<em>}</em>
<em>classAvg=sum/count;</em>
<em>ofile<<"\n\t\tClass Average\t\t"<<classAvg<<"\n";</em>
<em>ofile<<"---------------------\n\n";</em>
<em>ifile.close();</em>
<em>ofile.close();</em>
<em>}</em>
<em>}</em>
See more about C++ code at brainly.com/question/19705654
#SPJ1