Question

Directions: Create a structure that contains the following data: DivisionName First-QuarterSales Second Quarter Sales Third Quarter...

Directions:

Create a structure that contains the following data:

  • DivisionName
  • First-QuarterSales
  • Second Quarter Sales
  • Third Quarter Sales
  • Fourth Quarter Sales
  • Total Sales
  • Average Sales

Create an enumerated data type of {North,South,East,West}

Create an array of this structure with one instance for each enumerated data type listed above.

Write a C++ program that will create a menu driven program with the following options:

Menu Options:
A) Add Data
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit

If user selects A) Add Data

The user is asked to input the name, first quarter sales, second quarter sales,third quater sales, and fourth quarter sales for each element in the array of the structure.

If user selects B) Compute Total Sales and Avg Sales

Computes the total sales and average quarterly sales for each element in the array of the structure.

f user selects C) Display Data

Displays the data for each element in the array of the structure per the example in the sample run.

If user selects D) Division Highest Avg Sales

Computes and displays the division with the highest average sales for each element in the array of the structure.

If user selects E) Average Sales across all Divisions

Computes and displays the average total sales for all divisions across all quarters using the array of the structure.

If user selects F) Quit

The application ends

Otherwise

The user is prompted to make a valid menu option choice

Make sure your program conforms to the following requirements:

1. Properly set up enumerated data type, structure, and declare array of type structure (

2. It must provide the functionality defined above. You are required to use and define proper C++ functions but for this program you are allowed to defined them

3. Add comments wherever necessary.

Sample Runs:

NOTE: not all possible runs are shown below.

Welcome to Corp Data
Menu Options:
A) Add Data
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
A
North Division
Please enter in division name...TEST
First Quarter...
Please enter in sales...4567.33
Second Quarter...
Please enter in sales...444.77
Third Quarter...
Please enter in sales...333.22
Fourth Quarter...
Please enter in sales...444.33
South Division
Please enter in division name...TEST2
First Quarter...
Please enter in sales...222.77
Second Quarter...
Please enter in sales...222.99
Third Quarter...
Please enter in sales...444.33
Fourth Quarter...
Please enter in sales...222.99
East Division
Please enter in division name...TEST3
First Quarter...
Please enter in sales...378798.55
Second Quarter...
Please enter in sales...632362783.44
Third Quarter...
Please enter in sales...6327362187.44
Fourth Quarter...
Please enter in sales...67862.33
West Division
Please enter in division name...TEST4
First Quarter...
Please enter in sales...23213.44
Second Quarter...
Please enter in sales...221.33
Third Quarter...
Please enter in sales...3123123.33
Fourth Quarter...
Please enter in sales...323123.33
Menu Options:
A) Add Data
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
B
Completed!
Menu Options:
A) Add Data
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
C
North Division
Division Name:TEST
First Quarter Sales: 4567.33
Second Quarter Sales: 444.77
Third Quarter Sales: 333.22
Fourth Quarter Sales: 444.33
Total Sales: 5789.65
Average Sales: 1447.41
South Division
Division Name:TEST2
First Quarter Sales: 222.77
Second Quarter Sales: 222.99
Third Quarter Sales: 444.33
Fourth Quarter Sales: 222.99
Total Sales: 1113.08
Average Sales: 278.27
East Division
Division Name:TEST3
First Quarter Sales: 378798.56
Second Quarter Sales: 632362752.00
Third Quarter Sales: 6327362048.00
Fourth Quarter Sales: 67862.33
Total Sales: 6960171520.00
Average Sales: 1740042880.00
West Division
Division Name:TEST4
First Quarter Sales: 23213.44
Second Quarter Sales: 221.33
Third Quarter Sales: 3123123.25
Fourth Quarter Sales: 323123.34
Total Sales: 3469681.25
Average Sales: 867420.31
Menu Options:
A) Add Data
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
D
East Division has the highest average quarterly sales.
Menu Options:
A) Add Data
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
E
Total Average Sales All Divisions:1740910592.00
Menu Options:
A) Add Data
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
4
Menu Options:
A) Add Data
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
F

Process finished with exit code 0

General Requirements:

1. No global variables (variables outside of main() ) unless they are constants.

2. All input and output must be done with streams, using the library iostream

3. You may only use the iostream, iomanip, and string libraries. Including unnecessary libraries will result in a loss of points.

4. NO C style printing is permitted. (Aka, don't use printf). Use cout if you need to print to the screen.

5. When you write source code, it should be readable and well-documented (comments).

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Screenshot

Program

/*
Program to find sales of 4 quarters of 4 divisions
*/

//Header files
#include <iostream>
#include<iomanip>
#include<string>
using namespace std;

//Create a struct of a division
struct Sale{
   string divisionName;
   double firstQuarterSales;
   double secondQuarterSales;
   double thirdQuarterSales;
   double fourthQuarterSales;
   double totalSales;
   double avgSales;
};
//Quarter enum
enum Division {
   North, South, East, West
};

//Function prototypes
char menu();
void addData(Sale*);
void calculate(Sale*,int);
void display(const Sale*);
void getHighest(const Sale*,const int);
void getTotal(const Sale*, const int);
int main()
{
   //Create an array of struct of each quarter
   Sale sales[4];
    //Welcome message
   cout << "Welcome to Corp Data\n";
   //Call method to get option
   char ch = menu();
   //Loop until exit
   while (ch != 'F') {
       if (ch == 'A') {
           addData(sales);
       }
       else if (ch == 'B') {
           calculate(sales, 4);
       }
       else if (ch == 'C') {
           display(sales);
       }
       else if (ch == 'D'){
           getHighest(sales,4);
       }
       else if (ch == 'E') {
           getTotal(sales, 4);
       }
       ch = menu();
   }
   cout << "Process finished\n";
   exit(0);
}

/*
Function: menu
ParamIn: None
ParamOut: ch
Description: Display use optio
              Prompt for option return correct option
*/
char menu() {
   char ch;
   while (true) {
       cout << "Menu Options:\n"
           << "A) Add\n"
           << "B) Compute Total Sales and Avg Sales\n"
           << "C) Display Data\n"
           << "D) Division Highest Avg Sales\n"
           << "E) Average Sales across all Divisions\n"
           << "F) Quit\n";
       cin >> ch;
       if (toupper(ch) >='A' && toupper(ch) <= 'F') {
           break;
       }
   }
  
   return toupper(ch);
}
/*
Function: addData
ParamIn: sales, input array
ParamOut: None
Description: add a data of 4 divisions each quarter sale details in array
*/
void addData(Sale* sales) {
   Division division = North;
   cout << "North Division\n"
       << "Please enter in division name...";
   cin >> sales[division].divisionName;
   cout << "First Quarter...\n"
       << "Please enter in sales...";
   cin >> sales[division].firstQuarterSales;
   cout << "Second Quarter...\n"
       << "Please enter in sales...\n";
   cin >> sales[division].secondQuarterSales;
   cout << "Third Quarter...\n"
       << "Please enter in sales...";
   cin >> sales[division].thirdQuarterSales;
   cout << "Fourth Quarter...\n"
       << "Please enter in sales...\n";
   cin >> sales[division].fourthQuarterSales;
   division = South;
   cout << "South Division\n"
       << "Please enter in division name...";
   cin >> sales[division].divisionName;
   cout << "First Quarter...\n"
       << "Please enter in sales...";
   cin >> sales[division].firstQuarterSales;
   cout << "Second Quarter...\n"
       << "Please enter in sales...\n";
   cin >> sales[division].secondQuarterSales;
   cout << "Third Quarter...\n"
       << "Please enter in sales...";
   cin >> sales[division].thirdQuarterSales;
   cout << "Fourth Quarter...\n"
       << "Please enter in sales...\n";
   cin >> sales[division].fourthQuarterSales;
   division = East;
   cout << "East Division\n"
       << "Please enter in division name...";
   cin >> sales[division].divisionName;
   cout << "First Quarter...\n"
       << "Please enter in sales...";
   cin >> sales[division].firstQuarterSales;
   cout << "Second Quarter...\n"
       << "Please enter in sales...\n";
   cin >> sales[division].secondQuarterSales;
   cout << "Third Quarter...\n"
       << "Please enter in sales...";
   cin >> sales[division].thirdQuarterSales;
   cout << "Fourth Quarter...\n"
       << "Please enter in sales...\n";
   cin >> sales[division].fourthQuarterSales;
   division = West;
   cout << "West Division\n"
       << "Please enter in division name...";
   cin >> sales[division].divisionName;
   cout << "First Quarter...\n"
       << "Please enter in sales...";
   cin >> sales[division].firstQuarterSales;
   cout << "Second Quarter...\n"
       << "Please enter in sales...\n";
   cin >> sales[division].secondQuarterSales;
   cout << "Third Quarter...\n"
       << "Please enter in sales...";
   cin >> sales[division].thirdQuarterSales;
   cout << "Fourth Quarter...\n"
       << "Please enter in sales...\n";
   cin >> sales[division].fourthQuarterSales;
}
/*
Function: calculate
ParamIn: sales,sz
ParamOut: None
DEscription: calculate each divisions total and average sales
*/
void calculate(Sale* sales, int sz) {
   for (int i = 0; i < sz; i++) {
       sales[i].totalSales = sales[i].firstQuarterSales + sales[i].secondQuarterSales + sales[i].thirdQuarterSales + sales[i].fourthQuarterSales;
       sales[i].avgSales = sales[i].totalSales / 4;
   }
   cout << "Completed!\n";
}
/*
Function: display
ParamIn: sales,sz
ParmOut: None
Description: Display each divion sales details
*/
void display(const Sale* sales) {
   cout << fixed << setprecision(2);
   Division division = North;
   cout << "North Division\n"
       << "Division Name : " << sales[division].divisionName << endl
       << "First Quarter Sales : " << sales[division].firstQuarterSales << endl
       << "Second Quarter Sales : " << sales[division].secondQuarterSales << endl
       << "Third Quarter Sales : " << sales[division].thirdQuarterSales << endl
       << "Fourth Quarter Sales : " << sales[division].fourthQuarterSales << endl
       << "Total Sales : " << sales[division].totalSales << endl
       << "Average Sales : " << sales[division].avgSales << endl;

   division = South;
   cout << "South Division\n"
       << "Division Name : " << sales[division].divisionName << endl
       << "First Quarter Sales : " << sales[division].firstQuarterSales << endl
       << "Second Quarter Sales : " << sales[division].secondQuarterSales << endl
       << "Third Quarter Sales : " << sales[division].thirdQuarterSales << endl
       << "Fourth Quarter Sales : " << sales[division].fourthQuarterSales << endl
       << "Total Sales : " << sales[division].totalSales << endl
       << "Average Sales : " << sales[division].avgSales << endl;

   division = East;
   cout << "East Division\n"
       << "Division Name : " << sales[division].divisionName << endl
       << "First Quarter Sales : " << sales[division].firstQuarterSales << endl
       << "Second Quarter Sales : " << sales[division].secondQuarterSales << endl
       << "Third Quarter Sales : " << sales[division].thirdQuarterSales << endl
       << "Fourth Quarter Sales : " << sales[division].fourthQuarterSales << endl
       << "Total Sales : " << sales[division].totalSales << endl
       << "Average Sales : " << sales[division].avgSales << endl;

   division =West;
   cout << "West Division\n"
       << "Division Name : " << sales[division].divisionName << endl
       << "First Quarter Sales : " << sales[division].firstQuarterSales << endl
       << "Second Quarter Sales : " << sales[division].secondQuarterSales << endl
       << "Third Quarter Sales : " << sales[division].thirdQuarterSales << endl
       << "Fourth Quarter Sales : " << sales[division].fourthQuarterSales << endl
       << "Total Sales : " << sales[division].totalSales << endl
       << "Average Sales : " << sales[division].avgSales << endl;
}

/*
Function: getHighest
ParamIn: sales,cnt
ParamOut: None
Description: Loop through array to get highest zone and display division
*/
void getHighest(const Sale* sales, const int cnt) {
   double avg = 0;
   int index = 0;
   string division = "";
   for (int i = 0; i < cnt; i++) {
       if (avg < sales[i].avgSales) {
           avg = sales[i].avgSales;
           index = i;
       }
   }
   if (index == 0) {
       division = "North";
   }
   else if (index == 1) {
       division = "South";
   }
   else if (index == 2) {
       division = "East";
   }
   else {
       division = "West";
   }
   cout << division<<" Division has the highest average quarterly sales.\n";
}

/*
Function: getTotal
ParamIn: sales,cnt
ParamOut: None
Description: Loop through array to get total average sales
*/
void getTotal(const Sale* sales, const int cnt) {
   double total = 0;
   for (int i = 0; i < cnt; i++) {
       total += sales[i].avgSales;
   }
   cout << fixed << setprecision(2) << "Total Average Sales All Divisions: " << total << endl;
}

------------------------------------------------------------------------------------------------

Output

Welcome to Corp Data
Menu Options:
A) Add
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
A
North Division
Please enter in division name...TEST
First Quarter...
Please enter in sales...4567.33
Second Quarter...
Please enter in sales...
444.77
Third Quarter...
Please enter in sales...333.22
Fourth Quarter...
Please enter in sales...
444.33
South Division
Please enter in division name...TEST2
First Quarter...
Please enter in sales...222.77
Second Quarter...
Please enter in sales...
222.99
Third Quarter...
Please enter in sales...444.33
Fourth Quarter...
Please enter in sales...
222.99
East Division
Please enter in division name...TEST3
First Quarter...
Please enter in sales...378798.55
Second Quarter...
Please enter in sales...
632362783.44
Third Quarter...
Please enter in sales...6327362187.44
Fourth Quarter...
Please enter in sales...
67862.33
West Division
Please enter in division name...TEST4
First Quarter...
Please enter in sales...23213.44
Second Quarter...
Please enter in sales...
221.33
Third Quarter...
Please enter in sales...3123123.33
Fourth Quarter...
Please enter in sales...
323123.33
Menu Options:
A) Add
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
B
Completed!
Menu Options:
A) Add
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
C
North Division
Division Name : TEST
First Quarter Sales : 4567.33
Second Quarter Sales : 444.77
Third Quarter Sales : 333.22
Fourth Quarter Sales : 444.33
Total Sales : 5789.65
Average Sales : 1447.41
South Division
Division Name : TEST2
First Quarter Sales : 222.77
Second Quarter Sales : 222.99
Third Quarter Sales : 444.33
Fourth Quarter Sales : 222.99
Total Sales : 1113.08
Average Sales : 278.27
East Division
Division Name : TEST3
First Quarter Sales : 378798.55
Second Quarter Sales : 632362783.44
Third Quarter Sales : 6327362187.44
Fourth Quarter Sales : 67862.33
Total Sales : 6960171631.76
Average Sales : 1740042907.94
West Division
Division Name : TEST4
First Quarter Sales : 23213.44
Second Quarter Sales : 221.33
Third Quarter Sales : 3123123.33
Fourth Quarter Sales : 323123.33
Total Sales : 3469681.43
Average Sales : 867420.36
Menu Options:
A) Add
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
D
East Division has the highest average quarterly sales.
Menu Options:
A) Add
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
E
Total Average Sales All Divisions: 1740912053.98
Menu Options:
A) Add
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
4
Menu Options:
A) Add
B) Compute Total Sales and Avg Sales
C) Display Data
D) Division Highest Avg Sales
E) Average Sales across all Divisions
F) Quit
F
Process finished

Add a comment
Know the answer?
Add Answer to:
Directions: Create a structure that contains the following data: DivisionName First-QuarterSales Second Quarter Sales Third Quarter...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • C++ and Using Microsoft Visual Studio. Write 2 programs: One program will use a structure to...

    C++ and Using Microsoft Visual Studio. Write 2 programs: One program will use a structure to store the following data on a company division: Division Name (East, West, North, and South) Quarter (1, 2, 3, or 4) Quarterly Sales The user should be asked for the four quarters' sales figures for the East, West, North, and South divisions. The data for each quarter for each division should be written to a file. The second program will read the data written...

  • The purpose of this assignment is to get experience with an array, do while loop and...

    The purpose of this assignment is to get experience with an array, do while loop and read and write file operations. Your goal is to create a program that reads the exam.txt file with 10 scores. After that, the user can select from a 4 choice menu that handles the user’s choices as described in the details below. The program should display the menu until the user selects the menu option quit. The project requirements: It is an important part...

  • CProgramming using Dev C ++ #include <stdio.h> PLEASE NO math.h Corporate Sales Data Report Write a...

    CProgramming using Dev C ++ #include <stdio.h> PLEASE NO math.h Corporate Sales Data Report Write a program that read creates a structure for a company's divisions. The structure should have: Division name (North, South, East, West, and Central) Quarter (1, 2, 3, or 4) Quarterly sales · Your job is to write a program that will create a two-dimensional array of 5 rows (divisions) and 4 columns (quarters). The program should ask the user to enter in all four quarters...

  • The first quart forecast is _____ The second quarter forecast is _____ The third quarter forecast...

    The first quart forecast is _____ The second quarter forecast is _____ The third quarter forecast is _____ The fourth quarter forecast is _____ The manager of a utility company in the Texas panhandle wants to develop quarterly forecasts of power loads for the next year. The power loads are seasonal, and the data on the quarterly loads in megawatts (MW) for the last four years are as follows: Year 1 Year 4 Year 2 98.1 Quarter Year 3 127.6...

  • Java. Please write the output import java.util.Scanner; import java.text.Decimalformat: * This program demonstrates two-dimensional array. public...

    Java. Please write the output import java.util.Scanner; import java.text.Decimalformat: * This program demonstrates two-dimensional array. public class CorpSales public static void main(String[] args) Final int DIVS - 3; // Three divisions in the company final int QTRS = 4; // Four quarters double totalSales - e.e; / Accumulator // Create an array to hold the sales for each // division, for each quarter. double[][] sales - new double[DIVS][QTRS] // Create a Scanner object for keyboard input. Scanner keyboard = new...

  • Scholastic Learning Sales Budget For the Year Ended December 31, 2019 First Second Third Fourth Quarter...

    Scholastic Learning Sales Budget For the Year Ended December 31, 2019 First Second Third Fourth Quarter Quarter Quarter Quarter Total Budgeted tablets to be sold 450 750 1.200 650 3,050 450 450 450lls Sales price per unit 202.500 $ 337,500 $ 540.000 $ 292,500 $ 1,372,500 Total sales We were unable to transcribe this image162,000 113,400 $ 284,600 3rd Qtr.—Cash sales (30%) 3rd Qtr. — Credit sales (70%), 30% collected in 3rd qtr. 3rd Qtr. — Credit sales (70%), 70%...

  • Write a program that stores the following data in a tuple: 54,76,32,14,29,12,64,97,50,86,43,12 The program needs to...

    Write a program that stores the following data in a tuple: 54,76,32,14,29,12,64,97,50,86,43,12 The program needs to display a menu to the user, with the following 4 options: 1 – Display minimum 2 – Display maximum 3 – Display total 4 – Display average 5 – Quit Make your program loop back to this menu until the user chooses option 5. Write code for all 4 other menu choices using the python code and screenshot the python code for me. many...

  • Write a contacts database program that presents the user with a menu that allows the user...

    Write a contacts database program that presents the user with a menu that allows the user to select between the following options: (In Java) Save a contact. Search for a contact. Print all contacts out to the screen. Quit If the user selects the first option, the user is prompted to enter a person's name and phone number which will get saved at the end of a file named contacts.txt. If the user selects the second option, the program prompts...

  • using java Program: Please read the complete prompt before going into coding. Write a program that...

    using java Program: Please read the complete prompt before going into coding. Write a program that handles the gradebook for the instructor. You must use a 2D array when storing the gradebook. The student ID as well as all grades should be of type int. To make the test process easy, generate the grade with random numbers. For this purpose, create a method that asks the user to enter how many students there are in the classroom. Then, in each...

  • Process Create a City structure. The structure will hold the name of a city and its temperature. ...

    using C Process Create a City structure. The structure will hold the name of a city and its temperature. In the main function, read in a series of city names and their temperature expressed in Fahrenheit. Store the data in an array of City structures. Stop reading when either: The user enters the word "quit" for a city name, or The size of the array is about to be exceeded. Create a function that determines the highest temperature of the...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT