Velocity Reviews > C++ > Currency Conversion using OO

# Currency Conversion using OO

Willing 2 Learn
Guest
Posts: n/a

 10-12-2005
I'm still having trouble getting my program to do arithmetic in
cents(keeping all #'s) then convert the answer in a format of dollars &
cents. The main program should add, subtract, scalar multiply(by int)&
show, have a constructor w/ & w/out arguments. Header file should have
private data & all 6 functions from above.Class definition file should
implement my ADT class.
What I have so far:
Main program
#include "jahcurrency.h"
#include <iostream.h>
void main()
{
Currency a(4,3);
Currency b(2,1);
Currency total;

total=a.add(b);
total.show();
total=a.sub(b);
total.show();
total=a.multiply(5);
total.show();
}
Header file
class Currency
{
private:
double cents;
public:
Currency();
Currency(int d,int c);
Currency add(Currency b);
Currency sub(Currency b);
Currency multiply(double d);
double calc(Currency s);
double calc2(Currency f);
void show(void);
};
Class definition
#include "jahcurrency.h"
#include <iomanip.h>
#include <math.h>
#include <iostream.h>

char sign='\$';

Currency::Currency()
{
x=0;

}
Currency::calc2(Currency f)
{

f=(x*100)-(x%100);

return f;
}
Currency::calc(Currency s)
{

s=(x%100);

return s;

}
Currency::Currency(int d, int c)
{

d=(x*100)-(x%100);
c=(x%100);

return d;

}

Currency::add(Currency b)
{
Currency x;
x.cents= x+ b.x;

return x;
}
Currency::sub(Currency b)
{
Currency x;
x.cents= x- b.x;

return x;
}
Currency::multiply(Currency d)
{
Currency x;
x.cents= x*d.x;

return x;
}

Currency::show()
{
cout<<sign<<d<<". "<<s<<endl;
}
How different would the program be if cents is in long then convert
ans. for each opeartion to dollars & cents ?
Your help would be appreciated in how to fix this problem.

osmium
Guest
Posts: n/a

 10-12-2005
"Willing 2 Learn" writes:

> I'm still having trouble getting my program to do arithmetic in
> cents(keeping all #'s) then convert the answer in a format of dollars &
> cents. The main program should add, subtract, scalar multiply(by int)&
> show, have a constructor w/ & w/out arguments. Header file should have
> private data & all 6 functions from above.Class definition file should
> implement my ADT class.
> What I have so far:
> Main program
> #include "jahcurrency.h"
> #include <iostream.h>
> void main()
> {
> Currency a(4,3);
> Currency b(2,1);
> Currency total;
>
> total=a.add(b);
> total.show();
> total=a.sub(b);
> total.show();
> total=a.multiply(5);
> total.show();
> }
> Header file
> class Currency
> {
> private:
> double cents;

Fatal flaw. Even if you get it to work it will not be usable. People are
very fussy about money and they want totals to add up to 100.0%. A double
is only an *approximation* of a real number.

Also, Currency is a bad name for the class. You have gone to great pains to
handle coins. In common usage currency is paper money. How about "Money"
as a name?

<anip>

Bob Hairgrove
Guest
Posts: n/a

 10-12-2005
On 12 Oct 2005 08:01:29 -0700, "Willing 2 Learn"
<(E-Mail Removed)> wrote:

>I'm still having trouble getting my program to do arithmetic in
>cents(keeping all #'s) then convert the answer in a format of dollars &
>cents. The main program should add, subtract, scalar multiply(by int)&
>show, have a constructor w/ & w/out arguments. Header file should have
>private data & all 6 functions from above.Class definition file should
>implement my ADT class.
> What I have so far:
>Main program
>#include "jahcurrency.h"
>#include <iostream.h>

#include <iostream> /* WITHOUT the H */

Including STL headers with .h ending is deprecated and can lead to
many problems.

>void main()

int main()

The C++ standard requires that main() return int.

>{
> Currency a(4,3);
> Currency b(2,1);
> Currency total;
>
> total=a.add(b);
> total.show();
> total=a.sub(b);
> total.show();
> total=a.multiply(5);
> total.show();
>}
>Header file
>class Currency
>{
> private:
> double cents;
> public:
> Currency();
> Currency(int d,int c);
> Currency add(Currency b);

Should be:
Currency add(Currency b) const;
Do you know why? You need to know...

> Currency sub(Currency b);
> Currency multiply(double d);
> double calc(Currency s);
> double calc2(Currency f);
> void show(void);

void show() const;

>};
>Class definition
>#include "jahcurrency.h"
>#include <iomanip.h>
>#include <math.h>
>#include <iostream.h>

>#include <iomanip>
>#include <iostream>

You could include <cmath> but then the names would have to be in
namespace std.

>
>char sign='\$';
>
>
>Currency::Currency()
>{
> x=0;

Where is x declared? What about your member variable cents??

>
>}
>Currency::calc2(Currency f)
>{
>
> f=(x*100)-(x%100);
>
>return f;
>}
>Currency::calc(Currency s)
>{
>
> s=(x%100);
>
>return s;
>
>}
>Currency::Currency(int d, int c)
>{
>
> d=(x*100)-(x%100);
> c=(x%100);
>
>return d;

???
You can't return anything from a constructor.
And you throw away the second calculation, so what good is it?

>}
>
>
>Currency::add(Currency b)

Should be:
Currency Currency::add(Currency b) const
>{
> Currency x;
> x.cents= x+ b.x;
>
> return x;
>}
>Currency::sub(Currency b)

Same as above...

>{
> Currency x;
> x.cents= x- b.x;
>
> return x;
>}
>Currency::multiply(Currency d)
>{
> Currency x;
> x.cents= x*d.x;
>
> return x;
>}
>
>
>Currency::show()
>{
> cout<<sign<<d<<". "<<s<<endl;
>}
>How different would the program be if cents is in long then convert
>ans. for each opeartion to dollars & cents ?
>Your help would be appreciated in how to fix this problem.

Did you try to compile this before posting?
I didn't think so...

--
Bob Hairgrove
http://www.velocityreviews.com/forums/(E-Mail Removed)

 Thread Tools

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are Off Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Willing 2 Learn C++ 0 10-12-2005 03:19 PM Willing 2 Learn C++ 3 10-11-2005 05:03 PM Just starting out C Programming 14 09-12-2005 02:38 AM Martyn Fewtrell ASP .Net 0 06-21-2005 03:59 PM powerranger ASP .Net Web Services 1 01-26-2004 06:57 AM

Advertisments