diff options
feat(Week02): Add solutions
3 files changed, 67 insertions, 0 deletions
| -rw-r--r-- | Week02/Exercise02/main.cpp | 30 | ||||
| -rw-r--r-- | Week02/Exercise02/temperature.cpp | 21 | ||||
| -rw-r--r-- | Week02/Exercise02/temperature.h | 16 |
diff --git a/Week02/Exercise02/main.cpp b/Week02/Exercise02/main.cpp new file mode 100644 index 0000000..4d43037 --- /dev/null +++ b/Week02/Exercise02/main.cpp @@ -0,0 +1,30 @@ +#include <iostream> +#include "temperature.h" + +Temperature readTemperature() { + double degrees; + std::cin >> degrees; + char scale; + std::cin >> scale; + + Temperature t; + switch (scale) { + case 'C': t.fromCelsius(degrees); break; + case 'F': t.fromFahrenheit(degrees); break; + case 'K': t.fromKelvin(degrees); break; + } + + return t; +} + +void printTemperature(const Temperature& t) { + std::cout << t.C << " C " << t.F << " F " << t.K << " K" << std::endl; +} + +int main() { + Temperature first = readTemperature(), second = readTemperature(); + + printTemperature(first.Sum(second)); + + return 0; +} diff --git a/Week02/Exercise02/temperature.cpp b/Week02/Exercise02/temperature.cpp new file mode 100644 index 0000000..3e497b9 --- /dev/null +++ b/Week02/Exercise02/temperature.cpp @@ -0,0 +1,21 @@ +#include "temperature.h" + +void Temperature::fromCelsius(double C) { + this->C = C; + F = (C * 1.8) + 32; + K = C + 273.15; +} + +void Temperature::fromFahrenheit(double F) { + fromCelsius((F - 32) / 1.8); +} + +void Temperature::fromKelvin(double K) { + fromCelsius(K - 273.15); +} + +Temperature Temperature::Sum(const Temperature& other) { + Temperature t; + t.fromCelsius(this->C + other.C); + return t; +} diff --git a/Week02/Exercise02/temperature.h b/Week02/Exercise02/temperature.h new file mode 100644 index 0000000..799313f --- /dev/null +++ b/Week02/Exercise02/temperature.h @@ -0,0 +1,16 @@ +#ifndef _TEMPERATURE +#define _TEMPERATURE + +struct Temperature { + double C; + double F; + double K; + + void fromCelsius(double C); + void fromFahrenheit(double F); + void fromKelvin(double K); + + Temperature Sum(const Temperature& other); +}; + +#endif |
