📢 Nuovo Corso Bootstrap Completo disponibile!

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

  1. Librerie C++: Utilizzare le librerie standard di C++.
  2. 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Ă 

  1. Raccogliere la Temperatura dall’Utente: Chiedere all’utente di inserire una temperatura.
  2. Selezionare le Unità di Conversione: Chiedere all’utente di selezionare l’unità di misura di origine e di destinazione (Celsius, Fahrenheit, Kelvin).
  3. 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

  1. Salva il codice in un file: Ad esempio convertitore_temperatura.cpp.
  2. Compila il programma:
    Terminal window
    g++ -o convertitore_temperatura convertitore_temperatura.cpp
  3. Esegui il programma:
    Terminal window
    ./convertitore_temperatura
  4. 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

  1. Interfaccia Grafica: Utilizzare una libreria come Qt per creare un’interfaccia grafica per il convertitore di temperature.
  2. Supporto per Altre UnitĂ  di Misura: Aggiungere supporto per altre unitĂ  di misura della temperatura.
  3. Validazione degli Input: Migliorare la gestione degli input per assicurarsi che l’utente inserisca valori validi.
  4. Storico delle Conversioni: Mantenere uno storico delle conversioni eseguite durante la sessione.