#ifndef TEMP_LOG_HELPER_HPP #define TEMP_LOG_HELPER_HPP #include "GuessingHelper.hpp" struct Temperature { float High; float Low; }; void DayPrinter(int Choice); void AvgDiffOutStatement(float Temp, const char* Prompt1, const char* Prompt2, const char* Prompt3); void HighLowOutStatement(int Choice, float Temp, const char* Prompt1, const char* Prompt2, const char* Prompt3, const char* Prompt4); float FarenheitToCelsius(float Temp); void GreatLow(Temperature* WeekLog); void GreatHigh(Temperature* WeekLog); void TemperatureAverage(Temperature* WeekLog); void TemperatureDifference(Temperature* WeekLog); void WeeklyTemp(const char* Prompt1, const char* Prompt2); void DayPrinter(int Choice) { switch (Choice) { case 0: std::cout << "Monday"; break; case 1: std::cout << "Tuesday"; break; case 2: std::cout << "Wednesday"; break; case 3: std::cout << "Thursday"; break; case 4: std::cout << "Friday"; break; case 5: std::cout << "Saturday"; break; case 6: std::cout << "Sunday"; break; default: std::cout << "Invalid Input!!" << std::endl; } } void AvgDiffOutStatement(float Temp, const char* Prompt1, const char* Prompt2, const char* Prompt3) { Prompts(Prompt1); std::cout << Temp; Prompts(Prompt2); std::cout << FarenheitToCelsius(Temp); Prompts(Prompt3); std::cout << " \n" << std::endl; } void HighLowOutStatement(int Choice, float Temp, const char* Prompt1, const char* Prompt2, const char* Prompt3, const char* Prompt4) { Prompts(Prompt1); DayPrinter(Choice); Prompts(Prompt2); std::cout << Temp; Prompts(Prompt3); std::cout << FarenheitToCelsius(Temp); Prompts(Prompt4); std::cout << " \n" << std::endl; } float FarenheitToCelsius(float Temp) { float Celsius = 0.0; Celsius = (Temp - 32) * 5 / 9; return Celsius; } void GreatLow(Temperature* WeekLog) { float GreatestLow = 0.0; int Choice = 0u; GreatestLow = WeekLog[0].Low; for (auto i = 1u; i < 6; i++) { if (WeekLog[i].Low < GreatestLow) { GreatestLow = WeekLog[i].Low; Choice = i; } } HighLowOutStatement(Choice, GreatestLow, "Your weekly low was on "," with a temperature of ", " degrees Farenheit! That is ", " degrees Celsius"); } void GreatHigh(Temperature* WeekLog) { float GreatestHigh = 0.0; int Choice = 0u; for (auto i = 0u; i < 7; i++) { if (WeekLog[i].High > GreatestHigh) { GreatestHigh = WeekLog[i].High; Choice = i; } } HighLowOutStatement(Choice, GreatestHigh, "Your weekly high was on ", " with a temperature of ", " degrees Farenheit! That is ", " degrees Celsius"); } void TemperatureAverage(Temperature* WeekLog) { float AverageTemp = 0.0; float Sum = 0.0; for (auto i = 0u; i < 7; i++) { Sum += (WeekLog[i].High + WeekLog[i].Low); } AverageTemp = Sum / 14; AvgDiffOutStatement(AverageTemp, "Your weekly average temperature was ", " degrees Farenheit! That is ", " degrees Celsius!"); } void TemperatureDifference(Temperature* WeekLog) { float HighLowDifference = 0.0; float HighLowStorage[7]{}; for (auto i = 0u; i < 7; i++) { HighLowDifference = WeekLog[i].High - WeekLog[i].Low; HighLowStorage[i] = HighLowDifference; } float GreatestDifference = 0.0; for (auto j = 0u; j < 7; j++) { if (HighLowStorage[j] > GreatestDifference) { GreatestDifference = HighLowStorage[j]; } } AvgDiffOutStatement(GreatestDifference, "The largest temperature differential was ", " degrees Farenheit! That is ", " degrees Celsius!"); } void WeeklyTemp(const char* Prompt1, const char* Prompt2) { Temperature WeekTemp[7]; for (auto i = 0u; i <7; i++) { DayPrinter(i); std::cout << "************************************************************************************************************************" << std::endl; WeekTemp[i].High = InputFloat(Prompt1); WeekTemp[i].Low = InputFloat(Prompt2); system("cls"); } TemperatureDifference(WeekTemp); TemperatureAverage(WeekTemp); GreatHigh(WeekTemp); GreatLow(WeekTemp); } #endif