class Money { public: Money(int dollars = 0, int cents = 0); Money operator+(con
ID: 643454 • Letter: C
Question
class Money
{
public:
Money(int dollars = 0, int cents = 0);
Money operator+(const Money&) const;
Money operator-(const Money&) const;
Money& operator*(double);
Money& operator/(double);
friend istream& operator >>(istream&, Money&);
friend ostream& operator <<(ostream&, const Money&);
private:
int dollar;
int cents;
};
1-How to define all the member functions and friend functions of the Money class in Money.cpp.
2. Note that the value in 'cents' would never exceed 99, if so, adjust the amount in 'dollars'.
Explanation / Answer
//Money.h
#ifndef MONEY_H
#define MONEY_H
#include<iostream>
using namespace std;
class Money
{
public:
Money(int dollars = 0, int cents = 0);
//addition and subtraction of Money class
Money operator+(const Money&) const;
Money operator-(const Money&) const;
//Multiplication and division of Money class
Money& operator*(double);
Money& operator/(double);
friend ostream &operator<<( ostream &output, const Money &money );
friend istream &operator>>( istream &input, Money &money );
private:
int dollar;
int cents;
};
#endif MONEY_H
------------------------------------------------------------------------------------------------------------------------
//Money.cpp implemenataion file for Money.h class
#include<iostream>
#include<fstream>
#include<string>
#include "Money.h"
using namespace std;
//constructor of Money class
Money::Money(int dollars, int cents)
{
dollar=dollar;
cents=cents;
}
//Overload of addition + operator
Money Money::operator+(const Money &money) const
{
Money tempMoney;
tempMoney.dollar=dollar+money.dollar;
tempMoney.cents=cents+money.cents;
if(tempMoney.cents>99)
{
tempMoney.dollar=dollar+money.dollar+tempMoney.cents/100;
tempMoney.cents=money.cents%100;
}
else
tempMoney.cents=cents+money.cents;
return tempMoney;
}
//Overload of subtraction - operator
Money Money::operator - (const Money &money) const
{
Money tempMoney;
tempMoney.cents=cents-money.cents;
tempMoney.dollar=dollar-money.dollar;
return tempMoney;
}
//Multiplication of Money with a double value
Money& Money::operator*(double value)
{
Money tempMoney;
tempMoney.dollar=dollar*value;
tempMoney.cents=cents*value;
if(tempMoney.cents>99)
tempMoney.dollar+=tempMoney.cents/100;
tempMoney.cents=cents+ cents%100;
return tempMoney;
}
//Division of Money with a double value
Money& Money::operator/(double value)
{
Money tempMoney;
tempMoney.dollar=dollar/value;
tempMoney.cents=tempMoney.cents/value;
return tempMoney;
}
ostream &operator<<( ostream &output, const Money &money )
{
output << "Dollars : " << money.dollar << " Cents : " << money.cents;
return output;
}
istream &operator>>( istream &input, Money &money )
{
input >> money.dollar >> money.cents;
return input;
}
---------------------------------------------------------------------------------------------------------
//Tester c++ progrma
#include<iostream>
#include"Money.h"
using namespace std;
int main()
{
Money money;
cout<<"Enter dollar and cents: ";
cin>>money;
//print Money
cout<<money;
//add value to money
money= money+money;
cout<<" After addint money :"<<endl;
//print Money
cout<<money;
system("pause");
return 0;
}
------------------------------------------------------------------------------
Sample output:
Enter dollar and cents: 5 25
Dollars : 5 Cents : 25
After addint money :
Dollars : 10 Cents : 50
Hope this helps you..
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.