summaryrefslogtreecommitdiff
path: root/BlankConsoleLab/cst116-lab2-wilson.cpp
blob: 2a8a4a7d3a72ee58897836ac712896acc5fe4d7b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// BlankConsoleLab.cpp : This file contains the 'main' function. Program execution begins and ends there.
// Jacob Wilson, cst116, Lab2, 11-5-2022

#include <iostream>     // cout, cin, endl
#include <iomanip>      
#include <stdio.h>      // printf
#include <math.h>       // pow
#include <cmath>        // pow


using namespace std;    //Allows for std to not be needed for every std:: item


using std::cout;        //Prints to window
using std::cin;         //Reads from user
using std::endl;        //Ends current line


const float FMAX = 121; 
const float FMIN = -80;
const float CMAX = 49.5;
const float CMIN = -62; //Set values for minimum and maximum temperatures, both Fahrenheit and Celsius.


float CtoF(float Fahrenheit, float Celsius) {       //float function so that it returns a float for Fahrenheit (more precise)

    Fahrenheit = (Celsius * 9.0 / 5.0) + 32.0;      //Converts Celsius to Fahrenheit

    return Fahrenheit;  //Returns the newly defined fahrenheit to main
}


float WindSpeedFinder(float* windspeed) {           //Float function to return float value

Loop2:                  //Placeholder to loop back to

    cout << "Please enter the wind speed between 0 and 231 mph: ";      //Prompts user to enter a wind speed
    cin >> *windspeed;  //Reads in windspeed from user

    if (*windspeed <= 231 && *windspeed >= 0) {
        cout << "\n\tThe windspeed is " << *windspeed << " mph." << endl;
        return *windspeed;                          //If the windspeed is between the min and max provided, windspeed will be returned
    }
    else {
        goto Loop2;     //Goes back to placeholder to Loop in case of invalid response (past limits)
    }

}


float WindChill(float TEMP, float SPEED, float Chill) {                 //Converts wind speed and Fahrenheit to wind chill

    float x = 0.16;     //placeholder value for equation (faster)

    Chill = 35.74 + (0.6215 * TEMP) - (35.75 * (pow(SPEED, x))) + (0.4275 * TEMP * (pow(SPEED, x)));    //equation to convert to wind chill
   
    return Chill;       //returns Chill to main

}


int main()              //Main function
{
    float Celsius = 0.0;                            //Defines Celsius for the conversion function
    float Fahrenheit = 0.0;                         //Defines Fahrenheit for the conversion function
    float windspeed = 0.0;                          //Defines windspeed
    float Chill = 0.0;                              //Defines Chill


    Loop:               //Placeholder to loop back to

    cout << "Please enter a temperature between -62 and 49.5 degrees Celsius: "; //Prompts user to enter a temperature in Celsius
    cin >> Celsius;     //Reads in Celsius from the user input

    if (Celsius <= CMAX && Celsius >= CMIN) {
        cout << "\t" << Celsius << " Degrees Celsius is approximately " << CtoF(Fahrenheit, Celsius) << " Degrees Fahrenheit\n\n"; 
                        //if the value of Celsius is between the limits, the celsius to fahrenheit function will be run and returned, then printed
    }
    else {
        goto Loop;      //Goes back to placeholder to Loop in case of invalid response (past limits)
    }


    float TEMP = CtoF(Fahrenheit, Celsius);         //Re-defines the value returned from celsius to fahrenheit function
    float SPEED = WindSpeedFinder(&windspeed);      //Re-defines the value returned from the wind speed finder function

    float CHILL = WindChill(TEMP, SPEED, Chill);    //Re-defines the value returned from the wind chill function

    cout << "\tThe wind chill is: " << CHILL << endl;                           //Prints the windchill

}