4.11: C++ Examples

Temperature

The temperature program main function is listed twice, once using if-then-else and once using switch, followed by the supporting functions.

If Then Else

// 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

using namespace std;

char getChoice();
void processCelsius();
void processFahrenheit();
double getTemperature(string scale);
double calculateCelsius(double fahrenheit);
double calculateFahrenheit(double celsius);
void displayResult(double temperature, string fromScale, double result, string toScale);

int main() {
char choice;

choice = getChoice();
if (choice == 'C' || choice == 'c') {
processCelsius();
}
else if (choice == 'F' || choice == 'f') {
processFahrenheit();
}
else {
cout << "You must enter C to convert to Celsius or F to convert to Fahrenheit." << endl;
}
return 0;
}

Switch

int main() {
char choice;

choice = getChoice();
switch(choice) {
case 'C':
case 'c':
processCelsius();
break;
case 'F':
case 'f':
processFahrenheit();
break;
default:
cout << "You must enter C to convert to Celsius or F to convert to Fahrenheit." << endl;
}
return 0;
}

Supporting Functions

char getChoice() {
char choice;

cout << "Enter C to convert to Celsius or F to convert to Fahrenheit:" << endl; cin >> choice;

return choice;
}

void processCelsius() {
double temperature;
double result;

temperature = getTemperature("Fahrenheit");
result = calculateCelsius(temperature);
displayResult(temperature, "Fahrenheit", result, "Celsius");
}

void processFahrenheit() {
double temperature;
double result;

temperature = getTemperature("Celsius");
result = calculateFahrenheit(temperature);
displayResult(temperature, "Celsius", result, "Fahrenheit");
}

double getTemperature(string scale) {
double temperature;

cout << "Enter " << scale << " 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 fromScale, double result, string toScale) {
cout << temperature << "° " << fromScale << " is " << result << "° " << toScale << 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.