Write a program to complete the following tasks. Record all results to a data fi
ID: 3537918 • Letter: W
Question
Write a program to complete the following tasks. Record all results to a data file called "GradeSheet.dat".
(1) Read the grade sheet from attached data file, "Assignment4.dat". Print the original grade sheet.
(3) Write a module to sort array GRADE[] and print the sorted grade sheet.
(4) Write a module to sort array NAME[] and print the sorted grade sheet.
(5) Write a module to sort array ID[] and print the sorted grade sheet.
(6) Write a module to print the student's id, name, and grade for student with highest grade and with lowest grade, respectively.
(7) Write a module to determine mean of the grades.
(8) Write a module to list students with grade is less than mean.
Explanation / Answer
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
double Grade[100];
int Id[100];
string Name[100];
int n=0;
void sortGrades()
{
int i=0,j=0;
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(Grade[i]>Grade[j])
{
double temp=Grade[j];
Grade[j]=Grade[i];
Grade[i]=temp;
string temp1=Name[j];
Name[j]=Name[i];
Name[i]=temp1;
int temp2=Id[j];
Id[j]=Id[i];
Id[i]=temp2;
}
}
}
cout<<endl<<"Sorted Grades: "<<endl;
for(i=0;i<n;i++)
{
cout<<Id[i]<<" "<<Name[i]<<" "<<Grade[i]<<endl;
}
}
void sortIDs()
{
int i=0,j=0;
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(Id[i]>Id[j])
{
double temp=Grade[j];
Grade[j]=Grade[i];
Grade[i]=temp;
string temp1=Name[j];
Name[j]=Name[i];
Name[i]=temp1;
int temp2=Id[j];
Id[j]=Id[i];
Id[i]=temp2;
}
}
}
cout<<endl<<"Sorted IDs: "<<endl;
for(i=0;i<n;i++)
{
cout<<Id[i]<<" "<<Name[i]<<" "<<Grade[i]<<endl;
}
}
void sortNames()
{
int i=0,j=0;
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(Name[i].length()>Name[j].length())
{
double temp=Grade[j];
Grade[j]=Grade[i];
Grade[i]=temp;
string temp1=Name[j];
Name[j]=Name[i];
Name[i]=temp1;
int temp2=Id[j];
Id[j]=Id[i];
Id[i]=temp2;
}
}
}
cout<<endl<<"Sorted Names: "<<endl;
for(i=0;i<n;i++)
{
cout<<Id[i]<<" "<<Name[i]<<" "<<Grade[i]<<endl;
}
}
void HighestGrade()
{
int i=0,index;
double max;
for(i=0;i<n;i++)
{
if(i==0)
{
max=Grade[i];
index=0;
}
else
{
if(max<Grade[i])
{
max=Grade[i];
index=i;
}
}
}
cout<<endl<<"Highest Grades :"<<endl;
cout<<Id[index]<<" "<<Name[index]<<" "<<Grade[index]<<endl;
}
void LowestGrade()
{
int i=0,index;
double min;
for(i=0;i<n;i++)
{
if(i==0)
{
min=Grade[i];
index=0;
}
else
{
if(min>Grade[i])
{
min=Grade[i];
index=i;
}
}
}
cout<<endl<<"Lowest Grades :"<<endl;
cout<<Id[index]<<" "<<Name[index]<<" "<<Grade[index]<<endl;
}
double meanGrade()
{
int i=0;
double avg=0;
for(i=0;i<n;i++)
{
avg=avg+Grade[i];
}
avg=avg/n;
return avg;
}
void LessThanMean()
{
cout<<"Student having grades less than mean: "<<endl;
int i=0;
double avg=meanGrade();
for(i=0;i<n;i++)
{
if(Grade[i]<=avg)
{
cout<<Id[i]<<" "<<Name[i]<<" "<<Grade[i]<<endl;
}
}
}
int main()
{
int i=0;
ifstream in("GradeSheet.dat");
while(!in.eof())
{
in>>Id[n];
in>>Name[n];
in>>Grade[n];
n++;
}
cout<<"GradeSheet :"<<endl;
for(i=0;i<n;i++)
{
cout<<Id[i]<<" "<<Name[i]<<" "<<Grade[i]<<endl;
}
in.close();
sortGrades();
sortIDs();
sortNames();
HighestGrade();
LowestGrade();
cout<<endl<<"Mean grade is :"<<meanGrade()<<endl;
LessThanMean();
cin>>i;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.