diff options
| -rw-r--r-- | projects/1/GoodDocsF2.cpp | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/projects/1/GoodDocsF2.cpp b/projects/1/GoodDocsF2.cpp new file mode 100644 index 0000000..ae3ddc3 --- /dev/null +++ b/projects/1/GoodDocsF2.cpp @@ -0,0 +1,131 @@ +//: 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 <iostream> // 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; + } +} ///:~ |
