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 myStation;

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::reverse_iterator rit;

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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!