Question: I need someone to help me with the analysis assignment below: Thank you Perform a detailed analysis of the differences and similarities between M1 and
I need someone to help me with the analysis assignment below: Thank you
Perform a detailed analysis of the differences and similarities between M1 and M2 below.
M1
#include
#include
#include
#include
int numberStudents = 4;
using namespace std;
//functions
inline void Header(){cout << " ...programmed by Hugh...... ";};
int getData(char grade,int& num, string *name, double *totalGPA);
void calGPA(char& grade, float& gpa);
void output(double *totalGPA, string *name);
void main ()
{
string *name;
name = new string[4];
double *totalGPA;
totalGPA = new double[5];
*name = "Freddie"; name++;
*name = "Jane"; name++;
*name = "Jonathan"; name++;
*name = "Mary";
name = name - 3;
char grade = ' ';
int num = 0;
Header();
grade = getData(grade, num, name, totalGPA);
output(totalGPA, name);
delete [] name; //Can't forget to delete the dynamic memory...
delete [] totalGPA; //Can't forget to delete the dynamic memory...
} // end main
int getData(char grade, int& num, string *name, double *totalGPA)
{
float gpa = 0;
if (num == (numberStudents))
return 1;
else
{
cout<<" Enter "<<*name<<"'s Grades"< calGPA(grade, gpa); *totalGPA=gpa; system("cls"); num++; name++; totalGPA++; return getData(grade, num, name, totalGPA); } }// end getData void calGPA(char& grade, float& gpa) { for (int y=1; y<6; y++) { cout<<" Grade # "< cin>>grade; switch(grade) { case 'A': case 'a': gpa=gpa+4; break; case 'B': case 'b': gpa=gpa+3; break; case 'C': case 'c': gpa=gpa+2; break; case 'D': case 'd': gpa=gpa+1; break; case 'F': case 'f': gpa=gpa+0; break; default: cout<<" A Valid Letter Grade is A, B, C, D, or F "< y--; }//end switch } //end for }// end calGPA void output(double *totalGPA, string *name) { cout< cout< for(int x=0; x { cout<<" "< totalGPA++; name++; } cout<<" press anyKey to continue ..."< _getch(); }//end output M2 #include "stdafx.h" #include #include using namespace std; //function prototypes //recursive function to get the grades float readGradRecur(int); //function to output results void displayGPA(const char *[], float[]); //inline functions //to calculate the GPA inline float fCalculateGPA(float totGrade) {return totGrade / 5.0;}; //complete this function by your name inline void printCredit() {cout << "Programmed by Me :) " << flush; }; //the main int main() { //student array const char *students[4] = {"Freddie", "Jane", "Jonathan", "Mary"}; //declare the grade array float totalGrads [4] = {0.0, 0.0, 0.0, 0.0}; int itr; //print the program header printCredit(); //the loop to fill the GradeTotals for (int itr1 = 0; itr1 < 4; itr1++) { cout << students[itr1] << " " << flush; itr = 0; totalGrads[itr1] = readGradRecur(itr++); cout << "*****" << totalGrads[itr1]<< endl << endl; } displayGPA(students, totalGrads); //for visual studio console freze system("pause"); return 0; }//end main //recursive function to get the grades float readGradRecur(int inpGradeNum) { char inpGrade; //to take 5 grades if (inpGradeNum < 5) { cout << "Please enter grade for subject " << (inpGradeNum + 1) << ": " << flush; cin>>inpGrade; //to add the grades switch (inpGrade) { case 'A': case 'a': return readGradRecur(inpGradeNum + 1) + 4.0; break; //if grade is B case 'B': case 'b': return readGradRecur(inpGradeNum + 1) + 3.0; break; //if grade is c case 'C': case 'c': return readGradRecur(inpGradeNum + 1) + 2.0; break; //if gade is d case 'D': case 'd': return readGradRecur(inpGradeNum + 1) + 1.0; break; //if gade is f case 'F': case 'f': return readGradRecur(inpGradeNum + 1) + 0.0; break; //if invalid grade default: //print the error message cout << "Error !!!Grade should be A, B, C, D or F." << " " << flush; return readGradRecur(inpGradeNum); } } else { return 0.0; } } //function to output the results void displayGPA(const char *studentName[], float gpaTot[]) { cout << " The GPA of the students!!! " << setw(12) << setiosflags(ios::fixed | ios::left) << "Student" << "GPA " << "-------- ----- " << flush; for (int vi = 0; vi < 4; vi++) { cout << setw(12) << setiosflags(ios::fixed | ios::left) << studentName[vi] << setiosflags(ios::fixed | ios::showpoint) << setprecision (3) << fCalculateGPA(gpaTot[vi]) << " " << flush; } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
