#include<fstream>

#include<iostream>

#include<string.h>

#include<string>

#include<iomanip>


using namespace std;


class student{

public:

string fname;

string lname;

string major;

double gpa;

}; // student

student e[100];

int n;

void load(){

ifstream studentFile("students.txt", ios::in);

while(studentFile>>e[n].fname>>e[n].lname>>e[n].major>>e[n].gpa){

n++;}//WHILE

} // LOAD the student

void display(){

cout<<setiosflags(ios::left)<<setw(15)<<"First Name"<<setw(15)<<"Last Name";

cout<<setw(15)<<"major"<<setw(15)<<"gpa";

cout<<endl<<endl;

cout<<setiosflags(ios::fixed|ios::showpoint|ios::left);

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

if(e[i].fname!=" "){

cout<<setiosflags(ios::left)<<setw(15)<<e[i].fname<<setw(15)<<e[i].lname;

cout<<setprecision(2)<<setiosflags(ios::left)<<setw(15)<<e[i].major;

cout<<setw(15)<<e[i].gpa;

cout<<resetiosflags(ios::left)<<endl;}//IF

}//FOR

}//THIS FUNCTION DISPLAYS ALL RECORDS IN ARRAY

int swap(int i, int j){

student temp;

temp=e[i];

e[i]=e[j];

e[j]=temp;

return 0;

}//swap


main(){

load();

char choice='0';

while (choice!='e'&&choice!='E'){

cout<<"1. Display the original students' Records"<<endl;

cout<<"2. Sorting the Records by GPA"<<endl;

cout<<"Enter the number of your choice:";

cin>>choice;

cout<<endl;

switch (choice){

case '1': display(); break;

case '2':

int n=5 ,a,b;

for(a=0;a<n-1;a++){

b=a+1;

for(b=0;b<n;b++){

if(e[a].gpa>e[b].gpa)

{swap(a,b);}

}

}//END a

display();

break;

} // switch

} // while

}//MAIN

กก