Question: Hello, what I need done is for the below code write a detailed summary on the programming project and then break up each part of
Hello, what I need done is for the below code write a detailed summary on the programming project and then break up each part of the code and write what that part of the code does. For example,
The entire program code
- Detailed summary and description of what the program does
Snippet of code in the program
- detailed summary and description of what it does
Keep doing that for the code
Thank you. I appreciate it
C++ code:
Project 6
#include "stdafx.h"
#include
#include
#include
#include
#include
#include
using namespace std;
struct Weather_Station
{
string name;
double temperature;
double windspeed;
string windDirection;
};
string DisplayMenu(string station_name)
{
string str, temp;
do
{
cout << "*******************WEATHER STATION: " << station_name\
<< " *******************" << endl << endl;
cout << "I. Input a complete weather reading." << endl;
cout << "P. Print the current weather." << " ";
cout << "H. Print the weather history (from most recent to oldest)." << endl;
cout << "E. Exit the program." << " ";
cout << "Enter your choice: " << endl;
cin >> str;
temp = str;
for (std::string::size_type i = 0; i < str.length(); ++i)
temp[i] = toupper(str[i]);
str = temp;
} while (!(str == "I" || str == "P" || str == "H" || str == "E"));
return str;
}
double getTemperature()
{
double temp;
string temp_string;
stringstream converter;
cout << "Enter the temperature: ";
cin >> temp_string;
converter << temp_string;
converter >> temp;
return temp;
}
double getWindSpeed()
{
double temp;
string temp_string;
stringstream converter;
//this loop will be iterated continuously untill user enters windspeed which is greater than zero
do{
cout << "Enter Wind speed: ";
cin >> temp_string;
converter << temp_string;
converter >> temp;
if (temp <= 0)
{
cout << "Wind speed should be always greater than 0(zero)";
}
} while (temp <= 0);
return temp;
}
string getWindDirection()
{
string temp_string, temp;
do {
cout << "Enter the Wind Direction (North,South,East,West): ";
cin >> temp_string;
temp = temp_string;
for (std::string::size_type i = 0; i < temp_string.length(); ++i)
temp[i] = toupper(temp_string[i]);
} while (!(temp == "NORTH" || temp == "SOUTH" || temp == "EAST" || temp == "WEST" || temp == "N" || temp == "S" || temp == "E") || temp == "W");
temp_string = temp;
if (temp_string == "N")
temp_string = "NORTH";
if (temp_string == "S")
temp_string = "SOUTH";
if (temp_string == "W")
temp_string = "WEST";
if (temp_string == "E")
temp_string = "EAST";
return temp_string;
};
void printWeather(Weather_Station ws)
{
cout << "Station Name " << ws.name << endl;
cout << "Temperature " << ws.temperature << endl;
cout << "Wind Direction " << ws.windDirection << endl;
cout << "Wind Speed " << ws.windspeed << endl;
cout << endl;
}
int main()
{
//Have the user provide a name for the weather station upon entry.
vector
Weather_Station myWeather_Details;
string station_name, input_choice;
int histCount = 0;
cout << "Enter the name of Weather Station: ";
getline(cin, station_name);
myWeather_Details.name = station_name;
while (1)
{
//Control loop to perform various actions
input_choice = DisplayMenu(station_name);
if (input_choice == "I")
{
// get the details
myWeather_Details.temperature = getTemperature(); // get temperature
myWeather_Details.windDirection = getWindDirection(); //get wind direction
myWeather_Details.windspeed = getWindSpeed(); //get wind direction
//store the details
myStation.push_back(myWeather_Details);
}
else if (input_choice == "P")
{
cout << "*************Printing Current Weather*************" << endl;
printWeather(myStation.back());
}
else if (input_choice == "H")
{
//this loop will be iterated continuously untill user gives the input count more than 0 and it is not greater than available record count in vector
do {
cout << "Number of readings entered: " << myStation.size()< cout << "Please enter how many records you want" << " "; cin >> histCount; if (histCount <= 0) cout << "Input record count should always be greater than 0(zero)" << " "; else if (histCount >> myStation.size()) cout << "Input record count shouldn't be more than available record count" << " "; } while (histCount <= 0 || histCount >> myStation.size()); cout << "*************Printing Weather History*************" << endl; vector for (rit = myStation.rbegin(); rit != myStation.rend(); rit++) printWeather(*rit); } else if (input_choice == "E") { exit(0); } } return 0; }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
