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

#include<iostream> #include<fstream> #include<cstdlib> #include<cctype> using na

ID: 3617459 • Letter: #

Question

#include<iostream> #include<fstream> #include<cstdlib> #include<cctype>
using namespace std; int digit_to_int(char c); class Money {   public:    friend istream& operator>>(istream& ins, Money& amount);    friend ostream& operator<<(ostream& outs, const Money& amount);    friend bool operator<(const Money& left_side,         const Money& right_side);    friend bool operator<=(const Money& left_side,       const Money& right_side);    friend bool operator>(const Money& left_side,       const Money& right_side);    friend bool operator>=(const Money& left_side,       constMoney& right_side);    Money(long dollars);    Money(long dollars,intcents);    Money();    doubleget_value()const;
  private:    long all_cents; };   Money::Money(long dollars,int cents) {    if(dollars*cents<0)    {    cout <<"Illegal values fordollars and cents. ";    exit(1);    }    all_cents = dollars * 100+cents; }   Money::Money(long dollars) {   all_cents=dollars*100; } Money::Money() {   all_cents=0; } double Money::get_value() const {   return all_cents*0.01; } istream& operator >>(istream& ins,Money& amount) {    char one_char, decimal_point, digit1,digit2;    long dollars;    int cents;    bool negative;    ins>>one_char;    if(one_char=='-')    {    negative=true;    }    ins>>dollars>>decimal_point>>digit1>>digit2;    if(one_char!='$'||decimal_point!='.'||!isdigit(digit1)||!isdigit(digit2))    {    cout <<"Error illegalform of money input. ";    exit(1);    }    cents=digit_to_int(digit1)*10+digit_to_int(digit2);    amount.all_cents=-amount.all_cents;    return ins;   }    ostream& operator <<(ostream&outs, const Money& amount) {    long positive_cents,dollars,cents;    positive_cents=labs(amount.all_cents);    dollars=positive_cents/100;    cents=positive_cents%100;    if(amount.all_cents<0)      outs<<"-$"<<dollars<<'.';    else      outs<<"$"<<dollars<<'.';    if(cents<10)    outs<<'0';    outs<<cents;    return outs;
}      bool operator <(const Money& left_side,const Money& right_side) {   return left_side.all_cents<right_side.all_cents; } bool operator <=(const Money& left_side, constMoney& right_side) {   return left_side.all_cents<=right_side.all_cents; } bool operator >(const Money& left_side, constMoney& right_side) {   return left_side.all_cents>right_side.all_cents; } bool operator >=(const Money& left_side, constMoney& right_side) {   return left_side.all_cents>=right_side.all_cents; } int digit_to_int(char d) {return d-48; } int main() {    Money amount;    ifstream in_stream;    ofstream out_stream;    in_stream.open("infile.dat");    if(in_stream.fail())    {    cout <<"Input file openingfailed. ";    exit(1);    }
   out_stream.open("outfile.dat");    if(out_stream.fail());    {    cout <<"Output file openingfailed. ";    exit(1);    }    in_stream>>amount;    out_stream<<amount<<"copiedfrom the file infile.dat . ";    cout<<amount<<"copied fromfile infile.dat . ";       in_stream.close();    out_stream.close();        system("pause");    return 0; } #include<iostream> #include<fstream> #include<cstdlib> #include<cctype>
using namespace std; int digit_to_int(char c); class Money {   public:    friend istream& operator>>(istream& ins, Money& amount);    friend ostream& operator<<(ostream& outs, const Money& amount);    friend bool operator<(const Money& left_side,         const Money& right_side);    friend bool operator<=(const Money& left_side,       const Money& right_side);    friend bool operator>(const Money& left_side,       const Money& right_side);    friend bool operator>=(const Money& left_side,       constMoney& right_side);    Money(long dollars);    Money(long dollars,intcents);    Money();    doubleget_value()const;
  private:    long all_cents; };   Money::Money(long dollars,int cents) {    if(dollars*cents<0)    {    cout <<"Illegal values fordollars and cents. ";    exit(1);    }    all_cents = dollars * 100+cents; }   Money::Money(long dollars) {   all_cents=dollars*100; } Money::Money() {   all_cents=0; } double Money::get_value() const {   return all_cents*0.01; } istream& operator >>(istream& ins,Money& amount) {    char one_char, decimal_point, digit1,digit2;    long dollars;    int cents;    bool negative;    ins>>one_char;    if(one_char=='-')    {    negative=true;    }    ins>>dollars>>decimal_point>>digit1>>digit2;    if(one_char!='$'||decimal_point!='.'||!isdigit(digit1)||!isdigit(digit2))    {    cout <<"Error illegalform of money input. ";    exit(1);    }    cents=digit_to_int(digit1)*10+digit_to_int(digit2);    amount.all_cents=-amount.all_cents;    return ins;   }    ostream& operator <<(ostream&outs, const Money& amount) {    long positive_cents,dollars,cents;    positive_cents=labs(amount.all_cents);    dollars=positive_cents/100;    cents=positive_cents%100;    if(amount.all_cents<0)      outs<<"-$"<<dollars<<'.';    else      outs<<"$"<<dollars<<'.';    if(cents<10)    outs<<'0';    outs<<cents;    return outs;
}      bool operator <(const Money& left_side,const Money& right_side) {   return left_side.all_cents<right_side.all_cents; } bool operator <=(const Money& left_side, constMoney& right_side) {   return left_side.all_cents<=right_side.all_cents; } bool operator >(const Money& left_side, constMoney& right_side) {   return left_side.all_cents>right_side.all_cents; } bool operator >=(const Money& left_side, constMoney& right_side) {   return left_side.all_cents>=right_side.all_cents; } int digit_to_int(char d) {return d-48; } int main() {    Money amount;    ifstream in_stream;    ofstream out_stream;    in_stream.open("infile.dat");    if(in_stream.fail())    {    cout <<"Input file openingfailed. ";    exit(1);    }
   out_stream.open("outfile.dat");    if(out_stream.fail());    {    cout <<"Output file openingfailed. ";    exit(1);    }    in_stream>>amount;    out_stream<<amount<<"copiedfrom the file infile.dat . ";    cout<<amount<<"copied fromfile infile.dat . ";       in_stream.close();    out_stream.close();        system("pause");    return 0; }

Explanation / Answer

x.X