//Andres Guzman CSC5 Chapter 6, P. 369, #3
//
/*******************************************************************************
*
* DETERMINE WINNER
* ______________________________________________________________________________
* This program will determine the winning division between 4 divisions
* 
* Computation:
*
* division > highest
* ______________________________________________________________________________
* INPUT
*
* northeast = saves northeast function
* northwest = saves northwest function
* southeast = saves southeast function
* southwest = saves southwest function
*
* OUTPUT
* highest = highest sales
* highestdivison = division with highest sales
*******************************************************************************/
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
//
//Prototypes
	double getSales(string division);	//prototype
	void findHighest(double ne, double nw, double se, double sw);	//prototype

int main()
{
//
//Northeast Function
	cout << "\tNortheast Division";	//Division Name
	double northeast = getSales("Northeast"); //Function call and adds value to
											 //variable
//
//Northwest Function
	cout << "\tNorthwest Division";	//Division Name
	double northwest = getSales("Northwest");	//Function call and adds value
												//to variable.
//
//Southeast Function
	cout << "\tSoutheast Division";	//Division Name
	double southeast = getSales("Southeast");	//Function call and adds value
												//to variable
//
//Southwest Function
	cout << "\tSouthwest Division";	//Division Name
	double southwest = getSales("Southwest");	//Function call and adds value 
												//to variable
//
//Function to determine highest division
	findHighest(northeast, northwest, southeast, southwest);	//Function call
	return 0;
}

/*******************************************************************************
 * Adding defintion to function getSales. Parameter division allows for strings 
 * to pass. Will be used to ask user for divisions quarterly sales.
double getSales(string division)
*******************************************************************************/
double getSales(string division)
	{
		double sales;	//Input for sales
		cout << "\nDivisions Quarterly Sales Figure: $";
		cin >> sales;
		cout << endl;
//
//While loop for input validation
		while(sales < 0.00)	//sales cannot be less than 0
		{
			cout << "Invalid sales amount, please enter valid amount.";
			cout << "\nDivisions Quarterly Sales Figure: $";
			cin >> sales;
			cout << endl;
		}
		return sales;
	}
	
/*******************************************************************************
 * Adding definition to function findHighest. parameters hold regions value with
 * northeast to southwest. Will be used to determine which region has the bigger
 * value.
 ******************************************************************************/
void findHighest(double ne, double nw, double se, double sw)
{
	double highest = ne;	//gives highest value to northeast
	string highestdivision = "Northeast";  //Gives highest division to northeast
//
//If statement to determine which division holds the highest value
	if (nw > highest)
	{
		highest = nw;					//Replaces highest with nw
		highestdivision = "Northwest";	//Replaces highest division with 
										//northwest
	}
	if (se > highest)
	{
		highest = se;					//Replaces highest with se
		highestdivision = "Southeast";	//Replaces highest division with 
										//southeast
	}
	if (sw > highest)
	{
		highest = sw;					//Replaces highest with se
		highestdivision = "Southwest";	//Replaces highest division with 
										//southwest
	}
//
//Output results
	cout << "Highest Grossing Division: " << highestdivision;
	cout << fixed << setprecision(2) << "\nDivision Sales Figure: $" << highest;
}