public class SalesReporter
1:
2: import java.util.*;
3:
4: /**
5: Program to generate sales report.
6: */
7: public class SalesReporter
8: {
9: private double highest;
10: private double average;
11: private SalesAssociate[] record;//The array object is
12: //created in getFigures.
13: private int numberOfAssociates; //Same as record.length
14:
15: public void getFigures( )
16: {
17: Scanner keyboard = new Scanner(System.in);
18: System.out.println("Enter number of sales associates:");
19: numberOfAssociates = keyboard.nextInt( );
20: record = new SalesAssociate[numberOfAssociates];
21: int i;
22: for (i = 0; i < numberOfAssociates; i++)
23: {
24: record[i] = new SalesAssociate( );
25: System.out.println("Enter data for associate " + (i + 1));
26: record[i].readInput( );
27: System.out.println( );
28: }
29: }
30:
31: /**
32: Computes the average and highest sales figures.
33: Precondition: There is at least one salesAssociate.
34: */
35: public void update( )
36: {
37: int i;
38: double nextSales = record[0].getSales( );
39: highest = nextSales;
40: double sum = nextSales;
41: for (i = 1; i < numberOfAssociates; i++)
42: {
43: nextSales = record[i].getSales( );
44: sum = sum + nextSales;
45: if (nextSales > highest)
46: highest = nextSales; //highest sales figure so far.
47: }
48: average = sum/numberOfAssociates;
49: }
50:
51: /**
52: Displays sales report on console screen.
53: */
54: public void displayResults( )
55: {
56: System.out.println("Average sales per associate is $" +
57: average);
58: System.out.println("The highest sales figure is $" + highest);
59: System.out.println( );
60: int i;
61: System.out.println("The following had the highest sales:");
62: for (i = 0; i < numberOfAssociates; i++)
63: {
64: double nextSales = record[i].getSales( );
65: if (nextSales == highest)
66: {
67: record[i].writeOutput( );
68: System.out.println("$" + (nextSales - average)
69: + " above the average.");
70: System.out.println( );
71: }
72: }
73: System.out.println("The rest performed as follows:");
74: for (i = 0; i < numberOfAssociates; i++)
75: {
76: double nextSales = record[i].getSales( );
77: if (record[i].getSales( ) != highest)
78: {
79: record[i].writeOutput( );
80: if (nextSales >= average)
81: System.out.println("$" + (nextSales - average)
82: + " above the average.");
83: else
84: System.out.println("$" + (average - nextSales)
85: + " below the average.");
86: System.out.println( );
87: }
88: }
89: }
90:
91: public static void main(String[] args)
92: {
93: SalesReporter clerk = new SalesReporter( );
94: clerk.getFigures( );
95: clerk.update( );
96: clerk.displayResults( );
97: }
98: }