2012 Climb Club
<< 2013 SkyView | APQuestionsTrailIndex | 2012 RetroBug >>
Click here to see the questions from 2012
ClimbInfo.java
public class ClimbInfo
{
/** Creates a ClimbInfo object with name peakName and time climbTime.
* @param peakName the name of the mountain peak
* @param climbTime the number of minutes taken to complete the climb
*/
private String name;
private int time;
public ClimbInfo(String peakName, int climbTime)
{
name=peakName;
time=climbTime;
}
/** @return the name of the mountain peak */
public String getName()
{ return name; }
/** @return the number of minutes taken to complete the climb */
public int getTime()
{ return time; }
// There may be instance variables, constructors, and methods that are not shown.
}
ClimbingClub.java
import java.util.ArrayList;
import java.util.List;
public class ClimbingClub
{
/** The list of climbs completed by members of the club.
* Guaranteed not to be null. Contains only non-null references. */
private List<ClimbInfo> climbList;
/** Creates a new ClimbingClub object. */
public ClimbingClub()
{ climbList = new ArrayList<ClimbInfo>(); }
/** Adds a new climb with name peakName and time climbTime to the list of climbs.
* @param peakName the name of the mountain peak climbed
* @param climbTime the number of minutes taken to complete the climb
*/
public void addClimbPartA(String peakName, int climbTime)
{
/* to be implemented in part (a) with ClimbInfo objects in the order they were added */
}
public void addClimbPartB(String peakName, int climbTime)
{
/* to be implemented in part (b) with ClimbInfo objects in alphabetical order by name */
}
/** @return the number of distinct names in the list of climbs */
public int distinctPeakNames()
{
if (climbList.size() == 0)
{
return 0;
}
ClimbInfo currInfo = climbList.get(0);
String prevName = currInfo.getName();
String currName = null;
int numNames = 1;
for (int k = 1; k < climbList.size(); k++)
{
currInfo = climbList.get(k);
currName = currInfo.getName();
if (prevName.compareTo(currName) != 0)
{
numNames++;
prevName = currName;
}
}
return numNames;
}
// There may be instance variables, constructors, and methods that are not shown.
public String toString()
{
String s1="", s2="";
for (ClimbInfo c:climbList){
s1=s1+String.format("[ %9s ]", c.getName());
s2=s2+String.format("[ %9d ]", c.getTime());
}
return s1+"\n"+s2;
}
}
ClimbingClubTester.java
public class ClimbingClubTester
{
public static void main(String[] args)
{
ClimbingClub hikerClub = new ClimbingClub();
hikerClub.addClimbPartA("Monadnock", 274);
hikerClub.addClimbPartA("Whiteface", 301);
hikerClub.addClimbPartA("Algonquin", 225);
hikerClub.addClimbPartA("Monadnock", 344);
System.out.println("Part A - should look like");
System.out.println("[ Monadnock ][ Whiteface ][ Algonquin ][ Monadnock ]");
System.out.println("[ 274 ][ 301 ][ 225 ][ 344 ]");
System.out.println("Your code produces:");
System.out.print(hikerClub+"\ndistinctPeakNames returns ");
System.out.println(hikerClub.distinctPeakNames()+"\n");
hikerClub = new ClimbingClub();
hikerClub.addClimbPartB("Monadnock", 274);
hikerClub.addClimbPartB("Whiteface", 301);
hikerClub.addClimbPartB("Algonquin", 225);
hikerClub.addClimbPartB("Monadnock", 344);
System.out.println("Part B - should look like");
System.out.println("[ Algonquin ][ Monadnock ][ Monadnock ][ Whiteface ]");
System.out.println("[ 225 ][ 344 ][ 274 ][ 301 ]");
System.out.println("or ");
System.out.println("[ Algonquin ][ Monadnock ][ Monadnock ][ Whiteface ]");
System.out.println("[ 225 ][ 274 ][ 344 ][ 301 ]");
System.out.println("Your code produces:");
System.out.print(hikerClub+"\ndistinctPeakNames returns ");
System.out.println(hikerClub.distinctPeakNames()+"\n");
}
}
