// Name: msglm // Date: // Program Name: // Description: #include #include #include using namespace std; //Function header (probably should be in a header file) double celsius_to_fahrenheit(double temp); double fahrenheit_to_celsius(double temp); // Named constants int main() { //Variable declaration double temp; char format; int choice; //Program title and description for the user cout << "Title: Fahrenheit-to-Celsius Converter" << endl << "Description: converts Fahrenheit to Celsius temperature and vice-versa" << endl; do { //If your tempurature is improper, allow fixing if (!cin) { cin.clear(); cin.ignore(100, '\n'); cout << "\033[2J\033[1;1H"; cout << "Your temp was improper, please retry\n"; } // User input cout << "Enter the Temperature" << endl; cin >> temp; cout << "Enter the format (C or F)" << endl; cin >> format; //Presumptious error handling since numbers are valid characters if (format != 'c' || format != 'C' || format != 'f' || format != 'F') { cout << "Format is improper. Assuming Celcius.\n"; format = 'C'; } } while (!cin); //Display input methods for first time cout << "1. Convert Celsius to Fahrenheit\n"; cout << "2. Convert Fahrenheit to Celsius\n"; cout << "3. Display Choices\n"; do { //Get user choice cout << "Choice: "; cin >> choice; if (choice == 1) { //Ensure this is actually C, if not, do nothing if (format == 'C' || format == 'c') { temp = celsius_to_fahrenheit(temp); format = 'F'; } } else if (choice == 2) { //Ensure this is actually F, if not, do nothing if (format == 'F' || format == 'f') { temp = fahrenheit_to_celsius(temp); format = 'C'; } } else { //Choices in case the user forgets cout << "1. Convert Celsius to Fahrenheit\n"; cout << "2. Convert Fahrenheit to Celsius\n"; cout << "3. Display Choices\n"; } //Output to screen cout << "\nIt is currently " << temp << " degrees " << format << endl; //Cold or Hot detection if (( (format == 'F' || format == 'f') && temp <=32) || ( (format == 'C' || format == 'c') && temp <=0) ) { cout << "Temperature is below freezing.\n"; } else if (( (format == 'F' || format == 'f') && temp >= 104) || ( (format == 'C' || format == 'c') && temp >=40) ) { cout << "Temperature is incredibly hot.\n"; } } while (cin); } //Functions double celsius_to_fahrenheit(double temp) { return temp*(1.8)+32; } double fahrenheit_to_celsius(double temp) { return (temp-32)/(1.8); } /*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * You should have received a copy of the GNU General Public License along with this program. If not, see . */