summaryrefslogtreecommitdiff
path: root/BlankConsoleLab/CST116-Lab2-Florea.cpp
diff options
context:
space:
mode:
authorAndrei F <[email protected]>2022-11-09 16:13:11 -0800
committerAndrei F <[email protected]>2022-11-09 16:13:11 -0800
commit079146e2275a2efb19daa800c6794c2f26897a66 (patch)
treeeb10f47852d233b4ced2054da04ab4e785ae8aeb /BlankConsoleLab/CST116-Lab2-Florea.cpp
parentFirst commit (diff)
downloadcst116-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.cpp114
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);
+}