Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/forums/cpp/)
-   -   Any know how to solve this problem( using input and map container) (http://www.go4expert.com/forums/solve-using-input-map-container-t11357/)

ITgirl 15Jun2008 14:08

Any know how to solve this problem( using input and map container)
 
Hi everyone,

My assignment partner and i have been working on this for a while and we have hit a wall and we have been stuck for several hours. A couple of questions, please. 1) In the Airports class I am trying to get input data from a text file and put it inside the variables of an airport object that I'm going to create. 2) Then I'm going to try and store my Airport objects inside a map container with a key being the Airport code. This is what it looks like so far.

This is my header file:

Code:

  #ifndef AIRPORTS_
#define AIRPORTS_
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <iterator>
#include <map>
#include"Flights.h"
using namespace std;

class Airports{


 std::istream& operator (std::istream&, Airport::Airport&);
 
  };
 
 #endif /*AIRPORTS_*/

this is the CPP file:

Code:

 
#include <iostream>
#include <string>
#include "Airports.h"
     
   
     
    istream& Airports:: operator (istream& ins, Airport::Airports:: Airport& airport ){
 
  // Notice how this operator does not need to be 'friend' to Airport
  string s;
  int h, m;

  // Get Flight Code
  ins >> s;
  airport.setCode( s );

  // Get scheduled arrival time
  ins >> h;
  if (ins.get() != ':')
    {
    ins.setstate( ios::badbit );
    return ins;
    }
  ins >> m;
  airport.setMinimumConnect( (double)(h % 24) + (m / 60.0) );

  // Get the description for humans
  ins >> ws;
  getline( ins, s );
  airport.setDescription( s );

  return ins;
  }
 
     
  // This is where the list of airline flight data is stored using airport code (to access airport information)
map<Airport::Airport> airport_flights;
map<Airport,string> mymap;
  map<Airport,string>::iterator it;

// How many data do we need to read?
int num_flights;
cin >> num_flights;
cin.ignore( std::numeric_limits <std::streamsize> ::max(), '\n' );

// Read exactly that many
copy_n(
  std::istream_iterator <Airport::Airport> ( cin ),
  num_flights,
  std::back_insert_iterator <Airport::Airport> ( airport_flights )
  );

the above code doesn't compile.
these are the classes that the Airports class is using. the code below does compile and works:

Code:

    #include "Flights.h"


                  //_____________Start Implementation of Flight class________________\\


                  /*Start House-keeping functions  for Flight Class
                  * Default constructor
                  *
                  */
                  Flight:: Flight (){
                  //debug statement
                  cout<< "we are in the construtor with Default arguments\n";

                  setOrigin("");
                  setDestination("");
                  setDepartureTime(0);
                  setDuration(0) ;


                }

                  /* Constructor for flight object
                  *
                  *
                  */
                  Flight::Flight(const string &orig ,const string &destin ,const string &dep, const string &dur ){
                        //debug statement
                  cout<< "we are in the construtor with arguments\n";
               
                  setOrigin(orig);
                  setDestination(destin);
                  setDepartureTime(dep);
                  setDuration(dur);



                }

                /* copy constructor for flight object
                  *
                  *
                  *

                  FlightsTL:: Flight:: Flight(const Flight& rhs){



                  } */

                  /**destructor for flight object
                  *
                  *
                  */
                  Flight::  ~Flight(){

                }
                  //end House-keeping functions \\


          //_____________Start other functions____________________________\\

                  /* Equals operation
                  *
                  */
                  Flight&  Flight::operator=(const Flight& rhs){

                        return *this;
                }

                  /* get origin
                  *
                  */
                string  Flight::getOrigin() const{

                          return org;
                  }

                  /* get destination
                  *
                  */
                string  Flight::getDestination()const{

                          return dest;

                  }

                  /* get departure time
                  *
                  */
                  string  Flight:: getDepartureTime()const{

                                return depTime;

                  }

                  /* get duration
                  *
                  */
                  string  Flight:: getDuration ()const{

                          return dura;

                  }

                  /* set origin
                  *
                  */
                  void  Flight:: setOrigin(string t ){

                                  org = t;
                  }

                  /* set destination
                  *
                  */
                  void  Flight:: setDestination(string s){

                                  dest =s;

                  }

                  /* set departure time
                  *
                  */
                  void  Flight:: setDepartureTime(string c){

                          depTime = c;
                        }

                  /* get duration
                  *
                  */
                  void  Flight:: setDuration(string d){

                                dura = d;
                  }

                  /* set all
                  *
                  */

                  void  Flight:: setAll(string a,string b,string c,string d){

                                  setOrigin(a);
                                  setDestination(b);
                                  setDepartureTime(c);
                                  setDuration(d) ;
                  }

                  /** ToString to display flight information
                  *
                  */
                  string  Flight:: toString()const{
                                  string s;
                                  //double depT = getDepartureTime();
                                // double durA =  getDuration();
                                  // convert double to string
                                // char deptStr[50];
                                // sprintf(deptStr,"%g",depT);
                                  // convert to string
                                // char durStr[50];
                                //  sprintf(durStr,"%g",durA);
                                  // print all Flight information
                                  s=getOrigin() +"\t"+ getDestination() + "\t"+  getDepartureTime() + "\t"+ getDuration() +"\n" ;
                                        return s;
                          }


        //__________________end of Flight implementation_____________\\






        //__________________Start of of FlightsTL implementation_____________\\
        //Start House-keeping functions
                  /*Default constructor
                  *
                  */

          Airport:: Airport (){
                setCode("");
                setMinimumConnect(0);
                setDescription("");


                }

                  /* Constructor for Airport object
                  *
                  *
                  */
                Airport:: Airport(const string& code, const double& minCon, const string& description){
                        setCode(code);
                          setMinimumConnect(minCon);
                          setDescription(description);

                  }

                  /* copy constructor for Airport object
                  *
                  *
                  */

                  // Airport(const Airport& rhs);

                  /**destructor for Airport object
                  *
                  *
                  */
                  Airport:: ~Airport(){



                  }

                  //end House-keeping functions\\

 //_________________Start of other Airport functions___________________________\\

                  /* Equals operation
                  *
                  */
                Airport&  Airport::  operator=(const Airport& rhs){

                                          return *this;

                  }

                  /* get minimum connection
                  *
                  */
                  double Airport:: getMinimumConnectionTime()const{

                                                        return minConnect;

                  }

                  /* get Code
                  *
                  */
                  string Airport:: getCode()const{
                                  return code;


                  }

                  /* get description
                  *
                  */
                  string Airport:: getDescription()const{


                                  return description;


                  }
                 
                  /*get number of Flights
                  *
                  */
                  int Airport:: getFlightsNum(){
             
              return FlightsNum;
             
              }


                  /* set minimum connection time
                  *
                  */
                  void Airport:: setMinimumConnect (double a){

                                        minConnect =a;

                  }

                  /* set code
                  *
                  */
                  void Airport:: setCode (string b){
                                                code = b;


                  }

                  /* set description
                  *
                  */
                  void Airport:: setDescription (string c){

                                        description = c;

                  }



                  /* set all
                  *
                  */

                  void Airport:: setAll (string a,double b,string c){

                                  setMinimumConnect(b) ;
                                  setCode(a);
                                  setDescription(c);


                  }


                void Airport::addFlight(const Flight& Flight){

                        Flights.push_back(Flight);
                        FlightsNum++;

                }


                /*add Flight
                  *
                  */
                void Airport:: addNewFlight(const string& origin , const string& destination,const string& depTime, const string& duration){

                          Flights.push_back(Flight(origin,destination,depTime,duration));
                          FlightsNum++;

                  }

                        /** ToString to display all flights and thier information
                  *
                  */
                string  Airport:: toString(){
                                          vector<Flight>::iterator find;
                                          string str;

                                          if (getFlightsNum() == 0) {
                                                        return "Nothing to show no Flights" ;
                                        }

                                for(find = Flights.begin(); find != Flights.end(); find++){
                                          str+=(*find).toString();

                                  }
                       

                                  string s;
                                  double mCon = getMinimumConnectionTime();

                                  // convert double to string
                                  char mConStr[50];
                                  sprintf(mConStr,"%g",mCon);

                                  // print all Airport information
                                  s=getCode() +"\t"+ mConStr + "\t"+ getDescription() + "\n" ;
                                return str + s;

                  }



          //__________________end of FlightsTL Implementation______________\\




          //I'm thinking of adding remove(), and clear() and add via text

Thanks for your help, everyone

Sandy


All times are GMT +5.5. The time now is 17:16.