#include // Character Types #include // Mathematical Constants #include // Variable Argument Lists #include // Standard Input/Output Functions #include // Utility Functions #include // String Operations #include // Signals (Contol-C + Unix System Calls) #include // Nonlocal Goto (For Control-C) #include // Time and Date information #include // Verify Program Assertion #include // Error Codes (Used in Unix system()) #include // Floating Point Constants #include // Implementation Constants #include // Standard Definitions #include // Exception handling (e.g., try, catch throw) bool GetStringFromFile( char inputString[], unsigned long sizeOfString, FILE *fptr ){return fgets(inputString, sizeOfString, fptr) !=NULL;} bool GetStringFromKeyboard( char inputString[], unsigned long sizeOfString ){return GetStringFromFile(inputString, sizeOfString, stdin);} bool WriteStringToFile( const char outputString[], FILE *fptr ){return fputs(outputString, stdout)!=EOF; } bool WriteStringToScreen( const char outputString[] ){return WriteStringToFile(outputString, stdout);} const char* ConvertStringToDouble( const char *s, double &returnValue, double defaultValue ); double ConvertFromRadiansToDegrees( double angleInRadians ){ return angleInRadians * 57.295779513082320876798154814105170332405472466564321549160243861; } double ConvertFromDegreesToRadians( double angleInDegrees ){ return (angleInDegrees*3.1415926535897932384626433832795)/180; } int main() { //Promt user to enter the angle in degrees printf("Please Enter the Angle in Degrees: "); // Define variables as close to where they are used as possible char inputString[15]; GetStringFromKeyboard(inputString,15); double angleInDegrees; ConvertStringToDouble(inputString, angleInDegrees, 45); printf( " \n\n Angle in degrees: %g\n", angleInDegrees); double angleInRadians = ConvertFromDegreesToRadians(angleInDegrees); printf( " \n Angle in radians: %g\n", angleInRadians); double angleSin = sin(angleInRadians); printf( " \n Sine of the angle: %g\n", angleSin); double angleCos = cos(angleInRadians); printf( " \n Cosine of the angle: %g\n", angleCos); double angleTan = tan(angleInRadians); printf( " \n Tangent of the angle: %g\n", angleTan); WriteStringToScreen( "\n\n Press enter to terminate... "); getchar(); return 0; } const char* ConvertStringToDouble( const char *s, double &returnValue, double defaultValue ) { returnValue = defaultValue; // Check the input if it is valid if( s!=NULL ) { char *ptrToCharacterAfterNumber = NULL; double variable = strtod( s, &ptrToCharacterAfterNumber ); char CharacterAfterNumber = ptrToCharacterAfterNumber ? *ptrToCharacterAfterNumber : 'z'; if( CharacterAfterNumber == '\0' || isspace(CharacterAfterNumber) ) { returnValue = variable; } } return 0; }