On 12 Oct 2005 08:01:29 -0700, "Willing 2 Learn"
<janetjoyann100@yahoo.com> wrote:
[color=blue]
>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>[/color]
#include <iostream> /* WITHOUT the H */
Including STL headers with .h ending is deprecated and can lead to
many problems.
[color=blue]
>void main()[/color]
int main()
The C++ standard requires that main() return int.
[color=blue]
>{
> 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);[/color]
Should be:
Currency add(Currency b) const;
Do you know why? You need to know...
[color=blue]
> Currency sub(Currency b);
> Currency multiply(double d);
> double calc(Currency s);
> double calc2(Currency f);
> void show(void);[/color]
void show() const;
[color=blue]
>};
>Class definition
>#include "jahcurrency.h"
>#include <iomanip.h>
>#include <math.h>
>#include <iostream.h>[/color]
[color=blue]
>#include <iomanip>
>#include <iostream>[/color]
You could include <cmath> but then the names would have to be in
namespace std.
[color=blue]
>
>char sign='$';
>
>
>Currency::Currency()
>{
> x=0;[/color]
Where is x declared? What about your member variable cents??
[color=blue]
>
>}
>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;[/color]
???
You can't return anything from a constructor.
And you throw away the second calculation, so what good is it?
[color=blue]
>}
>
>
>Currency::add(Currency b)[/color]
Should be:
Currency Currency::add(Currency b) const[color=blue]
>{
> Currency x;
> x.cents= x+ b.x;
>
> return x;
>}
>Currency::sub(Currency b)[/color]
Same as above...
[color=blue]
>{
> 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.[/color]
Did you try to compile this before posting?
I didn't think so...
--
Bob Hairgrove
NoSpamPlease@Home.com