fork download
  1. // Torrez, Elaine CS1A
  2. // ----------------------------------------------
  3. // CORPORATE SALES DATA
  4. // ----------------------------------------------
  5. //
  6. // This program uses a structure to store quarterly sales
  7. // data for four company divisions (East, West, North, South).
  8. // It asks the user to enter the four quarters' sales for each
  9. // division, calculates the total annual sales and average
  10. // quarterly sales for each division, and then displays the
  11. // results.
  12. //
  13. // ----------------------------------------------
  14. // INPUT
  15. // For each division:
  16. // name
  17. // first-quarter sales
  18. // second-quarter sales
  19. // third-quarter sales
  20. // fourth-quarter sales
  21. //
  22. // PROCESSING
  23. // For each division:
  24. // total = q1 + q2 + q3 + q4
  25. // average = total / 4
  26. //
  27. // OUTPUT
  28. // For each division, display:
  29. // Division Name
  30. // Q1, Q2, Q3, Q4 Sales
  31. // Total Annual Sales
  32. // Average Quarterly Sales
  33. //
  34. // ----------------------------------------------
  35.  
  36. #include <iostream>
  37. #include <iomanip>
  38. #include <string>
  39. using namespace std;
  40.  
  41. // ----------------------------------------------
  42. // Structure to hold division sales data
  43. // ----------------------------------------------
  44. struct DivisionSales {
  45. string name; // Division name (East, West, North, South)
  46. double q1; // First-quarter sales
  47. double q2; // Second-quarter sales
  48. double q3; // Third-quarter sales
  49. double q4; // Fourth-quarter sales
  50. double total; // Total annual sales
  51. double average; // Average quarterly sales
  52. };
  53.  
  54. // ----------------------------------------------
  55. // Function Prototypes
  56. // ----------------------------------------------
  57. void getSales(DivisionSales &div);
  58. void calcSales(DivisionSales &div);
  59. void displayDivision(const DivisionSales &div);
  60.  
  61. // ----------------------------------------------
  62. // main
  63. // ----------------------------------------------
  64. int main()
  65. {
  66. // Declarations for four divisions
  67. DivisionSales east;
  68. DivisionSales west;
  69. DivisionSales north;
  70. DivisionSales south;
  71.  
  72. east.name = "East";
  73. west.name = "West";
  74. north.name = "North";
  75. south.name = "South";
  76.  
  77. cout << fixed << setprecision(2);
  78.  
  79. // Get input for each division
  80. getSales(east);
  81. getSales(west);
  82. getSales(north);
  83. getSales(south);
  84.  
  85. // Calculate totals and averages
  86. calcSales(east);
  87. calcSales(west);
  88. calcSales(north);
  89. calcSales(south);
  90.  
  91. // Output results
  92. cout << "\nCORPORATE SALES REPORT\n";
  93. cout << "----------------------------------------\n";
  94. displayDivision(east);
  95. displayDivision(west);
  96. displayDivision(north);
  97. displayDivision(south);
  98.  
  99. return 0;
  100. }
  101.  
  102. // ----------------------------------------------
  103. // getSales
  104. // Prompts user for quarterly sales for one division.
  105. // Performs input validation: no negative numbers.
  106. // ----------------------------------------------
  107. void getSales(DivisionSales &div)
  108. {
  109. cout << "\nEnter sales for the " << div.name << " division.\n";
  110.  
  111. // Q1
  112. do {
  113. cout << " First-quarter sales: $";
  114. cin >> div.q1;
  115. if (div.q1 < 0)
  116. cout << " Error: sales cannot be negative.\n";
  117. } while (div.q1 < 0);
  118.  
  119. // Q2
  120. do {
  121. cout << " Second-quarter sales: $";
  122. cin >> div.q2;
  123. if (div.q2 < 0)
  124. cout << " Error: sales cannot be negative.\n";
  125. } while (div.q2 < 0);
  126.  
  127. // Q3
  128. do {
  129. cout << " Third-quarter sales: $";
  130. cin >> div.q3;
  131. if (div.q3 < 0)
  132. cout << " Error: sales cannot be negative.\n";
  133. } while (div.q3 < 0);
  134.  
  135. // Q4
  136. do {
  137. cout << " Fourth-quarter sales: $";
  138. cin >> div.q4;
  139. if (div.q4 < 0)
  140. cout << " Error: sales cannot be negative.\n";
  141. } while (div.q4 < 0);
  142. }
  143.  
  144. // ----------------------------------------------
  145. // calcSales
  146. // Computes total and average for one division.
  147. // ----------------------------------------------
  148. void calcSales(DivisionSales &div)
  149. {
  150. div.total = div.q1 + div.q2 + div.q3 + div.q4;
  151. div.average = div.total / 4.0;
  152. }
  153.  
  154. // ----------------------------------------------
  155. // displayDivision
  156. // Displays all data for one division.
  157. // ----------------------------------------------
  158. void displayDivision(const DivisionSales &div)
  159. {
  160. cout << "\nDivision: " << div.name << endl;
  161. cout << " Q1 Sales: $" << div.q1 << endl;
  162. cout << " Q2 Sales: $" << div.q2 << endl;
  163. cout << " Q3 Sales: $" << div.q3 << endl;
  164. cout << " Q4 Sales: $" << div.q4 << endl;
  165. cout << " Total Annual Sales : $" << div.total << endl;
  166. cout << " Average Quarterly Sale: $" << div.average << endl;
  167. }
  168.  
Success #stdin #stdout 0.01s 5288KB
stdin
10000
12000
9000
15000
14000
16000
13000
17000
8000
9500
10200
11000
20000
21000
20500
23000
stdout
Enter sales for the East division.
  First-quarter  sales: $  Second-quarter sales: $  Third-quarter  sales: $  Fourth-quarter sales: $
Enter sales for the West division.
  First-quarter  sales: $  Second-quarter sales: $  Third-quarter  sales: $  Fourth-quarter sales: $
Enter sales for the North division.
  First-quarter  sales: $  Second-quarter sales: $  Third-quarter  sales: $  Fourth-quarter sales: $
Enter sales for the South division.
  First-quarter  sales: $  Second-quarter sales: $  Third-quarter  sales: $  Fourth-quarter sales: $
CORPORATE SALES REPORT
----------------------------------------

Division: East
  Q1 Sales: $10000.00
  Q2 Sales: $12000.00
  Q3 Sales: $9000.00
  Q4 Sales: $15000.00
  Total Annual Sales   : $46000.00
  Average Quarterly Sale: $11500.00

Division: West
  Q1 Sales: $14000.00
  Q2 Sales: $16000.00
  Q3 Sales: $13000.00
  Q4 Sales: $17000.00
  Total Annual Sales   : $60000.00
  Average Quarterly Sale: $15000.00

Division: North
  Q1 Sales: $8000.00
  Q2 Sales: $9500.00
  Q3 Sales: $10200.00
  Q4 Sales: $11000.00
  Total Annual Sales   : $38700.00
  Average Quarterly Sale: $9675.00

Division: South
  Q1 Sales: $20000.00
  Q2 Sales: $21000.00
  Q3 Sales: $20500.00
  Q4 Sales: $23000.00
  Total Annual Sales   : $84500.00
  Average Quarterly Sale: $21125.00