// Elaine Torrez CS1A Chapter 6, P.369, #3
// *****************************************************************************************
// * WINNING DIVISION *
// *--------------------------------------------------------------------------------------- *
// * This program determines which of a company's four divisions (Northeast, Southeast, *
// * Northwest, and Southwest) had the greatest quarterly sales. *
// * It uses two functions: *
// * getSales() – asks for a division’s sales and validates input *
// * findHighest()– determines and displays which division had the highest sales *
// *--------------------------------------------------------------------------------------- *
// * INPUT *
// * Northeast : quarterly sales for Northeast division (>= 0) *
// * Southeast : quarterly sales for Southeast division (>= 0) *
// * Northwest : quarterly sales for Northwest division (>= 0) *
// * Southwest : quarterly sales for Southwest division (>= 0) *
// *--------------------------------------------------------------------------------------- *
// * OUTPUT *
// * Name of the highest-grossing division and its sales amount *
// *****************************************************************************************
#include <iostream>
#include <iomanip>
#include <string>
#include <limits> // for input validation
using namespace std;
// ---------------- Function Prototypes ----------------
double getSales(string divisionName);
void findHighest(double northeast, double southeast, double northwest, double southwest);
// ---------------------- MAIN -------------------------
int main()
{
double northeast, southeast, northwest, southwest;
cout << fixed << setprecision(2);
// Get sales for each division
northeast = getSales("Northeast");
southeast = getSales("Southeast");
northwest = getSales("Northwest");
southwest = getSales("Southwest");
// Determine and display highest
findHighest(northeast, southeast, northwest, southwest);
return 0;
}
// ---------------- Function Definitions ----------------
// Function to get a division’s sales
double getSales(string divisionName)
{
double sales;
cout << "Enter the quarterly sales for the " << divisionName << " division: $";
cin >> sales;
// Input validation
while (cin.fail() || sales < 0.0)
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "ERROR: Sales amount must be 0 or greater. Re-enter for "
<< divisionName << ": $";
cin >> sales;
}
return sales;
}
// Function to find and display which division had the highest sales
void findHighest(double northeast, double southeast, double northwest, double southwest)
{
double highest = northeast;
string division = "Northeast";
if (southeast > highest)
{
highest = southeast;
division = "Southeast";
}
if (northwest > highest)
{
highest = northwest;
division = "Northwest";
}
if (southwest > highest)
{
highest = southwest;
division = "Southwest";
}
cout << "\nThe highest-grossing division is the " << division << " division.\n";
cout << "Sales amount: $" << highest << endl;
}