A program will repeatedly ask the user to input a value to r


A program will repeatedly ask the user to input a value to rotate a mechanical arm by a certain angle (in degrees). This angle must be between -360 and 360 to avoid excessive rotation. The program terminates when an improper angle is provided. Write this program, and use the following function declaration.

/**

* Prompts the user to input a number of degrees

* and returns the value

*

* If the user provides a value < 359 or > 359 a

* std::logic_error exception is thrown and the

* return value undefined.

*/

int getDegrees();

The output of the program should match the following:

Enter an angle: 20

Rotating: 20

Enter an angle: -15

Rotating: -15

Enter an angle: 354

Rotating: 354

Enter an angle: -360

Caught an exception: Out of range

Of type: class std::logic_error

Press any key to continue . . .

Solution

Please find the required program along with its output. Please see the comments against each line to understand the step.


#include <iostream>
#include <string>
#include <stdexcept>

using namespace std;

/**
* Prompts the user to input a number of degrees
* and returns the value
*
* If the user provides a value < 359 or > 359 a
* std::logic_error exception is thrown and the
*Of type: class std::logic_error
*/
int getDegrees(){
  
int angle;
cout << \"Enter an angle: \" << endl;
cin >> angle; //read an angle
  
if(angle < -359 || angle > 359) { //if the angle is <-359 or > 359 throw logic error
cout << \"Caught an exception: Out of range\ Of type: class std::logic_error\" << endl;
throw logic_error(\"Caught an exception: Out of range\ Of type: class std::logic_error\");
return NULL;
}else {
return angle; //else return the angle
}
  
}

int main()
{
  
while(true){ //read angle until user enters invalid anlge
int a = getDegrees();
if(a==NULL)
break;
else
cout << \"Rotating: \" << a << endl;
}
}

-----------------------------------------------

OUTPUT:

Enter an angle:
20
Rotating: 20
Enter an angle:
-15
Rotating: -15
Enter an angle:
354
Rotating: 354
Enter an angle:
-360
Caught an exception: Out of range
Of type: class std::logic_error

 A program will repeatedly ask the user to input a value to rotate a mechanical arm by a certain angle (in degrees). This angle must be between -360 and 360 to
 A program will repeatedly ask the user to input a value to rotate a mechanical arm by a certain angle (in degrees). This angle must be between -360 and 360 to

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site