Read students details, calculate the grades of students and export those results to the external text document.
#include <iostream>
#include <string>
#include <fstream>
#include <conio.h>
using namespace std;
class student
{
public:
student()
{
Name = "";
ID = 0;
Mid1 = 0;
Mid2 = 0;
Final = 0;
HWs = 0;
Total = 0;
Grade = 'F';
fout.open("StudentsInfo.txt", ios::app);
}
string getName()
{
return Name;
}
bool setStud(string name, long int id, int m1, int m2, int f, int h)
{
Name = name;
ID = id;
if((m1 >= 0) && (m2 <= 100))
Mid1 = m1;
else
return false;
if((m2 >= 0) && (m2 <= 100))
Mid2 = m2;
else
return false;
if((f >= 0) && (f <= 100))
Final = f;
else
return false;
if((h >= 0) && (h <= 100))
HWs = h;
else
return false;
Total = (0.25 * m1) + (0.25 * m2) + (0.40 * f) + (0.10 * h);
if(Total >= 90)
Grade = 'A';
else if(Total >= 80)
Grade = 'B';
else if(Total >= 70)
Grade = 'C';
else if(Total >= 60)
Grade = 'D';
return true;
}
void PrintStud()
{
cout << "Student name: " << Name << "\tID: " << ID << endl << "Mid 1: " << Mid1 << "\tMid 2: " << Mid2 << endl
<< "HWs : " << HWs << "\tfinal: " << Final << endl << "Total: " << Total << "\tGrade: " << Grade
<< "\n\n";
fout << "Student name: " << Name << "\tID: " << ID << endl << "Mid 1: " << Mid1 << "\tMid 2: " << Mid2 << endl
<< "HWs : " << HWs << "\tfinal: " << Final << endl << "Total: " << Total << "\tGrade: " << Grade
<< "\n\n";
}
private:
string Name;
long int ID;
int Mid1, Mid2, Final, HWs;
float Total;
char Grade;
ofstream fout;
};
int main()
{
bool check;
student s[15];
check = s[0].setStud("Anath", 0001, 100, 90, 95, 80);
if(check)
s[0].PrintStud();
else
cout << "Error!\n\tThe information provided for student: " << s[0].getName() << " was incorrect\n\n";
check = s[1].setStud("Balu", 0002, 99, 100, 0, 0);
if(check)
s[1].PrintStud();
else
cout << "Error!\n\tThe information provided for student: " << s[1].getName() << " was incorrect\n\n";
getch();
}
OUTPUT:
Student name: Anath ID: 1 Mid 1: 100 Mid 2: 90 HWs : 80 final: 95 Total: 93.5 Grade: A Student name: Balu ID: 2 Mid 1: 99 Mid 2: 100 HWs : 0 final: 0 Total: 49.75 Grade: F