Source of SalesReporter.java


  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: }