Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Complete PiggyBank\'s implementation ( PiggyBank.cpp #include <iostream> #includ

ID: 3544106 • Letter: C

Question

Complete PiggyBank's implementation (PiggyBank.cpp


#include <iostream>

#include <string>

#include <cassert>

#include <cstdlib>

#include "PiggyBank.h"


// main() will be used for testing our PiggyBank class

int main() {

  // do not move this using statement

  using namespace std;


  // make three piggybank instances for us to test

  PiggyBank* default_bank = new PiggyBank();

  PiggyBank* small_bank = new PiggyBank(10,5,3,1);

  PiggyBank* big_bank = new PiggyBank(100,100,100,100);


  // // default_bank Initial State Tests // //

  assert("Default bank should be empty" &&

          default_bank->netTotal() == 0);

  assert("Default bank should not have pennies" &&

          default_bank->totalPennies() == 0);

  assert("Default bank should not have nickels" &&

          default_bank->totalNickels() == 0);

  assert("Default bank should not have dimes" &&

          default_bank->totalDimes() == 0);

  assert("Default bank should not have quarters" &&

          default_bank->totalQuarters() == 0);


  // default_bank Removing Coins Tests

  default_bank->removePennies(1);

  assert("Removing any coins shouldn't affect the state, it's empty" &&

          default_bank->totalPennies() == 0);

  default_bank->removeNickels(3);

  assert("Removing any coins shouldn't affect the state, it's empty" &&

          default_bank->totalNickels() == 0);

  default_bank->removeDimes(2);

  assert("Removing any coins shouldn't affect the state, it's empty" &&

          default_bank->totalDimes() == 0);

  default_bank->removeQuarters(1);

  assert("Removing any coins shouldn't affect the state, it's empty" &&

          default_bank->totalQuarters() == 0);


  // default_bank Adding Coins Tests

  default_bank->depositPennies(3);

  assert("Default bank should now have 3 pennies" &&

          default_bank->totalPennies() == 3);

  default_bank->depositNickels(2);

  assert("Default bank should now have 2 nickels" &&

          default_bank->totalNickels() == 2);

  default_bank->depositDimes(4);

  assert("Default bank should now have 4 dimes" &&

          default_bank->totalDimes() == 4);

  default_bank->depositQuarters(5);

  assert("Default bank should now have 5 quarters" &&

          default_bank->totalQuarters() == 5);


  // default_bank NetTotal Test

  assert("Default bank should have $1.78 inside" &&

          default_bank->netTotal() == 178);


  // default_bank Empty Test

  default_bank->empty();

  assert("Default bank should be empty again" &&

          default_bank->netTotal() == 0);


  // // small_bank Initial State Tests // //

  assert("Small bank should have 90 cents" &&

          small_bank->netTotal() == 90);

  assert("Small bank should have 10 pennies" &&

          small_bank->totalPennies() == 10);

  assert("Small bank should have 5 nickels" &&

          small_bank->totalNickels() == 5);

  assert("Small bank should have 3 dimes" &&

          small_bank->totalDimes() == 3);

  assert("Small bank should have 1 quarter" &&

          small_bank->totalQuarters() == 1);


  // small_bank Removing Coins Tests

  small_bank->removePennies(3);

  assert("Small bank should have 7 pennies" &&

          small_bank->totalPennies() == 7);

  small_bank->removeNickels(7);

  assert("Small bank should have 0 nickels" &&

          small_bank->totalNickels() == 0);

  small_bank->removeDimes(2);

  assert("Small bank should have 1 dime" &&

          small_bank->totalDimes() == 1);

  small_bank->removeQuarters(0);

  assert("Small bank should have 1 quarter" &&

          small_bank->totalQuarters() == 1);


  // small_bank Adding Coins Tests

  small_bank->depositPennies(3);

  assert("Small bank should now have 10 pennies" &&

          small_bank->totalPennies() == 10);

  small_bank->depositNickels(2);

  assert("Small bank should now have 2 nickels" &&

          small_bank->totalNickels() == 2);

  small_bank->depositDimes(4);

  assert("Small bank should now have 5 dimes" &&

          small_bank->totalDimes() == 5);

  small_bank->depositQuarters(9);

  assert("Small bank should now have 10 quarters" &&

          small_bank->totalQuarters() == 10);


  // small_bank NetTotal Test

  assert("Small bank should have $3.20 inside" &&

          small_bank->netTotal() == 320);


  // small_bank Empty Test

  small_bank->empty();

  assert("Small bank should be empty" &&

          small_bank->netTotal() == 0);


  // // big_bank Initial State Tests // //

  assert("Big bank should have $41.00" &&

          big_bank->netTotal() == 4100);

  assert("Big bank should have 100 pennies" &&

          big_bank->totalPennies() == 100);

  assert("Big bank should have 100 nickels" &&

          big_bank->totalNickels() == 100);

  assert("Big bank should have 100 dimes" &&

          big_bank->totalDimes() == 100);

  assert("Big bank should have 100 quarter" &&

          big_bank->totalQuarters() == 100);


  // big_bank Empty Test

  big_bank->empty();

  assert("Big bank should be empty" &&

          big_bank->netTotal() == 0);


  // big_bank Adding Coins Tests

  big_bank->depositPennies(25);

  assert("Big bank should now have 25 pennies" &&

          big_bank->totalPennies() == 25);

  big_bank->depositNickels(100);

  assert("Big bank should now have 100 nickels" &&

          big_bank->totalNickels() == 100);

  big_bank->depositDimes(200);

  assert("Big bank should now have 200 dimes" &&

          big_bank->totalDimes() == 200);

  big_bank->depositQuarters(400);

  assert("Big bank should now have 400 quarters" &&

          big_bank->totalQuarters() == 400);


  // big_bank NetTotal Test

  assert("Big bank should have $125.25 inside" &&

          big_bank->netTotal() == 12525);


  // big_bank Removing Coins Tests

  big_bank->removePennies(20);

  assert("Big bank should have 5 pennies" &&

          big_bank->totalPennies() == 5);

  big_bank->removeNickels(50);

  assert("Big bank should have 50 nickels" &&

          big_bank->totalNickels() == 50);

  big_bank->removeDimes(175);

  assert("Big bank should have 25 dimes" &&

          big_bank->totalDimes() == 25);

  big_bank->removeQuarters(364);

  assert("Big bank should have 36 quarters" &&

          big_bank->totalQuarters() == 36);


  // Will only get this far if all tests have passed successfully

  string congratz("");

  congratz.append("*************************************** ");

  congratz.append("*Congratz! All your tests have passed!* ");

  congratz.append("*************************************** ");

  cout << congratz;


  exit(EXIT_SUCCESS);

}


// write implementation of PiggyBank's functions here //

// To test, simply compile and run this file.         //

Explanation / Answer

check my ans at http://codepad.org/q3LlzrbY

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote