CS 1063, Fall 2005
|
The lectures for Week 9 had you do more work on the Purse class of the Week 8 lectures.
| File: Purse.java | File: PurseTest.java |
|---|---|
public class Purse {
// constants
final double CENT_VALUE = 0.01;
final double NICKEL_VALUE = 0.05;
final double DIME_VALUE = 0.10;
final double QUARTER_VALUE = 0.25;
final double DOLLAR_VALUE = 1.00;
final int PENNIES_PER_DOLLAR = 100;
// private data members
private int myCents;
private int myNickels;
private int myDimes;
private int myQuarters;
private int myDollars;
// Constructs an empty purse
public Purse(int cents, int nickels,
int dimes, int quarters, int dollars) {
myCents = cents;
myNickels = nickels;
myDimes = dimes;
myQuarters = quarters;
myDollars = dollars;
}
// Constructs an empty purse
public Purse() {
this(0, 0, 0, 0, 0);
}
// addCents: Add cents to the purse
// count: the number of cents to add
public void addCents(int count) {
myCents += count;
}
// addNickels: Add nickels to the purse
// count: the number of nickels to add
public void addNickels(int count) {
myNickels += count;
}
// addDimes: Add dimes to the purse
// count: the number of dimes to add
public void addDimes(int count) {
myDimes += count;
}
// addQuarters: Add quarters to purse
// count: the number of quarters to add
public void addQuarters(int count) {
myQuarters += count;
}
// addDollars: Add quarters to purse
// count: the number of dollars to add
public void addDollars(int count) {
myDollars += count;
}
// calculate the total value in purse
// return the sum of all coin values
public double calculateTotal() {
return CENT_VALUE * myCents +
NICKEL_VALUE * myNickels +
DIME_VALUE * myDimes +
QUARTER_VALUE * myQuarters +
DOLLAR_VALUE * myDollars;
}
private int toPennies() {
return (int)((calculateTotal() +
0.000000001)*PENNIES_PER_DOLLAR);
}
public int getNumDollars() {
return toPennies()/PENNIES_PER_DOLLAR;
}
public int getNumCents() {
return toPennies()%PENNIES_PER_DOLLAR;
}
public String toString() {
return "Purse: \n" +
" " + myCents + " Cents = " +
(myCents * CENT_VALUE) + "\n" +
" " + myNickels + " Nickels = " +
(myNickels * NICKEL_VALUE) + "\n" +
" " + myDimes + " Dimes = " +
(myDimes * DIME_VALUE) + "\n" +
" " + myQuarters + " Quarters = " +
(myQuarters * QUARTER_VALUE) + "\n" +
" " + myDollars + " Dollars = " +
(myDollars * DOLLAR_VALUE) + "\n";
}
}
| public class PurseTest {
public static void main(String[] args) {
Purse aPurse = new Purse(7, 3, 5, 2, 1);
aPurse.addCents(7);
aPurse.addNickels(3);
aPurse.addDimes(5);
aPurse.addQuarters(2);
aPurse.addDollars(1);
double totalValue = aPurse.calculateTotal();
System.out.println("aPurse, total value: " +
totalValue);
System.out.println(aPurse);
System.out.println("aPurse, # cents: " +
aPurse.getNumCents());
System.out.println("aPurse, # dollars: " +
aPurse.getNumDollars());
Purse bPurse = new Purse();
bPurse.addCents(14);
bPurse.addNickels(31);
bPurse.addDimes(7);
bPurse.addQuarters(5);
totalValue = bPurse.calculateTotal();
System.out.println("bPurse, total value: " +
totalValue);
System.out.println(bPurse);
System.out.println("bPurse, # cents: " +
bPurse.getNumCents());
System.out.println("bPurse, # dollars: " +
bPurse.getNumDollars());
}
}
Output of a run:
aPurse, total value: 4.4399999999999995
Purse:
14 Cents = 0.14
6 Nickels = 0.30000000000000004
10 Dimes = 1.0
4 Quarters = 1.0
2 Dollars = 2.0
aPurse, # cents: 44
aPurse, # dollars: 4
bPurse, total value: 3.64
Purse:
14 Cents = 0.14
31 Nickels = 1.55
7 Dimes = 0.7000000000000001
5 Quarters = 1.25
0 Dollars = 0.0
bPurse, # cents: 64
bPurse, # dollars: 3
|