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

Implement the file siteNumber.h that works with the provided c++ program testSit

ID: 3905681 • Letter: I

Question

Implement the file siteNumber.h that works with the provided c++ program testSiteNumber.cpp

// testSiteNumber.cpp

//

// test the SiteNumber predicate

#include "Facility.h"

#include "Runway.h"

#include "SiteNumber.h"

#include <iostream>

#include <fstream>

#include <iomanip>

#include <string>

using namespace std;

int main(int argc, char **argv)

{

ifstream facilities_file("testFacility1.in");

string line;

getline(facilities_file,line);

Facility *f = new Facility(line);

cout << f->site_number() << " " << f->code() << " " << f->name() << endl;

cout << "test if 02187.*A : " << boolalpha

   << SiteNumber<Facility>("02187.*A ")(f) << endl;

cout << "test if 04508.*A : " << boolalpha

   << SiteNumber<Facility>("04508.*A ")(f) << endl;

ifstream runways_file("testRunway1.in");

getline(runways_file,line);

Runway *r = new Runway(line);

cout << r->site_number() << " " << r->name() << " " << r->length() << endl;

cout << "test if 02187.*A : " << boolalpha

   << SiteNumber<Runway>("02187.*A ")(r) << endl;

cout << "test if 04508.*A : " << boolalpha

   << SiteNumber<Runway>("04508.*A ")(r) << endl;

delete f;

}

//

// Facility.h

//

#ifndef FACILITY_H

#define FACILITY_H

#include<string>

class Facility

{

public:

Facility(std::string s);

std::string site_number(void) const;

std::string type(void) const;

std::string code(void) const;

std::string name(void) const;

double latitude(void) const;

double longitude(void) const;

double distance(double lat, double lon) const;

private:

const std::string site_number_;

const std::string type_;

const std::string code_;

const std::string name_;

const double latitude_, longitude_;

double convert_latitude(std::string s) const;

double convert_longitude(std::string s) const;

};

#endif

//

// Runway.h

//

#ifndef RUNWAY_H

#define RUNWAY_H

#include<string>

class Runway

{

public:

Runway(std::string s);

std::string site_number(void) const;

std::string name(void) const;

int length(void) const;

private:

int convert_length(std::string s) const;

const std::string site_number_;

const std::string name_;

const int length_;

};

#endif

Explanation / Answer

#ifndef SiteNumber_h #define SiteNumber_h class SiteNumber{ public: SiteNumber(Facility fac) : current_siteNum(fac.site_number()){} bool operator() (Runway* r) { return r->site_number()==current_siteNum; }; private: const std::string current_siteNum; }; #endif /* SiteNumber_h */