Exercise 1 (Constructors) There are three constructors for the Money class that
ID: 3670268 • Letter: E
Question
Exercise 1 (Constructors) There are three constructors for the Money class that you will implement: one that has zero input parameters, one that has two and one has Money() // Initializes a money object with zero money Money (unsigned int d, unsigned int pennies) // Initializes a money object with d dollars and pennies cents // The pennies input could have value that exceeds a dollar // How you store the pennies is not specified. The number of dollars is determined // by the d input onljy Money (unsigned int dd, unsigned int q, unsigned int d, unsigned int n, unsigned int p) // Initializes a money object with exactly dd dollars, q quarters, d dimes, // n nickels and p pennies // Immediately after calling the constructors, getDollars should return dd, // getQuarters should return q, getDimes should return d, // getNickels should return n, and getPennies should return pExplanation / Answer
#include <bits/stdc++.h>
using namespace std;
class Money{
public:
unsigned int numDollars;
unsigned int numQuarters;
unsigned int numDimes;
unsigned int numNickels;
unsigned int numPennies;
Money(){
numDollars = 0;
numQuarters = 0;
numDimes = 0;
numNickels = 0;
numPennies = 0;
}
Money(unsigned int d, unsigned int p){
numDollars = d;
numQuarters = 0;
numDimes = 0;
numNickels = 0;
numPennies = p;
}
Money(unsigned int dd, unsigned int q, unsigned int d, unsigned int n, unsigned int p){
numDollars = dd;
numQuarters = q;
numDimes = d;
numNickels = n;
numPennies = p;
}
unsigned int getCents(){
return (25*numQuarters + 10*numDimes + 5*numNickels + numPennies);
}
void addMoney(Money m){
numDollars += m.numDollars;
numQuarters += m.numQuarters;
numDimes += m.numDimes;
numNickels += m.numNickels;
numPennies += m.numPennies;
}
void addDollars(unsigned int d){
numDollars += d;
}
void addQuarters(unsigned int q){
numQuarters += q;
}
void addDimes(unsigned int d){
numDimes += d;
}
void addNickels(unsigned int n){
numNickels += n;
}
void addPennies(unsigned int p){
numPennies += p;
}
void addCents(unsigned int c){
numQuarters += c/25;
c %= 25;
numDimes += c/10;
c %= 10;
numNickels += c/5;
c %= 5;
numPennies += c;
}
void leastCoins(){
int res = getCents();
addDollars(res/100);
res %= 100;
addCents(res);
}
int numberofCoins(){
return numDollars + numQuarters + numDimes + numNickels + numPennies;
}
};
Money* makechange(Money& cost, Money& paid){
int to_pay = 100*cost.numDollars + cost.getCents();
int given = 100*paid.numDollars + paid.getCents();
if (to_pay > given) return NULL;
int get_back = given - to_pay;
Money m(get_back/100,get_back%100);
return &m;
}
int main(){
Money cost(5,6,3,4,5);
Money paid(10,3,6,7,1);
Money* ret = makechange(cost,paid);
return 0;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.