Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ HELP Make dynamic array member\'s type into a template. Make the entire clas

ID: 3683716 • Letter: C

Question

C++ HELP

Make dynamic array member's type into a template. Make the entire class into a template.

--------------------------------------------------------------------------------------------------------------------------------------------------------

#ifndef TEMPLIST_H_
#define TEMPLIST_H_

#include <iostream>
using namespace std;

struct TemperatureList{
   public:
       double* list;
       long size;
       long MAX_SIZE;
       TemperatureList(int n);
       void add_temperature(double temperature);
       bool full() const;
       long get_size() const;
       double get_temperature(long position) const;
       void output(ostream &outs) const;
       double get_last() const;
       void detele_last();

};

#endif

templist.cpp

#include "templist.h"

TemperatureList::TemperatureList(int n){
   list = new double[n];
   MAX_SIZE = n;
   size = 0;
}

void TemperatureList::add_temperature(double temperature){
   if (full() == false){
       list[size] = temperature;
       size += 1;
   }
}

bool TemperatureList::full() const{
   if (size == MAX_SIZE) return true;
   return false;
}

long TemperatureList::get_size() const{
   return size;
}

double TemperatureList::get_temperature(long position) const{
   if (position >= size || position < 0) return 0.0;
   return list[position];
}

void TemperatureList::output(ostream &outs) const{
   for (long i = 0; i < size; i++)
       outs << list[i] << endl;
}

double TemperatureList::get_last() const{
   if (size == 0) return 0.0;
   return list[size-1];
}

void TemperatureList::detele_last(){
   if (size > 0);
       size -= 1;
}


main.cpp

#include "templist.h"

int main(){
   TemperatureList temp(50);
   temp.add_temperature(4.0); temp.add_temperature(7.0); temp.add_temperature(8.0);temp.add_temperature(9.6);
  
   cout << "Last element is : " << temp.get_last() << endl;
   return 0;
}

Explanation / Answer

#ifndef TEMPLIST_H_
#define TEMPLIST_H_

#include <iostream>

using namespace std;

template <class T>
class TemperatureList{
public:
T* list;
long size;
long MAX_SIZE;
TemperatureList(int n);
void add_temperature(T temperature);
bool full() const;
long get_size() const;
T get_temperature(long position) const;
void output(ostream &outs) const;
T get_last() const;
void detele_last();
};

#endif

templist.cpp:

#include "templist.h"

template <class T>
TemperatureList<T>::TemperatureList(int n){
list = new T[n];
MAX_SIZE = n;
size = 0;
}

template <class T>
void TemperatureList<T>::add_temperature(T temperature){
if (full() == false){
list[size] = temperature;
size += 1;
}
}

template <class T>
bool TemperatureList<T>::full() const{
if (size == MAX_SIZE) return true;
return false;
}

template <class T>
long TemperatureList<T>::get_size() const{
return size;
}

template <class T>
T TemperatureList<T>::get_temperature(long position) const{
if (position >= size || position < 0) return 0.0;
return list[position];
}

template <class T>
void TemperatureList<T>::output(ostream &outs) const{
for (long i = 0; i < size; i++)
outs << list[i] << endl;
}

template <class T>
T TemperatureList<T>::get_last() const{
if (size == 0) return 0.0;
return list[size-1];
}

template <class T>
void TemperatureList<T>::detele_last(){
if (size > 0);
size -= 1;
}

main.cpp:

#include "templist.h"

int main(){
TemperatureList<double> temp(50);
temp.add_temperature(4.0);
temp.add_temperature(7.0);
temp.add_temperature(8.0);
temp.add_temperature(9.6);
  
cout << "Last element is : " << temp.get_last() << endl;
return 0;
}