In: Computer Science
Project 1 - Arrays - Grader
The purpose of this assignment is to practice dealing with arrays and array parameters. Arrays are neither classes nor objects. As a result, they have their own way of being passed as a parameter and they also do not support the dot operator ( .), so you cannot determine how full they are. This results in some pain and suffering when coding with arrays. It is this awareness that I am trying to get across to you in this homework assignment.
Grader
The Grader class is keeping track of a set of eexam scores. Scores can be added one at a time thru calls to addScore(...)or it can add a set of scores thru calls to addScores(...). Once scores have been collected, the Grader class can find the best and worst scores it has seen so far thru calls to findBiggest()and findSmallest().
Both of these methods are read-only operations, so you won’t be able to change or update anything inside the Grader instance object. Processing arrays lead to lots of loops and that is what will be necessary in these methods. As for the MAX_SIZEconstant, I would recommend you just set it to a very large number (say 100…) and move on.
You will notice also that the class Grader has an integer counter named valuesSeenSoFar. This counter is meant to tell you how full the array actually is. Since an array is not a class, you can’t ask the my_Valuesarray any questions. This counter needs to be maintained (incremented and decremented) by your Grader class code, as driver code fills and empties the array.
Following the class diagrams shown below, implement the Grader class. Embed your class in a suitable test program that proves your calculations are correct. You may choose to create any number of additional methods, but you are required to implement all of the public methods shown below. You are free to ignore the private parts of the class I suggest below.
I need in three file:
grade.cpp
grade.h
main.cpp
Implementation Details - Grader
Grader(); void addScore(int score); void addScores(int scores[], int size); void clear(); int findBiggest() const; int findSmallest() const; int my_Values[MAXSIZE]; int my_valuesSeenSoFar;
Sample Driver Code
Grader g; int d[5]= {99,70,85,93,84}; int e[4]= {100,81,60,91}; g.addScore(75); g.addScore(82); g.addScores(d, 5); cout << "Best Score = " << g.findBiggest() << endl; /// should give value 99 cout << "Worst Score = " << g.findSmallest() << endl; /// should give value 70 g.clear(); g.addScore(50); g.addScore(74); g.addScores(e, 4); cout << "Best Score = " << g.findBiggest() << endl; /// should give value 100 cout << "Worst Score = " << g.findSmallest() << endl; /// should give value 50
Sample Output
Best Score = 99 Worst Score = 70 Best Score = 100 Worst Score = 50
Code:-
/// main.cpp ///
#include<iostream>
#include"grade.cpp"
using namespace std;
int main()
{
Grader g;
int d[5]= {99,70,85,93,84};
int e[4]= {100,81,60,91};
g.addScore(75);
g.addScore(82);
g.addScores(d,5);
cout << "Best Score = " << g.findBiggest() <<
endl;
cout << "Worst Score = " << g.findSmallest() <<
endl;
g.clear();
g.addScore(50);
g.addScore(74);
g.addScores(e, 4);
cout << "Best Score = " << g.findBiggest() <<
endl;
cout << "Worst Score = " << g.findSmallest() <<
endl;
return 0;
}
/// grade.cpp ///
#include"grade.h"
using namespace std;
Grader::Grader()
{
my_valuesSeenSoFar=-1;
}
void Grader::addScore(int score)
{
if(my_valuesSeenSoFar<100)
{
my_valuesSeenSoFar++;
my_Values[my_valuesSeenSoFar]=score;
}
}
void Grader::addScores(int scores[], int size)
{
int i=0;
while(my_valuesSeenSoFar<100 && i<size)
{
my_valuesSeenSoFar++;
my_Values[my_valuesSeenSoFar]=scores[i];
i++;
}
}
void Grader::clear()
{
my_valuesSeenSoFar=-1;
}
int Grader::findSmallest() const
{
if(my_valuesSeenSoFar==-1)
return -1;
int min_value=my_Values[0];
for(int i=0;i<=my_valuesSeenSoFar;i++)
{
if(min_value>my_Values[i])
{
min_value=my_Values[i];
}
}
return min_value;
}
int Grader::findBiggest() const
{
if(my_valuesSeenSoFar==-1)
return -1;
int max_value=my_Values[0];
for(int i=0;i<=my_valuesSeenSoFar;i++)
{
if(max_value<my_Values[i])
{
max_value=my_Values[i];
}
}
return max_value;
}
/// grade.h ///
#define MAXSIZE 100
class Grader
{
public:
Grader();
void addScore(int score);
void addScores(int scores[], int size);
void clear();
int findBiggest() const;
int findSmallest() const;
int my_Values[MAXSIZE];
int my_valuesSeenSoFar;
};
Code Screenshots:-
Output:-
Please UPVOTE thank you...!!!