here is my fraction.h, nothing wrong and can compile
1 class Fraction {
2
3 private:
4 int num;
5 int denom;
6
7 public:
8 Fraction (void);
9 // Fraction(int,int);
10 Fraction Add(Fraction );
11 Fraction Subs(Fraction);
12 Fraction divide(Fraction);
13 Fraction multy(Fraction);
14 void set (int , int);
15 int GreatestCommonDivisor(int , int);
16 void Simplify();
17 void print();
18
19 ~Fraction();
20 };
and my fraction.cpp, this one give me compilation errors
1 #include <iostream>
2 #include <cstdlib>
3 #include <cmath>
4 #include "fraction.h"
5
6 using namespace std;
7
8 Fraction::Fraction (void)
9 {
10 num=0;
11 denom=1;
12 }
13
14 void Fraction::print()
15 {
16 cout << num << " " << denom << endl;
17 }
18
19 void Fraction::set(int n, int d)
20 {
21 num=n;
22 denom=d;
23 }
24
25 Fraction Fraction::Add (Fraction f)
26 {
27 Fraction result;
28 result.num=num*f.denom + denom*f.num;
29 result.denom=denom*f.denom;
30 result.Simplify();
31 return result;
32 }
33
34 Fraction Fraction::Subs(Fraction f)
35 {
36 Fraction result;
37 result.num=num*f.denom+ denom*f.num;
38 result.denom=denom*f.denom;
39 result.Simplify();
40 return result;
41 }
42
43 Fraction Fraction::divide(Fraction f)
44 {
45 Fraction result;
46 result.num=num*f.denom;
47 result.denom=denom*f.num;
48 result.Simplify();
49 return result;
50 }
51
52 Fraction Fraction::multy(Fraction f)
53 {
54 Fraction result;
55 result.num=num*f.num;
56 result.denom=denom*f.denom;
57 result.Simplify();
58 return result;
59 }
60
61 int Fraction::GreatestCommonDivisor(int a, int b)
62 {
63 int temp;
64 while(b) {
65 temp=b;
b=a%b;
67 a=temp;
68 }
69 return a;
70 }
71
72 void Fraction::Simplify()
73 {
74 int gcd, absNum=abs(num);
75 if(num != 0 && absNum !=1 && denom !=1) {
76 gcd = GreatestCommonDivisor (absNum, denom);
77 if (gcd > 1)
78 {
79 num =num/gcd;
80 denom=denom/gcd;
81 }
82 }
83 }
84
85 Fraction::~Fraction(void)
86 {
87 }
and my main.cpp, i am not sure how to implement and call the operators, did i do a right thing here? and also this one can't compile
1 #include <iostream>
2 #include <cstdlib>
3 #include "fraction.h"
4
5 using namespace std;
6
7 int main()
8 {
9 int x1, y1, x2, y2, op;
10
11 Fraction part1;
12 Fraction part2;
13
14 cin >> x1 >> y1 >> x2 >> y2 >> op >> endl;
15
16 part1.set(x1,y1);
17 part2.set(x2,y2);
18
19 switch (op)
20 {
21 case 0 : Fraction result(part1,part2);
22 result.Add;
23 result.print();
24
25 case 1 : Fraction result(part1, part2);
26 result.Subs;
27 result.print();
28
29 case 2 : Fraction result(part1,part2);
30 result.multy;
31 result.print();
32
33 case 3 : Fraction result(part1, part2);
34 result.divide;
35 result.print();
36
37 case 4 : cout << "End program" << endl;
38 }
39
40 }
thanks in advanced
This post has been edited by poirot: 01 February 2009 - 08:38 PM

New Topic/Question
Reply




MultiQuote





|