2009 Battery Charger

<< 2009StockpileCritter | APQuestionsTrailIndex | 2009NumberTile >>

question

BatteryCharger.java

/**

 * 
 * @version 11 May 2009
 */
public class BatteryCharger  
{ 
  /** rateTable has 24 entries representing the charging costs for hours 0 through 23. */ 
  private int[] rateTable={50,60,160,60,80,100,100,120,150,150,150,200,40,240,220,220,200,200,180,180,140,100,80,60};   
  public BatteryCharger()
  {
      // There may be instance variables, constructors, and methods that are not shown. 
  }
  /** Determines the total cost to charge the battery starting at the beginning of startHour.  
   *  @param startHour the hour at which the charge period begins 
   *         Precondition: 0 <= startHour <= 23  
   *  @param chargeTime the number of hours the battery needs to be charged 
   *         Precondition: chargeTime > 0 
   *  @return the total cost to charge the battery 
   *  --made public for testing purposes
   */ 


  public int getChargingCost(int startHour, int chargeTime)  
  {  /* to be implemented in part (a) */  
     int result=0;

     return result;    
  } 

  /** Determines start time to charge the battery at the lowest cost for the given charge time.  
   *  @param chargeTime the number of hours the battery needs to be charged 
   *         Precondition: chargeTime > 0 
   *  @return an optimal start time, with 0 <= returned value <= 23  
   */ 
  public int getChargeStartTime(int chargeTime)  
  {  /* to be implemented in part (b) */  
      int bestTime=0;

      return bestTime;

  } 


} 

BatteryChargerTester.java


/**
 * Tests the BatteryCharger class
 * 
 * @author ChrisThiel
 * @version 11 May 2009
 */
public class BatteryChargerTester
{
	public static void main (String[] args)
	{
		BatteryCharger b = new BatteryCharger();
		System.out.println("Testing part a:");
		System.out.println("start at 12 for 1 hour (should be 40): "+b.getChargingCost(12,1));
		System.out.println("start at 0 for 2 hours (should be 110): "+b.getChargingCost(0,2));
		System.out.println("start at 22 for 7 hours (should be 550): "+b.getChargingCost(22,7));
		System.out.println("start at 22 for 30 hour (should be 3710): "+b.getChargingCost(22,30));
		System.out.println("Testing part b:");
		System.out.println("best for 1 hour(should be 12): "+b.getChargeStartTime(1));
		System.out.println("best for 2 hours(should be 23 or 0): "+b.getChargeStartTime(2));
		System.out.println("best for 3 hours(should be 23): "+b.getChargeStartTime(3));
		System.out.println("best for 4 hours(should be 22): "+b.getChargeStartTime(4));
                System.out.println("best for 7 hours(should be 22): "+b.getChargeStartTime(7));
		System.out.println("best for 30 hours(should be 22): "+b.getChargeStartTime(30));
	}
}