//: GoodDocs.cpp /* Title: GoodDocsF.cpp Description: Temperature Conversion Program Date: December 8, 2013 Author: Richard S. Huntrods Version: 1.0 Copyright: 2013 Richard S. Huntrods */ /* DOCUMENTATION Program Purpose: Demonstrate proper format for documentation, test plans and comments. Also demonstrate user prompts, keyboard input, simple calculations and output, specifically converting temperatures from F to C. Compile (assuming mingw compiler and opened command prompt): g++ -o GoodDocsF GoodDocsF.cpp Execution (in a Command Prompt window): GoodDocsF.exe (or just GoodDocsF) Classes: none Variables: input_units (char) = C or F to designate temperature units for the supplied input temperature. output_units (char) = C or F to designate temperature units desired for the output conversion, input_temp (float) = real (decimal) number supplied by user which is the input temperature. output_temp (float) = calculated output temperature in output_units as a real (decimal) number. Formulae: The formula for converting temperatures from Fahrenheit to Celcius is: T(C) = (T(F) - 32.0) * 5.0 / 9.0; The formula for converting temperatures from Celcius to Fahrenheit is: T(F) = (T(C) * 9.0 / 5.0) + 32.0 It is important to use decimal numbers especially in the division to avoid integer devision. It is also important use use the parenthesis to enforce calculation order. */ /* TEST PLAN Normal case 1: >What is the input temperature? 32 >What are the units of the input temperature (C for Celcius or F for Fahrenheit)? F >Your input temperature is 32F which is 0C. Normal case 2: >What is the input temperature? 100 >What are the units of the input temperature (C for Celcius or F for Fahrenheit)? C >Your input temperature is 100C which is 212F. Bad Data case 1 (temperature out of range): >What is the input temperature? -4000 >What are the units of the input temperature (C for Celcius or F for Fahrenheit)? C >Your input temperature is -4000C which is out of range (less than -273.15C or -416F).. Bad Data case 2 (incorrect units): >What is the input temperature? -40 >What are the units of the input temperature (C for Celcius or F for Fahrenheit)? Q >The units you have specified are not one of C (Celcius) or F (Fahrenheit). Discussion: The program accepts any integer or decimal input temperature and a unit character which must be either C, c, F or f. The program then prints the input temperature as well as the temperature converted into the non-input units. Temperature range is from -273C (-415F) to any positive number. */ #include // Stream declarations using namespace std; int main(void) { char input_units, output_units; float input_temp, output_temp; int error = 0; // request and obtain name cout << "What is the input temperature? "; cin >> input_temp; // request and obtain age cout << "What are the units of the input temperature (C for Celcius or F for Fahrenheit)? "; cin >> input_units; // convert input units to upper case input_units = toupper(input_units); // check input_units for acceptable response; perform appropriate conversion if acceptable and print error message if not if(input_units == 'C') { // display input cout << "Your input temperature is " << input_temp << input_units; // range check input_temp if(input_temp < -273) { // disply out of range error message cout << " which is out of range (less than -273C or -416F)." << endl; } else { // convert from Celcius to Fahrenheit output_units = 'F'; output_temp = (input_temp * 9.0) / (5.0 + 32.0); // display converted output cout << " which is " << output_temp << output_units << "." << endl; } } else if(input_units == 'F') { // display input cout << "Your input temperature is " << input_temp << input_units; // range check input_temp if(input_temp < -416) { // out of range cout << " which is out of range (less than -273C or -416F)." << endl; } else { // convert from Fahrenheit to Celcius output_units = 'C'; output_temp = (input_temp - 32.0 * 5.0) / 9.0; // display converted output cout << " which is " << output_temp << output_units << "." << endl; } } else { // display input_unit error message cout << "The units you have specified are not one of C (Celcius) or F (Fahrenheit)" << endl; } } ///:~