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

Write in C++ another overloaded operator to go in the program that has Treasury.

ID: 3552621 • Letter: W

Question

Write in C++ another overloaded operator to go in the program that has Treasury. Overload the forward slash /   so that in the main program, you can declare sale to be of type Treasury, and commission to be of type Treasury, and commispctage to be of type double, writing

Treasury sale, commission;

                  double commisspctage;

                  commisspctage = 6.25;

cin>> sale;

                  cout<<sale<<" is value of sale. ";

                  commission = sale/commisspctage;

                  cout<<"The commission is "<<commission<<endl;


Write in C++ another overloaded operator to go in the program that has Treasury. Overload the forward slash /   so that in the main program, you can declare sale to be of type Treasury, and commission to be of type Treasury, and commispctage to be of type double, writing

Treasury sale, commission;

                  double commisspctage;

                  commisspctage = 6.25;

cin>> sale;

                  cout<<sale<<" is value of sale. ";

                  commission = sale/commisspctage;

                  cout<<"The commission is "<<commission<<endl;

to have it calculate the commission at 6.25 percent of the sale. (Notice that 6.25 is the percent as given in the main program. Within your function code of the overloaded operator you will need to convert that to a decimal fraction. Also in the function code, use static_cast to avoid mode-mixing between int and double

variables. Note that you will be returning something of type Treasury.

And while you're working on the program, please improve the << operator function code so it will handle outputting single-digit cents correctly.

NOTE: Test your forward slash calculation using at least these sets of data for the sale

100 dollars 0 cents

987 dollars 89 cents

23 dollars 99 cents

1359 dollars 99 cents


And CHECK the output by hand to make sure it gives you the correct results.



//
#include <iostream>
using namespace std;
class Treasury
{
public:
    Treasury(); // default constructor to initialize to 10 dollars and 0 cents
    Treasury(int wholedollars);    // constructor toinitialize the dollar part only
    Treasury(int dollaramt, int centsamt);   // costructor to initialize both parts
    friend Treasury operator + (const Treasury& amt1, const Treasury& amt2);
    friend ostream& operator <<(ostream& outs, const Treasury& thevalue);
    friend istream& operator >>(istream& ins, Treasury& avalue);
    friend bool operator == (const Treasury& oneside, const Treasury& otherside);
private:
    int dollars, cents;
};
int main()
{
    Treasury billfold(25,50), pocket(3,48), total, check(28,98);
    total = billfold + pocket;
    if(total == check)
        cout<<"The total amount is "<<total<<endl;    // where second << is overloaded
    else
        cout<<"Something went wrong. ";
    // add an overload of / so that sale/commisspctage calculates the commission where commisspctage of the sale is, say, 6.25 percent   
return 0;
}
Treasury::Treasury() // default constructor to initialize to 10 dollars and 0 cents
{
    dollars = 10;
    cents = 0;
}
Treasury::Treasury(int wholedollars)    // constructor toinitialize the dollar part only
{
    dollars = wholedollars;
}
Treasury::Treasury(int dollaramt, int centsamt)   // costructor to initialize both parts
{
    dollars = dollaramt;
    cents = centsamt;
}
Treasury operator + (const Treasury& amt1, const Treasury& amt2)
{
    int totdollars, totcents;
    Treasury result;
    totdollars = amt1.dollars + amt2.dollars;
    totcents = amt1.cents + amt2.cents;
    if(totcents >= 100)
    {
        totdollars++;
        totcents = totcents % 100;
    }
    result.dollars = totdollars;
    result.cents = totcents;
    return result;
}
ostream& operator <<(ostream& outs, const Treasury& thevalue)
{
    outs<<"$"<<thevalue.dollars<<"."<<thevalue.cents;
    return outs;
}
istream& operator >>(istream& ins, Treasury& avalue)   // note: don't use const here
{
    ins>>avalue.dollars>>avalue.cents;
    return ins;
}
bool operator == (const Treasury& oneside, const Treasury& otherside)
{
    if((oneside.dollars == otherside.dollars) && (oneside.cents == otherside.cents))
        return true;
    else
        return false;
}

Explanation / Answer

I can help you with this problem. Contact me at omerkhan.nu@gmail.com

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