diff options
| author | Andrei F <[email protected]> | 2022-11-09 16:13:11 -0800 |
|---|---|---|
| committer | Andrei F <[email protected]> | 2022-11-09 16:13:11 -0800 |
| commit | 079146e2275a2efb19daa800c6794c2f26897a66 (patch) | |
| tree | eb10f47852d233b4ced2054da04ab4e785ae8aeb /BlankConsoleLab/CST116-Lab2-Florea.cpp | |
| parent | First commit (diff) | |
| download | cst116-lab2-florea-079146e2275a2efb19daa800c6794c2f26897a66.tar.xz cst116-lab2-florea-079146e2275a2efb19daa800c6794c2f26897a66.zip | |
Finished code
Diffstat (limited to 'BlankConsoleLab/CST116-Lab2-Florea.cpp')
| -rw-r--r-- | BlankConsoleLab/CST116-Lab2-Florea.cpp | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/BlankConsoleLab/CST116-Lab2-Florea.cpp b/BlankConsoleLab/CST116-Lab2-Florea.cpp new file mode 100644 index 0000000..9603d61 --- /dev/null +++ b/BlankConsoleLab/CST116-Lab2-Florea.cpp @@ -0,0 +1,114 @@ +/* +Andrei Florea - CST 116 - Lab 2 - Calculating wind chill +*/ + +#include <iostream> +#include <math.h> + +using namespace std; + +using std::cout; +using std::cin; +using std::endl; + +void user_entry_temp(float& temperature, char decision); +void user_entry_speed(float& wind_speed); +float convert_to_f(float c_temp); +float calculate_wind_chill(float temp, float wind); + +const int F_MAX = 121; +const int F_MIN = -80; + +const float C_MAX = 42.5; +const int C_MIN = -62; + +const int W_MAX = 231; +const int W_MIN = 0; + +int main() +{ + // Driver function for the program + float temperature = -100; + float wind_speed = -100; + float chill; + char temp_decision; + + cout << "Do you want to input temperature in Fahrenheit (F) or Celsius (C)?" << endl; + cin >> temp_decision; + temp_decision = tolower(temp_decision); + + + user_entry_temp(temperature, temp_decision); + user_entry_speed(wind_speed); + + + chill = calculate_wind_chill(temperature, wind_speed); + temp_decision = toupper(temp_decision); + + cout << "For " << temperature << " degrees " << temp_decision << " and " << wind_speed << " mph"; + cout << " the wind chill is: " << chill; + + +} + +void user_entry_temp(float& temperature, char decision) +{ + // Takes argument by reference and limits the input to a specific range for temperature, doesn't return, it changes by reference + + if (decision != 'f' && decision != 'c') // Ensures that the temp_decision is either f or c. + { + while (decision != 'f' && decision != 'c') + { + cout << "Wrong input for temperature, do you want temperature in Fahrenheit (F) or Celsius (C)?" << endl; + cin >> decision; + decision = tolower(decision); + } + } + + if (decision == 'c') + { + while (temperature < C_MIN || temperature > C_MAX) // Ensures input for temperature is within the range + { + cout << "Enter a value in Celsius for temperature (-62C - 42.5C inclusive): " << endl; + cin >> temperature; + } + + cout << "You entered " << temperature << " degrees celsius." << endl; + temperature = convert_to_f(temperature); // Calls to convert temperature to Fahrenheit + + } + else if (decision == 'f') + { + while (temperature < F_MIN || temperature > F_MAX) // Ensures input for temperature is within the range + { + cout << "Enter a value in Fahrenheit for temperature (-80F - 121F inclusive): " << endl; + cin >> temperature; + } + cout << "You entered " << temperature << " degrees Fahrenheit." << endl; + } +} + +void user_entry_speed(float& wind_speed) +{ + // Takes user input for wind_speed and makes sure its within the given range, doesn't return it changes by reference + + while (wind_speed < W_MIN || wind_speed > W_MAX) + { + cout << "Enter a speed for the wind in MPH (0 - 231, inclusive): " << endl; + cin >> wind_speed; + } + cout << "You entered " << wind_speed << " miles per hour." << endl; +} + +float convert_to_f(float c_temp) +{ + // Takes input in celsius, and will convert it to Fahrenheit, returns converted temp + c_temp = 1.8 * c_temp + 32; + return c_temp; +} + +float calculate_wind_chill(float temp, float wind) +{ + // Takes the temperature and wind speed and calculates chill, returns float + return 35.74 + .6215 * temp - 35.75 * pow(wind, .16) + .4275 * temp * pow(wind, .16); +} |