rendered paste body//prog5.cxx//************************************************************************************//AUTHOR:Aaron Sopfe////COUSE TITLE: Programming 1////COUSE NUMBER: CS116////PROF NAME: Moe Bidgoli////ASSIGMENT NUMBER #5////DUE DATE OCT-5-2011////POSSIBLE POINTS 20 Points////PURPOSE//// This program uses an input file to collect name, id, and three exam scores// (exam1, exam2, exam3) in to an output file, it checks to make sure the student// ID, and exams are in set define range and will display an error if the value(s)// are not in the range. The program also averages the exam grades and does another// check to make sure the average does not supass 100 or under 0. The final part of// the program will display pass or fail if the average is above or below 70.////**********************************************************************************#include <iomanip>#include <fstream>#include <iostream>using namespace std;const int MAXE = 100.00;const int MINE = 0.00;const int MAXID = 9999;const int MINID = 1111;int main(){ ofstream outFile; ifstream inFile; outFile.open("out.data"); inFile.open("in.data"); outFile.setf(ios::fixed); outFile.precision(2); string studName, pass, fail, inv, work; int studId; float exam1, exam2, exam3, avg; int invRd = 0; int validRd = 0; pass = "PASSED"; fail = "FAILED"; inv = "~ INVALID DATA ~"; inFile >> studName >> studId>> exam1 >> exam2 >> exam3; avg = (exam1 + exam2 + exam3)/3; if( avg >= 70.00 && avg <= 100.00 ) work = pass; else if ( avg < 70.00 && avg >= 0.00 ) work = fail; else work = inv; if( avg >= MINE && avg <= MAXE && exam1 >= MINE && exam1 <= MAXE && exam2 >= MINE && exam2 <= MAXE && exam3 >= MINE && exam3 <= MAXE && studId >= MINID && studId <= MAXID ) { validRd = validRd + 1; outFile << "~~ < Student Exam Report > ~~" << endl; outFile << "Student ID:" << setw(5) << "Name" << setw(11) << "Exam 1" << setw(11) << "Exam 2" << setw(11) << "Exam 3" << setw(11) << "Average" << setw(20) << "Passed/Failed" << endl; outFile << "-----------" << setw(5) << "----" << setw(11) << "------" << setw(11) << "------" << setw(11) << "------" << setw(11) << "-------" << setw(20) << "-------------" << endl; outFile << studId << setw(15) << studName << setw(8) << exam1 << setw(11) << exam2 << setw(11) << exam3 << setw(11) << avg << setw(20) << work << endl << endl << "Number of valid Rd: " << validRd << endl << "Number of invalid Rd: " << invRd << endl << " ~~*< end >*~~" << endl; } else { invRd = invRd + 1; outFile << "~~ < Student Exam Report > ~~" << endl; outFile << "Student ID:" << setw(5) << "Name" << setw(11) << "Exam 1" << setw(11) << "Exam 2" << setw(11) << "Exam 3" << setw(11) << "Average" << setw(20) << "Passed/Failed" << endl; outFile << "-----------" << setw(5) << "----" << setw(11) << "------" << setw(11) << "------" << setw(11) << "------" << setw(11) << "-------" << setw(20) << "-------------" << endl; outFile << studId << setw(15) << studName << setw(8) << exam1 << setw(11) << exam2 << setw(11) << exam3 << setw(25) << " ~~ INVALID DATA ~~ "<< endl << endl << "Number of valid Rd; " << validRd << endl << "Number of invalid Rd: " << invRd << endl << endl << "~~*< end >*~~" << endl; } inFile.close(); outFile.close(); return 0;}