Average an array of Measure objects input by user - C++ Class

C++ examples for Class:object

Description

Average an array of Measure objects input by user

Demo Code

#include <iostream>
using namespace std;
class Measure                    // English Measure class
{
   private://www .j a  v  a2 s .  c  om
   int feet;
   float inches;
   public:
   Measure()
   { feet = 0; inches = 0; }
   Measure(int ft, float in)
   { feet = ft; inches = in; }
   void getdist()              //get length from user
   {
      cout << "\nEnter feet: ";  cin >> feet;
      cout << "Enter inches: ";  cin >> inches;
   }
   void showdist()
   { cout << feet << "\'-" << inches << '\"'; }
   void add_dist( Measure, Measure );    //declarations
   void div_dist( Measure, int );
};
//add Measures d2 and d3
void Measure::add_dist(Measure d2, Measure d3)
{
   inches = d2.inches + d3.inches;  //add the inches
   feet = 0;                      //(for possible carry)
   if(inches >= 12.0)             //if total exceeds 12.0,
   {                           //then decrease inches
       inches -= 12.0;             //by 12.0 and
       feet++;                     //increase feet
   }                           //by 1
   feet += d2.feet + d3.feet;     //add the feet
}
//divide Measure by int
void Measure::div_dist(Measure d2, int divisor)
{
    float fltfeet = d2.feet + d2.inches/12.0;  //convert to float
    fltfeet /= divisor;                        //do division
    feet = int(fltfeet);                       //get feet part
    inches = (fltfeet-feet) * 12.0;            //get inches part
}
int main()
{
    Measure distarr[100];         //array of 100 Measures
    Measure total(0, 0.0), average;  //other Measures
    int count = 0;                 //counts Measures input
    char ch;                       //user response character
    do {
       cout << "\nEnter a Measure";           //get Measures
       distarr[count++].getdist();             //from user, put
       cout << "\nDo another (y/n)? ";         //in array
       cin >> ch;
    }while( ch != 'n' );
    for(int j=0; j<count; j++)                 //add all Measures
       total.add_dist( total, distarr[j] );    //to total
    average.div_dist( total, count );          //divide by number
    cout << "\nThe average is: ";              //display average
    average.showdist();
    cout << endl;
    return 0;
}

Result


Related Tutorials