// Torrez, Elaine CS1A
// ----------------------------------------------
// CORPORATE SALES DATA
// ----------------------------------------------
//
// This program uses a structure to store quarterly sales
// data for four company divisions (East, West, North, South).
// It asks the user to enter the four quarters' sales for each
// division, calculates the total annual sales and average
// quarterly sales for each division, and then displays the
// results.
//
// ----------------------------------------------
// INPUT
// For each division:
// name
// first-quarter sales
// second-quarter sales
// third-quarter sales
// fourth-quarter sales
//
// PROCESSING
// For each division:
// total = q1 + q2 + q3 + q4
// average = total / 4
//
// OUTPUT
// For each division, display:
// Division Name
// Q1, Q2, Q3, Q4 Sales
// Total Annual Sales
// Average Quarterly Sales
//
// ----------------------------------------------
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
// ----------------------------------------------
// Structure to hold division sales data
// ----------------------------------------------
struct DivisionSales {
string name; // Division name (East, West, North, South)
double q1; // First-quarter sales
double q2; // Second-quarter sales
double q3; // Third-quarter sales
double q4; // Fourth-quarter sales
double total; // Total annual sales
double average; // Average quarterly sales
};
// ----------------------------------------------
// Function Prototypes
// ----------------------------------------------
void getSales(DivisionSales &div);
void calcSales(DivisionSales &div);
void displayDivision(const DivisionSales &div);
// ----------------------------------------------
// main
// ----------------------------------------------
int main()
{
// Declarations for four divisions
DivisionSales east;
DivisionSales west;
DivisionSales north;
DivisionSales south;
east.name = "East";
west.name = "West";
north.name = "North";
south.name = "South";
cout << fixed << setprecision(2);
// Get input for each division
getSales(east);
getSales(west);
getSales(north);
getSales(south);
// Calculate totals and averages
calcSales(east);
calcSales(west);
calcSales(north);
calcSales(south);
// Output results
cout << "\nCORPORATE SALES REPORT\n";
cout << "----------------------------------------\n";
displayDivision(east);
displayDivision(west);
displayDivision(north);
displayDivision(south);
return 0;
}
// ----------------------------------------------
// getSales
// Prompts user for quarterly sales for one division.
// Performs input validation: no negative numbers.
// ----------------------------------------------
void getSales(DivisionSales &div)
{
cout << "\nEnter sales for the " << div.name << " division.\n";
// Q1
do {
cout << " First-quarter sales: $";
cin >> div.q1;
if (div.q1 < 0)
cout << " Error: sales cannot be negative.\n";
} while (div.q1 < 0);
// Q2
do {
cout << " Second-quarter sales: $";
cin >> div.q2;
if (div.q2 < 0)
cout << " Error: sales cannot be negative.\n";
} while (div.q2 < 0);
// Q3
do {
cout << " Third-quarter sales: $";
cin >> div.q3;
if (div.q3 < 0)
cout << " Error: sales cannot be negative.\n";
} while (div.q3 < 0);
// Q4
do {
cout << " Fourth-quarter sales: $";
cin >> div.q4;
if (div.q4 < 0)
cout << " Error: sales cannot be negative.\n";
} while (div.q4 < 0);
}
// ----------------------------------------------
// calcSales
// Computes total and average for one division.
// ----------------------------------------------
void calcSales(DivisionSales &div)
{
div.total = div.q1 + div.q2 + div.q3 + div.q4;
div.average = div.total / 4.0;
}
// ----------------------------------------------
// displayDivision
// Displays all data for one division.
// ----------------------------------------------
void displayDivision(const DivisionSales &div)
{
cout << "\nDivision: " << div.name << endl;
cout << " Q1 Sales: $" << div.q1 << endl;
cout << " Q2 Sales: $" << div.q2 << endl;
cout << " Q3 Sales: $" << div.q3 << endl;
cout << " Q4 Sales: $" << div.q4 << endl;
cout << " Total Annual Sales : $" << div.total << endl;
cout << " Average Quarterly Sale: $" << div.average << endl;
}