Difference between revisions of "Directory:Derek Elder/Programs/Grade Calculator"

MyWikiBiz, Author Your Legacy — Friday December 27, 2024
Jump to navigationJump to search
m
m
 
(One intermediate revision by the same user not shown)
Line 54: Line 54:
 
}
 
}
 
}
 
}
 
 
done = false;
 
done = false;
  
Line 75: Line 74:
 
}
 
}
 
}
 
}
 
+
        Output<<"-----------------------------Grade Calculator-----------------------------"<<endl<<endl;
    Output<<"-----------------------------Grade Calculator-----------------------------"<<endl;
+
        Output<<"This program will process test scores to provide individuals"<<endl;
    Output<<endl;
+
        Output<<"with letter grades according to the following scale:"<<endl<<endl;
    Output<<"This program will process test scores to provide individuals"<<endl;
+
        Output<<" Average 90-100                  A"<<endl;
    Output<<"with letter grades according to the following scale:"<<endl;
+
        Output<<" Average 80-89.9                  B"<<endl;
    Output<<endl;                                                   //  ||
+
        Output<<" Average 70-79.9                  C"<<endl;
    Output<<" Average 90-100                  A"<<endl;
+
        Output<<" Average 60-69.9                  D"<<endl;
    Output<<" Average 80-89.9                  B"<<endl;
+
        Output<<" Average < 59.9                   F"<<endl<<endl;
    Output<<" Average 70-79.9                  C"<<endl;
+
        Output<<"--------------------------------------------------------------------------"<<endl;
    Output<<" Average 60-69.9                  D"<<endl;
 
    Output<<" Average < 59.9                 F"<<endl;
 
    Output<<"--------------------------------------------------------------------------"<<endl;
 
    Output<<"--------------------------------------------------------------------------"<<endl;
 
  
 
Input>>first_name>>last_name;
 
Input>>first_name>>last_name;
Line 118: Line 113:
 
}
 
}
 
}
 
}
 
 
float test_average = total_score/test_number;
 
float test_average = total_score/test_number;
  
Line 136: Line 130:
 
Output<<"--------------------------------------------------------------------------"<<endl;
 
Output<<"--------------------------------------------------------------------------"<<endl;
 
}
 
}
Input>>first_name>>last_name;
+
Input>>first_name>>last_name;
 
}
 
}
 
Output<<"Thank you for using this Grade Calculator.";
 
Output<<"Thank you for using this Grade Calculator.";

Latest revision as of 05:08, 26 February 2008

#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cmath>
using namespace std;

int main()
{
	string first_name = string();
	string last_name = string();
	int test_score = 0;
	int test_number = 0;
	float total_score = 0.0;
	bool done = false;
	char grade = ' ';
	char ch = ' ';

	ifstream Input;
	ofstream Output;
	string Input_File_Name = string();
	string Output_File_Name = string();

	while(!done)
	{
		Input.clear();
		cout<<"Please enter the name of your input file: ";
		getline(cin,Input_File_Name);
		Input.open(Input_File_Name.c_str());

		if(!Input)
		{
			cout<<"The file name is invalid or the file is read protected.\n";
			done = false;
		}
		else
		{
			cout<<"The file "<<Input_File_Name<<" exists.\n";

			ch = Input.peek();

			if(ch == EOF)
			{
				cout<<"The file "<<Input_File_Name<<" has no data in it."<<endl;
				done = false;
				Input.close();
			}
			else
			{
				cout<<"The file "<<Input_File_Name<<" has data in it."<<endl;
				done = true;
			}
		}
	}
	done = false;

	while(!done)
	{
		Output.clear();
		cout<<"Please enter the name of your output file: ";
		getline(cin,Output_File_Name);
		Output.open(Output_File_Name.c_str());

		if(!Output)
		{
			cout<<"Output file creation failed\n";
			done = false;
		}
		else
		{
			cout<<"Output file creation successful\n";
			done = true;
		}
	}
        Output<<"-----------------------------Grade Calculator-----------------------------"<<endl<<endl;
        Output<<"This program will process test scores to provide individuals"<<endl;
        Output<<"with letter grades according to the following scale:"<<endl<<endl;
        Output<<"		Average 90-100                   A"<<endl;
        Output<<"		Average 80-89.9                  B"<<endl;
        Output<<"		Average 70-79.9                  C"<<endl;
        Output<<"		Average 60-69.9                  D"<<endl;
        Output<<"		Average < 59.9                   F"<<endl<<endl;
        Output<<"--------------------------------------------------------------------------"<<endl;

	Input>>first_name>>last_name;
	while(Input)
	{
		Output<<"Your name is             :"<<first_name<<" "<<last_name<<endl;
		Input>>test_score;

		if(test_score < 0)
		{
			Output<<first_name<<" "<<last_name<<" you didn't take any tests"<<endl;
			Output<<"--------------------------------------------------------------------------"<<endl;
		}
		else
		{
			Output<<"Your scores are          :";
			total_score = 0;
			test_number = 0;
			while(test_score >= 0)
			{
				total_score = total_score + test_score;
				test_number++;
				Output<<" "<<test_score;
				Input>>test_score;
				while(Input.fail())
				{
					Input.clear();
					Input.ignore(100,' ');
					Input>>test_score;
				}
			}
			float test_average = total_score/test_number;

			if(test_average >= 90)
				grade = 'A';
			else if(test_average >= 80)
				grade = 'B';
			else if(test_average >= 70)
				grade = 'C';
			else if(test_average >= 60)
				grade = 'D';
			else 
				grade = 'F';

			Output<<endl<<first_name<<" "<<last_name<<", your average is "<<setprecision(1)<<fixed<<test_average
				  <<", and your letter grade is "<<grade<<endl;
			Output<<"--------------------------------------------------------------------------"<<endl;
		}
		Input>>first_name>>last_name;
	}
	Output<<"Thank you for using this Grade Calculator.";

	cout<<"Good day.\n";
	Input.close();
	Output.close();
	return 0;
}