CS 52: Assignment #7 Solved

25.00 $

Category:

Description

5/5 - (2 votes)

Background:
The purpose of this assignment is to practice dealing with arrays and array parameters.  To Computer Scientists, C++ is consider not pure because not everything is actually a class or object.  For example, 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-guy (.), 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.

part_a: grader

The Grader class is keeping track of a set of exam 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_SIZE constant, 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_Values array 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.

Implementation Details Sample Driver Code
Grader Grader g;
double d[5]= {99,70,85,93,84};
double e[4]= {100,81,80,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( 71 );
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 71

Grader( );

void addScore( double score );
void addScores( double scores[],
double size );
void clear();

double findBiggest( ) const;
double findSmallest( ) const;

int my_Values[ MAXSIZE ];
int my_valuesSeenSoFar;
  Sample Output
  Best Score = 99
Worst Score = 70
Best Score = 100
Worst Score = 71

Overall

  • Your submission should follow this organization:
    • part_a
      • main.cpp
      • grader.h
      • grader.cpp
  • 07_grader.zip