Skeleton:
  /*
 
 
 */
 
 #include <iostream>
 #include <string>
 #include <fstream>
 
 using namespace std;
 
 
 class call_record
 {
 public:
 string firstname;
 string lastname;
 string cell_number;
 int relays;
 int call_length;
 double net_cost;
 double tax_rate;
 double call_tax;
 double total_cost;
 };
 
 class call_class
 {
 public:
 call_class();
 ~call_class(); //de-allocates all memory allocate to call_DB by operator new.
 bool is_empty(); //inline implementation
 bool is_full();//inline implementation
 int search(const string key);//returns location if item in listl; otherwise return -1
 void add( ); //adds a call record to call_DB
 void remove(const string key); //removes an item from the list
 void double_size();
 void process();
 void print(); //prints all the elements in the list to the screen
 private:
 int count;
 int size;
 call_record *call_DB;
 };
 
 
 
 
  /************************************************************************************************************************************/
 //Name: default constructor
 //Precondition:
 //Postcondition:
 //Decription: Reads the data file of call information (cell number, relays and call length) into the dynamic array of call record,
 //call_DB. If the count because equal to the size the function double_size is called and the memory allocated to call_DB is doubled.
  /************************************************************************************************************************************/
 call_class::call_class()
 {
 
 }
 
  /***********************************************************************************************************************************/
 //Name: is_empty
 //Precondition:
 //Postcondition:
 //Decription: returns true if call_DB is empty
  /**********************************************************************************************************************************/
 bool call_class::is_empty()
 {
 return count == 0;
 }
 
  /**********************************************************************************************************************************/
 //Name: is_full
 //Precondition:
 //Postcondition:
 //Decription: returns true if call_DB is full
  /*********************************************************************************************************************************/
 bool call_class::is_full()
 {
 return count == size;
 }
 
  /**********************************************************************************************************************************/
 //Name: search
 //Precondition:
 //Postcondition:
 //Decription: locates key in call_DB if it is there; otherwise -1 is returned
  /*********************************************************************************************************************************/
 int call_class::search(const string key)
 {
 return -1;
 }
 
  /*********************************************************************************************************************************/
 //Name: add
 //Precondition:
 //Postcondition:
 //Decription: adds a call_record to call_DB; if call_DB is full, double_size is called to increase the size of call_DB. The user
 // is prompted to enter the firstname, lastname, cell number, relays and call length.
  /********************************************************************************************************************************/
 void call_class::add( )
 {
 }
 
  /********************************************************************************************************************************/
 //Name: remove
 //Precondition:
 //Postcondition:
 //Decription: remove key from call_DB if it is there.
  /*******************************************************************************************************************************/
 void call_class::remove(const string key)
 {
 }
 
  /******************************************************************************************************************************/
 //Name: double_size
 //Precondition:
 //Postcondition:
 //Decription: doubles the size (capacity) of call_DB
  /******************************************************************************************************************************/
 void call_class::double_size( )
 {
 size *=2;
 call_record *temp = new call_record[size];
 
 for(int i=0; i<count; i++)
 {
 temp[i] = call_DB[i];
 }
 
 delete [ ] call_DB;
 call_DB = temp;
 }
 
 
  /******************************************************************************************************************************/
 //Name: process
 //Precondition:
 //Postcondition:
 //Decription: calculate the net cost, tax rate, call tax and total cost for every call record in call_DB.
  /*****************************************************************************************************************************/
 void call_class::process()
 {
 }
 
 
  /****************************************************************************************************************************/
 //Name: print
 //Precondition:
 //Postcondition:
 //Decription: prints every field of every call_record in call_DB formatted to the screen.
  /***************************************************************************************************************************/
 void call_class::print()
 {
 for(int i=0; i<count; i++)
 {
 cout<<call_DB[i].firstname<<\" \"<<call_DB[i].lastname
 <<\" \"<<call_DB[i].relays<<\" \"<<call_DB[i].cell_number
 <<\" \"<<call_DB[i].call_length<<endl;
 }
 }
 
  /****************************************************************************************************************************/
 //Name: destructor
 //Precondition:
 //Postcondition:
 //Decription: de-allocates all memory allocated to call_DB. This should be the last function to be called before the program
 // is exited.
  /***************************************************************************************************************************/
 call_class::~call_class()
 {
 }
 
 
 //driver to test the functionality of your class.
 int main()
 {
 call_class MyClass;
 
 MyClass.print();
 
 return 0;
 }
   /*
 
 
 */
 
 #include <iostream>
 #include <string>
 #include <fstream>
 
 using namespace std;
 
 
 class call_record
 {
 public:
 string firstname;
 string lastname;
 string cell_number;
 int relays;
 int call_length;
 double net_cost;
 double tax_rate;
 double call_tax;
 double total_cost;
 };
 
 class call_class
 {
 public:
 call_class();
 ~call_class(); //de-allocates all memory allocate to call_DB by operator new.
 bool is_empty(); //inline implementation
 bool is_full();//inline implementation
 int search(const string key);//returns location if item in listl; otherwise return -1
 void add( ); //adds a call record to call_DB
 void remove(const string key); //removes an item from the list
 void double_size();
 void process();
 void print(); //prints all the elements in the list to the screen
 private:
 int count;
 int size;
 call_record *call_DB;
 };
 
 
 
 
  /************************************************************************************************************************************/
 //Name: default constructor
 //Precondition:
 //Postcondition:
 //Decription: Reads the data file of call information (cell number, relays and call length) into the dynamic array of call record,
 //call_DB. If the count because equal to the size the function double_size is called and the memory allocated to call_DB is doubled.
  /************************************************************************************************************************************/
 call_class::call_class()
 {
 
 }
 
  /***********************************************************************************************************************************/
 //Name: is_empty
 //Precondition:
 //Postcondition:
 //Decription: returns true if call_DB is empty
  /**********************************************************************************************************************************/
 bool call_class::is_empty()
 {
 return count == 0;
 }
 
  /**********************************************************************************************************************************/
 //Name: is_full
 //Precondition:
 //Postcondition:
 //Decription: returns true if call_DB is full
  /*********************************************************************************************************************************/
 bool call_class::is_full()
 {
 return count == size;
 }
 
  /**********************************************************************************************************************************/
 //Name: search
 //Precondition:
 //Postcondition:
 //Decription: locates key in call_DB if it is there; otherwise -1 is returned
  /*********************************************************************************************************************************/
 int call_class::search(const string key)
 {
 return -1;
 }
 
  /*********************************************************************************************************************************/
 //Name: add
 //Precondition:
 //Postcondition:
 //Decription: adds a call_record to call_DB; if call_DB is full, double_size is called to increase the size of call_DB. The user
 // is prompted to enter the firstname, lastname, cell number, relays and call length.
  /********************************************************************************************************************************/
 void call_class::add( )
 {
 }
 
  /********************************************************************************************************************************/
 //Name: remove
 //Precondition:
 //Postcondition:
 //Decription: remove key from call_DB if it is there.
  /*******************************************************************************************************************************/
 void call_class::remove(const string key)
 {
 }
 
  /******************************************************************************************************************************/
 //Name: double_size
 //Precondition:
 //Postcondition:
 //Decription: doubles the size (capacity) of call_DB
  /******************************************************************************************************************************/
 void call_class::double_size( )
 {
 size *=2;
 call_record *temp = new call_record[size];
 
 for(int i=0; i<count; i++)
 {
 temp[i] = call_DB[i];
 }
 
 delete [ ] call_DB;
 call_DB = temp;
 }
 
 
  /******************************************************************************************************************************/
 //Name: process
 //Precondition:
 //Postcondition:
 //Decription: calculate the net cost, tax rate, call tax and total cost for every call record in call_DB.
  /*****************************************************************************************************************************/
 void call_class::process()
 {
 }
 
 
  /****************************************************************************************************************************/
 //Name: print
 //Precondition:
 //Postcondition:
 //Decription: prints every field of every call_record in call_DB formatted to the screen.
  /***************************************************************************************************************************/
 void call_class::print()
 {
 for(int i=0; i<count; i++)
 {
 cout<<call_DB[i].firstname<<\" \"<<call_DB[i].lastname
 <<\" \"<<call_DB[i].relays<<\" \"<<call_DB[i].cell_number
 <<\" \"<<call_DB[i].call_length<<endl;
 }
 }
 
  /****************************************************************************************************************************/
 //Name: destructor
 //Precondition:
 //Postcondition:
 //Decription: de-allocates all memory allocated to call_DB. This should be the last function to be called before the program
 // is exited.
  /***************************************************************************************************************************/
 call_class::~call_class()
 {
 }
 
 
 //driver to test the functionality of your class.
 int main()
 {
 call_class MyClass;
 
 MyClass.print();
 
 return 0;
 }
 
#include <iostream>
 #include <string>
 #include <fstream>
 using namespace std;
 class call_record
 {
 public:
    string firstname;
    string lastname;
    string cell_number;
    int relays;
    int call_length;
    double net_cost;
    double tax_rate;
    double call_tax;
    double total_cost;
 };
 class call_class
 {
 public:
    call_class();
    ~call_class(); //de-allocates all memory allocate to call_DB by operator new.
    bool is_empty(); //inline implementation
    bool is_full();//inline implementation
    int search(const string key);//returns location if item in listl; otherwise return -1
    void add( ); //adds a call record to call_DB
    void remove(const string key); //removes an item from the list
    void double_size();
    void process();
    void print(); //prints all the elements in the list to the screen
 private:
    int count;
    int size;
    call_record *call_DB;
 };
 {
    call_class MyClass;
    MyClass.print();
   
    return 0;
 }