1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
using namespace std;
void greeting();
void getName(ifstream& in, string& fname, string& lname);
void readScore(ifstream& in, double& sum, int& counter);
double calculateAverage(double sum, int counter);
char assginGrade(double avg);
void printData(string fname, string lname, double sum, int counter, double avg, char grade);
void farewell();
int main()
{
string fname = string();
string lname = string();
double sum = double();
int counter = int();
double avg = double();
char grade = char();
string filename = string();
string outfile = string();
greeting();
//Input file
cout << "Please enter the name of the file: ";
cin >> filename;
ifstream in;
in.open(filename + ".txt");
if (!in)
{
cout << "File does not exist!" << endl;
}
else
{
in.peek();
if (in.eof())
{
cout << "File is Empty." << endl;
}
else
{
//Output file
cout << "Please enter the name of the print file: ";
cin >> outfile;
ofstream fout;
fout.open(outfile + ".txt");
if (!fout)
{
cout << "File does not exist!" << endl;
}
else
//Functions
while (!in.eof())
{
sum = 0.0;
counter = 0;
getName(in, fname, lname);
readScore(in, sum, counter);
avg = calculateAverage(sum, counter);//214//3
grade = assginGrade(avg);
printData(fname, lname, sum, counter, avg, grade);
}
farewell();
}
}
}
void greeting()
{
cout << "\t\t\t\t********************************************" << endl;
cout << "\t\t\t\tWelcome to my Grade Calculation System (GCS)" << endl;
cout << "\t\t\t\t********************************************" << endl;
}
void getName(ifstream& in, string& fname, string& lname)
{
in >> fname >> lname;
}
void readScore(ifstream& in, double& sum, int& counter)
{
double score = double();
for (int i = 0; i < 3; i++)
{
in >> score;
while (in.fail())
{
//cout << "bad score" << endl;
in.clear();
in.ignore(1, '\n');
in >> score;
}
sum = sum + score;
++counter;
}
}
double calculateAverage(double sum, int counter)
{
double avg = double();
avg = sum / counter;
return avg;
}
char assginGrade(double avg)
{
if (avg >= 90)
return 'A';
else if (avg >= 80)
return 'B';
else if (avg >= 70)
return 'C';
else if (avg >= 60)
return 'D';
else if (avg < 60)
return 'F';
}
void farewell()
{
cout << "bye!" << endl;
}
void printData(string fname, string lname, double sum, int counter, double avg, char grade)
{
cout << fname << " " << lname
<< " " << sum << setprecision(4) << " " << counter
<< " " << avg << setprecision (4) << " " << grade << endl;
}
|