2006 Customer

<< 2006TaxableItem | APQuestionsTrailIndex | 2005 Hotel >>

Question from the College Board

Customer

public class Customer
{
  private String name;
  private int idNum;

  // constructs a Customer with given name and ID number
  public Customer(String name, int idNum)
  { this.name = name; this.idNum = idNum; }

  // returns the customer's name
  public String getName()
  { return name; }

  // returns the customer's id
  public int getID()
  { return idNum; }

  // returns 0 when this customer is equal to other;
  //   a positive integer when this customer is greater than other;
  //   a negative integer when this customer is less than other
  public int compareCustomer(Customer other)
  {
   //part a here
  }

  public String toString()
  {
    return name + " " + idNum;
  }
}

Company

public class Company
{
  /*** Part (b) ***/

  // fills result with customers merged from the
  // beginning of list1 and list2;
  // result contains no duplicates and is sorted in
  // ascending order by customer
  // precondition:  result.length > 0;
  //                list1.length >= result.length;
  //                list1 contains no duplicates;
  //                list2.length >= result.length;
  //                list2 contains no duplicates;
  //                list1 and list2 are sorted in
  //                ascending order by customer
  // postcondition: list1, list2 are not modified
  public static void prefixMerge(Customer[] list1,
                                 Customer[] list2,
                                 Customer[] result)
  {
       //part b here
  }
}

CustomerTester

public class CustomerTester
{
  public static void main(String[] args)
  {
    System.out.println("Part a:");
    Customer c1=new Customer("Smith", 1001);
    Customer c2=new Customer("Anderson", 1002);
    Customer c3=new Customer("Smith", 1003);

    System.out.println(c1.compareCustomer(c1)+
    		"\t Should be 0");
    System.out.println(c1.compareCustomer(c2)+
	"\t Should be positve");
    System.out.println(c1.compareCustomer(c3)+
	"\t Should be negative");

    Customer[] list1 =
    {
      new Customer("Arthur", 4920),
      new Customer("Burton", 3911),
      new Customer("Burton", 4944),
      new Customer("Franz", 1692),
      new Customer("Horton", 9221),
      new Customer("Jones", 5554),
      new Customer("Miller", 9360),
      new Customer("Nguyen", 4339)
    };
    Customer[] list2 =
    {
      new Customer("Aaron", 1729),
      new Customer("Baker", 2921),
      new Customer("Burton", 3911),
      new Customer("Dillard", 6552),
      new Customer("Jones", 5554),
      new Customer("Miller", 9360),
      new Customer("Noble", 3335),
    };
    Customer[] exp =
    {
      new Customer("Aaron", 1729),
      new Customer("Arthur", 4920),
      new Customer("Baker", 2921),
      new Customer("Burton", 3911),
      new Customer("Burton", 4944),
      new Customer("Dillard", 6552),
    };
    Customer[] result = new Customer[6];
    System.out.println("Part b:");

    Company.prefixMerge(list1, list2, result);
    for (int i=0;i<result.length;i++)
          System.out.println(result[i]+" (Should be "+exp[i]+")");
  }
}