// This is the IMPLEMENTATION FILE: templist.C.  for the class
// TemperatureList.  The interface for this class is in the file
// templist.h.

#include "templist.h"

#include <iostream>

using namespace std;

// Initializes the object to an empty list.
TemperatureList::TemperatureList(void)
{
    size = 0;
}

// Precondition:  The list is not full.
// Postcondition:  The temperature has been added to the END of the list,
//                 if there was room.
void TemperatureList::add_temperature(double temperature)
{
    if (!full())
    {
        list[size++] = temperature;
    }
    return;
}

// Returns true if the list is full, false otherwise.
bool TemperatureList::full(void) const
{
    return (size == MAX_LIST_SIZE);
}

// Precondition:  If outs is a file output stream, then outs has
//                already been connected to a file.
// Postcondition:  Temperatures are output one per line on the stream.
void TemperatureList::output(ostream & outs) const
{
    long i;
    for (i = 0; i < size; i++)
    {
        outs << list[i] << " F\n";
    }
    return;
}

// Returns the number of temperatures on the list.
long TemperatureList::get_size(void) const
{
    return size;
}

// Precondition:  0 <= position < get_size()
// Returns the temperature that was added in position
// specified.  The first temperature that was added is
// in position 0.
double TemperatureList::get_temperature(long position) const
{
    return ( (position >= size) ||
             (position < 0) )
           ? (0.0) : (list[position]);
}

Note: This project is adapted from ones given in textbooks by Walter Savitch.