What's Here?
- Members: 137,218
- Replies: 481,448
- Topics: 75,056
- Snippets: 2,567
- Tutorials: 675
- Total Online: 2,226
- Members: 105
- Guests: 2,121
|
A C++ class to convert temperatures between Kelvin, Celsius, Fahrenheit and Rankine.
|
Submitted By: sensui
|
|
|
Rating:
|
|
Views: 365 |
Language: C++
|
|
Last Modified: August 29, 2008 |
Snippet
//temperatureConverter.cpp
#include <iostream>
using namespace std;
class TemperatureConverter {
public:
enum TemperatureUnit { Kelvin, Celsius, Fahrenheit, Rankine};
private:
double kelvin;
double convertToKelvin( double temp, TemperatureUnit unit = Kelvin );
double convertFromKelvin( double temp, TemperatureUnit unit = Kelvin );
public:
explicit TemperatureConverter( double temp = 0, TemperatureUnit unit = Kelvin );
void setTemperature( double temp, TemperatureUnit unit = Kelvin );
double getTemperature( TemperatureUnit unit = Kelvin );
~TemperatureConverter();
};
double TemperatureConverter::convertToKelvin( double temp, TemperatureUnit unit ) {
double returnValue;
switch( unit ) {
case Kelvin:
returnValue = temp;
break;
case Celsius:
returnValue = temp + 273.15;
break;
case Fahrenheit:
returnValue = ( temp + 459.67 ) * 5 / 9;
break;
case Rankine:
returnValue = temp * 5 / 9;
break;
}
return returnValue;
}
double TemperatureConverter::convertFromKelvin( double temp, TemperatureUnit unit ) {
double returnValue;
switch( unit ) {
case Kelvin:
returnValue = temp;
break;
case Celsius:
returnValue = temp - 273.15;
break;
case Fahrenheit:
returnValue = temp * 9 / 5 - 459.67;
break;
case Rankine:
returnValue = temp * 9 / 5;
break;
}
return returnValue;
}
TemperatureConverter::TemperatureConverter( double temp, TemperatureUnit unit ) {
kelvin = this->convertToKelvin( temp, unit );
}
void TemperatureConverter::setTemperature( double temp, TemperatureUnit unit ) {
kelvin = this->convertToKelvin( temp, unit );
}
double TemperatureConverter::getTemperature( TemperatureUnit unit ) {
return this->convertFromKelvin( this->kelvin, unit );
}
TemperatureConverter::~TemperatureConverter() {
}
int main() {
TemperatureConverter outside, inside( 80.6, TemperatureConverter::Fahrenheit );
outside.setTemperature( 30, TemperatureConverter::Celsius );
cout << "outside: ( in Kelvin ) " << outside.getTemperature( TemperatureConverter::Kelvin ) << endl;
cout << "outside: ( in Celsius ) " << outside.getTemperature( TemperatureConverter::Celsius ) << endl;
cout << "outside: ( in Fahrenheit ) " << outside.getTemperature( TemperatureConverter::Fahrenheit ) << endl;
cout << "outside: ( in Rankine ) " << outside.getTemperature( TemperatureConverter::Rankine ) << endl;
cout << "inside: ( in Kelvin ) " << inside.getTemperature( TemperatureConverter::Kelvin ) << endl;
cout << "inside: ( in Celsius ) " << inside.getTemperature( TemperatureConverter::Celsius ) << endl;
cout << "inside: ( in Fahrenheit ) " << inside.getTemperature( TemperatureConverter::Fahrenheit ) << endl;
cout << "inside: ( in Rankine ) " << inside.getTemperature( TemperatureConverter::Rankine ) << endl;
return EXIT_SUCCESS;
}
Copy & Paste
|
|
|
Reference Sheets
Bye Bye Ads
Monthly Drawing
Top Contributors
Top 10 Kudos This Month
|