Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Hello, I just need a quick fix for my C++ program. The calculations are not precise as they need to be for the GPS coordinates

Hello, I just need a quick fix for my C++ program. The calculations are not precise as they need to be for the GPS coordinates converter. This error is highlighted in the output screenshot. Thanks.

Angle.h

#pragma once #include #include #include

using namespace std;

class Angle { private: int degrees, minutes; float seconds; char direct; public:

Angle() { degrees = 0; minutes = 0; seconds = 0; direct = 'N'; } //******************************************* //Lat = 0; Lon = 1; //******************************************* Angle(float gpsVal, bool longitude) { degrees = fabs(gpsVal); minutes = ((fabs(gpsVal) - degrees) * 60); seconds = (((fabs(gpsVal) - degrees) * 60) - minutes) * 60;

direct = (!longitude) ? ((fabs(gpsVal) == gpsVal) ? 'N' : 'S') : ((fabs(gpsVal) == gpsVal) ? 'E' : 'W');

}

Angle(int d, int m, float s, char di) { degrees = d; minutes = m; seconds = s; direct = di; }

void setDegrees(int); void setMinutes(int); void setSeconds(float s); void setDirection(char d);

int getDegrees(); int getMinutes(); float getSeconds(); char getDirection();

void print(); string toString();

};

testAngle.cpp

#include "Angle.h"

#include

using namespace std;

void Angle::setDegrees(int d)

{

degrees = d;

}

void Angle::setMinutes(int m)

{

minutes = m;

}

void Angle::setSeconds(float s)

{

seconds = s;

}

void Angle::setDirection(char d)

{

direct = d;

}

int Angle::getDegrees()

{

return degrees;

}

int Angle::getMinutes()

{

return minutes;

}

float Angle::getSeconds()

{

return seconds;

}

char Angle::getDirection()

{

return direct;

}

void Angle::print()

{

cout

}

string Angle::toString()

{

stringstream ss;

ss

return ss.str();

}

int main()

{ double lat, lon; Angle latA, lonA; cout > lat; cout > lon;

latA = Angle(lat, 0); lonA = Angle(lon, 1);

cout

// using GPS to DMS constructor cout > lat; Angle latC(lat, 0);

cout > lon; Angle lonC(lon, 1);

cout

return 0;

}

Output with error highlighted:

image text in transcribed

How it is supposed to be:

image text in transcribed

Enter GPS-style coordinates: Latitude: (+/- 0-90.00): 23.4 Longitude: (+/- 0-180.00): 45.6 DMS, (23 23' 59.998627" N, 45 35' 59.994507" E) Enter GPS-style coordinates: Latitude: (+/- 0-90.00): DD (decimal degrees)* Latitude 23.4 Longitude 45.6 Get Address DMS (degrees, minutes, seconds)* Latitude NOS 23 23 ' 60 Longitude E W 45

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions