Before you keep reading...
Runestone Academy can only continue if we get support from individuals like you. As a student you are well aware of the high cost of textbooks. Our mission is to provide great books to you for free, but we ask that you consider a $10 donation, more if you can or less if $10 is a burden.
Before you keep reading...
Making great stuff takes time and $$. If you appreciate the book you are reading now and want to keep quality materials free for other students please consider a donation to Runestone Academy. We ask that you consider a $10 donation, but if you can give more thats great, if $10 is too much for your budget we would be happy with whatever you can afford as a show of support.
Free Response - CookieOrder A¶
The following is a free response question from 2010. It was question 1 on the exam. You can see all the free response questions from past exams at https://apstudents.collegeboard.org/courses/ap-computer-science-a/free-response-questions-by-year.
Question 1. An organization raises money by selling boxes of cookies. A cookie order specifies the variety of cookie and the number of boxes ordered. The declaration of the CookieOrder
class is shown below.
public class CookieOrder
{
/** Constructs a new CookieOrder object */
public CookieOrder(String variety, int numBoxes)
{ /* implementation not shown */ }
/** @return the variety of cookie being ordered
*/
public String getVariety()
{ /* implementation not shown */ }
/** @return the number of boxes being ordered
*/
public int getNumBoxes()
{ /* implementation not shown */ }
// There may be instance variables, constructors, and methods that are not shown.
}
The MasterOrder
class maintains a list of the cookies to be purchased. The declaration of the MasterOrder
class is shown below.
public class MasterOrder
{
/** The list of all cookie orders */
private List<CookieOrder> orders;
/** Constructs a new MasterOrder object */
public MasterOrder()
{ orders = new ArrayList<CookieOrder>(); }
/** Adds theOrder to the master order.
* @param theOrder the cookie order to add to the master order
*/
public void addOrder(CookieOrder theOrder)
{ orders.add(theOrder); }
/** @return the sum of the number of boxes of all of the cookie orders
*/
public int getTotalBoxes()
{ /* to be implemented in part (a) */ }
// There may be instance variables, constructors, and methods that are not shown.
}
Part a.
The getTotalBoxes
method computes and returns the sum of the number of boxes of all cookie orders. If there are no cookie orders in the master order, the method returns 0.
How to Solve This¶
You will need to loop through each Cookie Order, since there are more than one. What type of loop will you use?
How will you continuously count the amount of boxes? You will need a variable to hold that data.
The method has a return type; what will you return?
The Algorithm¶
The method getTotalBoxes below contains the correct code for one solution to this problem, but it is mixed up. Drag the needed code from the left to the right and put them in order with the correct indention so that the code would work correctly.
public int getTotalBoxes() { --- int sum = 0; --- for (CookieOrder co : this.orders) { --- sum += co.getNumBoxes(); --- } // end for --- return sum; --- } // end method
Solve Part A¶
Complete the method getTotalBoxes
below.