🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

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

  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:
    g++ -o convertitore_temperatura convertitore_temperatura.cpp
    
  3. Esegui il programma:
    ./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.