University of Toronto - Fall 2000
Department of Computer Science

Week 3 - CD Collection Example

Java Program

/**
 * This class models a CD collection.
 */
class CdCollection {
	private int numCopies;  // number of CDs in collection
	private int totalCost;  // total cost of CDs in collection

	/**
 	* Constructor - create a new CD collection object that
 	* has 'num' CDs, that have a price of 'cost.'
 	*/
	public CdCollection (int num, int cost) {
		numCopies = num;
		totalCost = cost;
	}

	/**
 	* addCds - purchase 'num' CDs, that have a
 	*         price of 'cost.'
 	*/
	public void addCds (int num, int cost) {
		numCopies = numCopies + num;
		totalCost = totalCost + cost;
	}

	/**
 	* print - print the number of CDs, cost, and
 	*         average price per CD.
 	*/
	public void print() {
		System.out.println ("*************");
		System.out.println ("Number of CDs: " +
						numCopies);
		System.out.println ("Value of collection: " +
                				totalCost);
		System.out.println ("Average cost per CD: " +
                				averageCost());
	}

	/**
 	* averageCost - calculate and return the cost per CD.
 	*/
	private int averageCost () {
		return totalCost/numCopies;
	}
}

/**
 * This class manages a single CD collection.
 */
public class Tunes {
	public static void main(String[] args) {
		CdCollection music = new CdCollection (5, 60);

		music.addCds (1, 10);
		music.addCds (3, 40);
		music.addCds (2, 20);
		music.print ();

		music.addCds (2, 30);
		music.addCds (4, 50);
		music.print ();
	}
}

Output

*************
Number of CDs: 11
Value of collection: 130
Average cost per CD: 11
*************
Number of CDs: 17
Value of collection: 210
Average cost per CD: 12

Memory Model