< Programming Fundamentals 
 
        
      Temperature
// This program asks the user to select Fahrenheit or Celsius conversion
// and input a given temperature. Then the program converts the given 
// temperature and displays the result.
//
// References:
//     https://www.mathsisfun.com/temperature-conversion.html
//     https://en.wikibooks.org/wiki/C%2B%2B_Programming
#include <iostream>
using namespace std;
double getTemperature(string label);
double calculateCelsius(double fahrenheit);
double calculateFahrenheit(double celsius);
void displayResult(double temperature, string fromLabel, double result, string toLabel);
int main() {
    // main could either be an if-else structure or a switch-case structure
    char choice;
    double temperature;
    double result;
    
    cout << "Enter F to convert to Fahrenheit or C to convert to Celsius:" << endl;
    cin >> choice;
    // if-else approach
    if (choice == 'C' || choice == 'c') {
        temperature = getTemperature("Fahrenheit");
        result = calculateCelsius(temperature);
        displayResult(temperature, "Fahrenheit", result, "Celsius");
    }
    else if (choice == 'F' || choice == 'f') {
        temperature = getTemperature("Celsius");
        result = calculateFahrenheit(temperature);
        displayResult(temperature, "Celsius", result, "Fahrenheit");
    }
    else {
        cout << "You must enter C to convert to Celsius or F to convert to Fahrenheit!" << endl;
    }
    // switch-case approach
    switch(choice) {
        case 'C':
        case 'c':
            temperature = getTemperature("Fahrenheit");
            result = calculateCelsius(temperature);
            displayResult(temperature, "Fahrenheit", result, "Celsius");
            break;
        case 'F':
        case 'f':
            temperature = getTemperature("Celsius");
            result = calculateFahrenheit(temperature);
            displayResult(temperature, "Celsius", result, "Fahrenheit");
            break;
        default:
            cout << "You must enter C to convert to Celsius or F to convert to Fahrenheit!" << endl;
    }
}
double getTemperature(string label) {
    double temperature;
    
    cout << "Enter " << label << " temperature:" << endl;
    cin >> temperature;
    
    return temperature;
}
double calculateCelsius(double fahrenheit) {
    double celsius;
    
    celsius = (fahrenheit - 32) * 5 / 9;
    
    return celsius;
}
double calculateFahrenheit(double celsius) {
    double fahrenheit;
    
    fahrenheit = celsius * 9 / 5 + 32;
    
    return fahrenheit;
}
void displayResult(double temperature, string fromLabel, double result, string toLabel) {
    cout << temperature << "° " << fromLabel << " is " << result << "° " << toLabel << endl;
}
Output
Enter C to convert to Celsius or F to convert to Fahrenheit: c Enter Fahrenheit temperature: 100 100° Fahrenheit is 37.7778° Celsius Enter C to convert to Celsius or F to convert to Fahrenheit: f Enter Celsius temperature: 100 100° Celsius is 212° Fahrenheit Enter C to convert to Celsius or F to convert to Fahrenheit: x You must enter C to convert to Celsius or F to convert to Fahrenheit.
References
    This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.