+1 (315) 557-6473 

Navigation map assignment sample

Students often struggle working on navigation map assignments and usually require professional help to get these tasks done. We provide help with these tasks to make completing them easier and less stressful.

Navigate Map

Build in memory, as a structure of interconnected nodes, the graph described by these files:

http://rabbit.eng.miami.edu/class/een318/intersections.txt

http://rabbit.eng.miami.edu/class/een318/connections.txt

http://rabbit.eng.miami.edu/class/een318/geog.txt

Your program should then ask the user to specify a starting location, and allow him/her/itto interactively navigate through the map.

example

Location to start: 19999

Location 19999, 0.66 miles from Shelby, NC

roads leading away:

1: NC-18, 1.005 miles to location 19977

2: US-74, 2.521 miles to location 19991

3: US-74, 3.749 miles to location 20006

4: NC-18, 7.565 miles to location 20159

take which road? 3

Location 20006, 1.85 miles from Light Oak, NC

roads leading away:

1: bus-US-74, 3.812 miles to location 19977

2: US-74, 3.749 miles to location 19999

3: US-74, 4.805 miles to location 20022

take which road? 1

Location 19977, … etc. 

Solution 

Connection.h 

#ifndef __CONNECTION_H__

#define __CONNECTION_H__

#include

#include

using namespace std;

class Connection {

private:

string name;

intbeg_index;

intend_index;

double distance;

public:

Connection(string s, int beg, int end, double dist) {name = s; beg_index = beg; end_index = end; distance = dist;};

stringto_string()

{

stringstreamss;

ss<< name << “, ” << distance << ” miles to location ” <

returnss.str();

};

intget_beg_index() {return beg_index;};

intget_end_index() {return end_index;};

};

#endif 

graph.cpp 

#include

#include

#include

#include

#include “Connection.h”

#include “Location.h”

using namespace std;

int main()

{

int start;

vector locations;

doublelon, lat, dist;

string state, place, dummy;

intbeg_index, end_index, loc_index = 0;

ifstreamloc_file(“intersections.txt”);

getline(loc_file, dummy); // skip the first line

while (loc_file>>lon>>lat>>dist>> state)

{

getline(loc_file, place);

Location loc(loc_index, place, state, dist);

locations.push_back(loc);

loc_index++;

}

loc_file.close();

cout<

ifstreamconn_file(“connections.txt”);

while (conn_file>> place >> dummy >>beg_index>>end_index>>dist)

{

// add connections both for beg_index and end_index locations

Connection conn1(place, beg_index, end_index, dist);

locations[beg_index].add_connection(conn1);

Connection conn2(place, end_index, beg_index, dist);

locations[end_index].add_connection(conn2);

}

conn_file.close();

cout<< “Location to start: “;

cin>>loc_index;

cout<

if (loc_index>= 0 &&loc_index

{

while (true) {

// vector of current location’s connections

vectorcurrent_conn = locations[loc_index].get_connections();

cout<< locations[loc_index].to_string() <

cout<< “roads leading away:” <

// list roads

for (int i = 0; i

cout<< ” ” << i + 1 << “: ” <

}

// get the road from user (make sure it is valid)

intconn_index = 0;

while (conn_index< 1 || conn_index>current_conn.size()) {

cout<< “take which road? “;

cin>>conn_index;

if (conn_index< 1 || conn_index>current_conn.size())

cout<< “Invalid index” <

}

// move to the new location

loc_index = current_conn[conn_index – 1].get_end_index();

cout<

}

}

else

{

cout<< “Invalid location index” <

}

return 0;


Location.h 

#ifndef __LOCATION_H__

#define __LOCATION_H__

#include

#include

#include

using namespace std;

class Location {

private:

int index;

string place;

string state;

double distance;

vector connections;

public:

Location(intind, string pl, string st, double dist) {index = ind; place = pl; state = st; distance = dist;};

stringto_string()

{

stringstreamss;

ss<< “Location ” << index << ” ” << distance << ” miles from ” << place << “, ” << state;

returnss.str();

};

voidadd_connection(Connection conn) {connections.push_back(conn);};

vectorget_connections() {return connections;};

};

#endif