fork download
  1. //Devin Scheu CS1A Chapter 11, P. 645, #3
  2. //
  3. /**************************************************************
  4. *
  5. * DISPLAY CORPORATE SALES DATA
  6. * ____________________________________________________________
  7. * This program calculates and displays total and average
  8. * quarterly sales for four company divisions.
  9. * ____________________________________________________________
  10. * INPUT
  11. * division1 : Sales data for the East division
  12. * division2 : Sales data for the West division
  13. * division3 : Sales data for the North division
  14. * division4 : Sales data for the South division
  15. *
  16. * OUTPUT
  17. * salesSummary : The formatted display of sales data for each division
  18. *
  19. **************************************************************/
  20.  
  21. #include <iostream>
  22. #include <iomanip>
  23. #include <string>
  24.  
  25. using namespace std;
  26.  
  27. struct DivisionData {
  28. string divisionName;
  29. double firstQuarter;
  30. double secondQuarter;
  31. double thirdQuarter;
  32. double fourthQuarter;
  33. double totalAnnualSales;
  34. double averageQuarterlySales;
  35. };
  36.  
  37. // Function to calculate and display division sales
  38. void calculateAndDisplayDivision(DivisionData& division) {
  39. division.totalAnnualSales = division.firstQuarter + division.secondQuarter +
  40. division.thirdQuarter + division.fourthQuarter;
  41. division.averageQuarterlySales = division.totalAnnualSales / 4.0;
  42.  
  43. cout << left << setw(25) << "Division:" << right << division.divisionName << endl;
  44. cout << left << setw(25) << "First Quarter:" << right << "$" << fixed << setprecision(2) << division.firstQuarter << endl;
  45. cout << left << setw(25) << "Second Quarter:" << right << "$" << fixed << setprecision(2) << division.secondQuarter << endl;
  46. cout << left << setw(25) << "Third Quarter:" << right << "$" << fixed << setprecision(2) << division.thirdQuarter << endl;
  47. cout << left << setw(25) << "Fourth Quarter:" << right << "$" << fixed << setprecision(2) << division.fourthQuarter << endl;
  48. cout << left << setw(25) << "Total Annual Sales:" << right << "$" << fixed << setprecision(2) << division.totalAnnualSales << endl;
  49. cout << left << setw(25) << "Average Quarterly Sales:" << right << "$" << fixed << setprecision(2) << division.averageQuarterlySales << endl;
  50. cout << endl;
  51. }
  52.  
  53. int main () {
  54.  
  55. //Variable Declarations
  56. const int NUM_DIVISIONS = 4; //OUTPUT - Number of divisions
  57. DivisionData divisions[NUM_DIVISIONS] = {{"East", 0, 0, 0, 0}, {"West", 0, 0, 0, 0},
  58. {"North", 0, 0, 0, 0}, {"South", 0, 0, 0, 0}};
  59. string salesSummary; //OUTPUT - The formatted display of sales data for each division
  60. const string quarterNames[4] = {"first", "second", "third", "fourth"};
  61.  
  62. //Prompt for Input with Loop
  63. for (int div = 0; div < NUM_DIVISIONS; div++) {
  64. for (int q = 0; q < 4; q++) {
  65. cout << "Enter " << quarterNames[q] << " quarter sales for " << divisions[div].divisionName << ": $";
  66. cin >> divisions[div].firstQuarter;
  67. while (divisions[div].firstQuarter < 0) {
  68. cout << "\nError: Please enter a non-negative amount: $";
  69. cin >> divisions[div].firstQuarter;
  70. }
  71. switch(q) {
  72. case 0: divisions[div].firstQuarter = divisions[div].firstQuarter; break;
  73. case 1: divisions[div].secondQuarter = divisions[div].firstQuarter; break;
  74. case 2: divisions[div].thirdQuarter = divisions[div].firstQuarter; break;
  75. case 3: divisions[div].fourthQuarter = divisions[div].firstQuarter; break;
  76. }
  77. cout << divisions[div].firstQuarter << endl;
  78. }
  79. }
  80.  
  81. //Separator and Output Section
  82. cout << "-------------------------------------------------------" << endl;
  83. cout << "OUTPUT:" << endl;
  84.  
  85. //Display Sales Data
  86. for (int div = 0; div < NUM_DIVISIONS; div++) {
  87. cout << divisions[div].divisionName << " Division Details:" << endl;
  88. calculateAndDisplayDivision(divisions[div]);
  89. }
  90.  
  91. } //end of main()
Success #stdin #stdout 0.01s 5316KB
stdin
1000
2000
2500
1500
6400
5300
3300
6500
600
100
300
700
7000
3000
4000
5000
stdout
Enter first quarter sales for East: $1000
Enter second quarter sales for East: $2000
Enter third quarter sales for East: $2500
Enter fourth quarter sales for East: $1500
Enter first quarter sales for West: $6400
Enter second quarter sales for West: $5300
Enter third quarter sales for West: $3300
Enter fourth quarter sales for West: $6500
Enter first quarter sales for North: $600
Enter second quarter sales for North: $100
Enter third quarter sales for North: $300
Enter fourth quarter sales for North: $700
Enter first quarter sales for South: $7000
Enter second quarter sales for South: $3000
Enter third quarter sales for South: $4000
Enter fourth quarter sales for South: $5000
-------------------------------------------------------
OUTPUT:
East Division Details:
Division:                East
First Quarter:           $1500.00
Second Quarter:          $2000.00
Third Quarter:           $2500.00
Fourth Quarter:          $1500.00
Total Annual Sales:      $7500.00
Average Quarterly Sales: $1875.00

West Division Details:
Division:                West
First Quarter:           $6500.00
Second Quarter:          $5300.00
Third Quarter:           $3300.00
Fourth Quarter:          $6500.00
Total Annual Sales:      $21600.00
Average Quarterly Sales: $5400.00

North Division Details:
Division:                North
First Quarter:           $700.00
Second Quarter:          $100.00
Third Quarter:           $300.00
Fourth Quarter:          $700.00
Total Annual Sales:      $1800.00
Average Quarterly Sales: $450.00

South Division Details:
Division:                South
First Quarter:           $5000.00
Second Quarter:          $3000.00
Third Quarter:           $4000.00
Fourth Quarter:          $5000.00
Total Annual Sales:      $17000.00
Average Quarterly Sales: $4250.00