Convertitore di Temperature
Codegrind Team•Jul 12 2024
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:
g++ -o convertitore_temperatura convertitore_temperatura.cpp
- Esegui il programma:
./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.