Source of TimeBook.java


  1: 
  2: /**
  3:  Class for a one-week record of the time worked by 
  4:  each employee. Uses a five-day week (Mon.-Fri.). 
  5:  main has a sample application.
  6: */
  7: public class TimeBook
  8: {
  9:     private int numberOfEmployees;
 10:     private int[][] hours; 
 11:         //hours[i][j] has the hours for employee j on day i.
 12:     private int[] weekHours; 
 13:         //weekHours[i] has the week’s hours worked for 
 14:         //employee i+1.
 15:     private int[] dayHours; 
 16:         //dayHours[i] has the total hours worked by all
 17:         //employees on day i. Monday is 0, Tuesday 1, etc.
 18:         
 19:     /**
 20:      Reads hours worked for each employee on each day of
 21:      the week into the two-dimensional array hours. (The method
 22:      for input is just a stub in this preliminary version.)
 23:      Computes the total weekly hours for each employee and
 24:      the total daily hours for all employees combined.
 25:     */
 26:     public static void main(String[] args)
 27:     {
 28:         TimeBook book = new TimeBook(3);
 29:         book.setHours( );
 30:         book.update( );
 31:         book.showTable( );
 32:     }
 33:     
 34:     public TimeBook(int theNumberOfEmployees)
 35:     {
 36:         numberOfEmployees = theNumberOfEmployees; 
 37:         hours = new int[5][numberOfEmployees];
 38:         //the 5 is for the 5 days Monday through Friday.
 39:         weekHours = new int[numberOfEmployees];
 40:         dayHours = new int[5];
 41:     }
 42: 
 43:     public void setHours( ) //This is just a stub.
 44:     {
 45:         hours[0][0] = 8;  hours[0][1] = 0;  hours[0][2] = 9;
 46:         hours[1][0] = 8;  hours[1][1] = 0;  hours[1][2] = 9;
 47:         hours[2][0] = 8;  hours[2][1] = 8;  hours[2][2] = 8;
 48:         hours[3][0] = 8;  hours[3][1] = 8;  hours[3][2] = 4;
 49:         hours[4][0] = 8;  hours[4][1] = 8;  hours[4][2] = 8;
 50:     }
 51:     
 52:     public void update( )
 53:     {
 54:         computeWeekHours( );
 55:         computeDayHours( );
 56:     }
 57:     
 58:     private void computeWeekHours( )
 59:     {
 60:         int dayNumber, employeeNumber, sum;
 61:         for (employeeNumber = 1;
 62:               employeeNumber <= numberOfEmployees; employeeNumber++)
 63:         {//Process one employee:
 64:             sum = 0;
 65:             for(dayNumber = 0; dayNumber < 5; dayNumber++)
 66:                 sum = sum + hours[dayNumber][employeeNumber - 1];
 67:                 //sum contains the sum of all the hours worked
 68:                 //in one week by employee with number employeeNumber.
 69:             weekHours[employeeNumber - 1] = sum;
 70:         }
 71:     }
 72:     
 73:     private void computeDayHours( )
 74:     {
 75:         int dayNumber, employeeNumber, sum;
 76:         for (dayNumber = 0; dayNumber < 5; dayNumber++)
 77:         {//Process one day (for all employees):
 78:             sum = 0; 
 79:             for (employeeNumber = 1;
 80:                           employeeNumber <= numberOfEmployees;
 81:                                           employeeNumber++)
 82:                 sum = sum + hours[dayNumber][employeeNumber - 1];
 83:                 //sum contains the sum of all hours worked by all 
 84:                 //employees on day dayNumber.
 85:             dayHours[dayNumber] = sum; 
 86:         }
 87:     }
 88: 
 89:     public void showTable( )
 90:     {
 91:         int row, column;
 92:         System.out.print("Employee  ");
 93:         for (column = 0; column < numberOfEmployees; column++)
 94:             System.out.print((column + 1) + "   ");
 95:         System.out.println("Totals");
 96:         System.out.println( );
 97:         for (row = 0; row < 5; row++)
 98:         {
 99:             System.out.print(day(row) + " ");   
100:             for (column = 0; column < hours[row].length; column++)
101:                 System.out.print(hours[row][column] + "   ");
102:             System.out.println(dayHours[row]);
103:         }
104:         System.out.println( );
105:         System.out.print("Total  =  "); 
106:         for (column = 0; column < numberOfEmployees; column++)
107:             System.out.print(weekHours[column] + "  ");
108:         System.out.println( );
109:     }
110:     
111:     //Converts 0 to "Monday", 1 to "Tuesday" etc.
112:     //Blanks used to make all strings the same length.
113:     private String day(int dayNumber)
114:     {
115:         String dayName = null;
116:         switch (dayNumber)
117:         {
118:             case 0:
119:                 dayName = "Monday   ";
120:                 break;
121:             case 1:
122:                 dayName = "Tuesday  ";
123:                 break;
124:             case 2: 
125:                 dayName = "Wednesday";
126:                 break;
127:             case 3:
128:                 dayName = "Thursday ";
129:                 break;
130:             case 4:
131:                 dayName = "Friday   ";
132:                 break;
133:             default:
134:                 System.out.println("Fatal Error.");
135:                 System.exit(0);
136:                 break;
137:        }
138:        return dayName;
139:     }
140: }