Convertitore di Temperature
Descrizione del Progetto
In questo progetto, realizzerai un semplice convertitore di temperature a riga di comando utilizzando C++. Il programma supporterĂ la conversione tra Celsius, Fahrenheit e Kelvin.
Requisiti
- Librerie C++: Utilizzare le librerie standard di C++.
- Interfaccia Utente: Creare una semplice interfaccia utente a riga di comando che permetta all’utente di inserire la temperatura e selezionare le unità di conversione.
FunzionalitĂ
- Raccogliere la Temperatura dall’Utente: Chiedere all’utente di inserire una temperatura.
- Selezionare le Unità di Conversione: Chiedere all’utente di selezionare l’unità di misura di origine e di destinazione (Celsius, Fahrenheit, Kelvin).
- Eseguire la Conversione: Eseguire la conversione e visualizzare il risultato.
Formule di Conversione
- Celsius a Fahrenheit: ( F = \frac{9}{5} \cdot C + 32 )
- Celsius a Kelvin: ( K = C + 273.15 )
- Fahrenheit a Celsius: ( C = \frac{5}{9} \cdot (F - 32) )
- Fahrenheit a Kelvin: ( K = \frac{5}{9} \cdot (F - 32) + 273.15 )
- Kelvin a Celsius: ( C = K - 273.15 )
- Kelvin a Fahrenheit: ( F = \frac{9}{5} \cdot (K - 273.15) + 32 )
Esempio di Codice
#include <iostream>#include <stdexcept>
double celsius_to_fahrenheit(double celsius) { return (celsius * 9.0 / 5.0) + 32.0;}
double celsius_to_kelvin(double celsius) { return celsius + 273.15;}
double fahrenheit_to_celsius(double fahrenheit) { return (fahrenheit - 32.0) * 5.0 / 9.0;}
double fahrenheit_to_kelvin(double fahrenheit) { return (fahrenheit - 32.0) * 5.0 / 9.0 + 273.15;}
double kelvin_to_celsius(double kelvin) { return kelvin - 273.15;}
double kelvin_to_fahrenheit(double kelvin) { return (kelvin - 273.15) * 9.0 / 5.0 + 32.0;}
void convert_temperature(double temp, char from, char to) { double result;
switch (from) { case 'C': if (to == 'F') { result = celsius_to_fahrenheit(temp); } else if (to == 'K') { result = celsius_to_kelvin(temp); } else { throw std::invalid_argument("UnitĂ di destinazione non valida"); } break; case 'F': if (to == 'C') { result = fahrenheit_to_celsius(temp); } else if (to == 'K') { result = fahrenheit_to_kelvin(temp); } else { throw std::invalid_argument("UnitĂ di destinazione non valida"); } break; case 'K': if (to == 'C') { result = kelvin_to_celsius(temp); } else if (to == 'F') { result = kelvin_to_fahrenheit(temp); } else { throw std::invalid_argument("UnitĂ di destinazione non valida"); } break; default: throw std::invalid_argument("UnitĂ di origine non valida"); }
std::cout << "Temperatura convertita: " << result << " " << to << std::endl;}
int main() { double temp; char from, to;
std::cout << "Convertitore di Temperature" << std::endl; std::cout << "Inserisci la temperatura: "; std::cin >> temp; std::cout << "Inserisci l'unitĂ di misura di origine (C, F, K): "; std::cin >> from; std::cout << "Inserisci l'unitĂ di misura di destinazione (C, F, K): "; std::cin >> to;
try { convert_temperature(temp, from, to); } catch (const std::exception& e) { std::cerr << e.what() << std::endl; }
return 0;}
Istruzioni per l’Esecuzione
- Salva il codice in un file: Ad esempio
convertitore_temperatura.cpp
. - Compila il programma:
Terminal window g++ -o convertitore_temperatura convertitore_temperatura.cpp - Esegui il programma:
Terminal window ./convertitore_temperatura - Interazione con l’utente:
- Inserisci la temperatura da convertire.
- Inserisci l’unità di misura di origine (C, F, K).
- Inserisci l’unità di misura di destinazione (C, F, K).
- Il programma eseguirĂ la conversione e visualizzerĂ il risultato.
Estensioni Possibili
- Interfaccia Grafica: Utilizzare una libreria come Qt per creare un’interfaccia grafica per il convertitore di temperature.
- Supporto per Altre UnitĂ di Misura: Aggiungere supporto per altre unitĂ di misura della temperatura.
- Validazione degli Input: Migliorare la gestione degli input per assicurarsi che l’utente inserisca valori validi.
- Storico delle Conversioni: Mantenere uno storico delle conversioni eseguite durante la sessione.