edelossantos
asked on
class RationalNumber 1
Need to create a class RationalNumber(fractions) with the following capabilities:
* Create a constructor that prevents a 0 denominator in a fraction.
* Design the add, sub, mul, and division functions for this class.
* Design the functions for the relational and equality operation in this class.
Need code listed below modified that will generate this output:
5/3 addition 3/2 = 19/6
5/3 subtraction 3/2 = 1/6
5/3 multiplication 3/2 = 5/2
5/3 division 3/2 = 10/9
5/3 is:
!= 3/2
!= 3/2
This is what I have so far.
// rational.h
#ifndef RATIONAL_H
#define RATIONAL_H
class RationalNumber {
public:
RationalNumber(int=0, int=1);
RationalNumber add(const RationalNumber &);
RationalNumber sub(const RationalNumber &);
RationalNumber mul(const RationalNumber &);
RationalNumber div(const RationalNumber &);
bool equal(const RationalNumber &) const;
bool notEqual(const RationalNumber &) const;
void printRational() const;
private:
int numerator;
int denominator;
};
#endif
// rational.cpp
#include <iostream>
using namespace std;
#include "rational.h"
RationalNumber::RationalNu mber(int n, int d)
{
numerator = n;
denominator = d;
}
RationalNumber RationalNumber::add(const RationalNumber &a)
{
RationalNumber t;
t.numerator = a.numerator * denominator;
t.numerator += a.denominator * numerator;
t.denominator = a.denominator * denominator;
return t;
}
RationalNumber RationalNumber::sub(const RationalNumber &s)
{
RationalNumber t;
t.numerator = s.denominator * numerator;
t.numerator -= denominator * s.numerator;
t.denominator = s.denominator * denominator;
return t;
}
RationalNumber RationalNumber::mul(const RationalNumber &m)
{
RationalNumber t;
t.numerator = m.numerator * numerator;
t.denominator = m.denominator * denominator;
return t;
}
RationalNumber RationalNumber::div(const RationalNumber &v)
{
RationalNumber t;
t.numerator = v.denominator * numerator;
t.denominator = denominator * v.numerator;
return t;
}
void RationalNumber::printRatio nal() const
{
if(denominator == 0)
cout << "\nDivide by zero error!!!\n";
else
if(numerator == 0)
cout << 0;
else
cout << numerator << '/' << denominator;
}
bool RationalNumber::equal(cons t RationalNumber &e) const (NEED HELP IN WRITING THE TWO FUNCTION DEFINITIONS)
{
.......................... .......... .......... .....
}
bool RationalNumber::notEqual(c onst RationalNumber &n) const
{
.......................... .......... .......... .....
}
// rational_driver.cpp
#include <iostream>
using namespace std;
#include "rational.h"
int main()
{
RationalNumber c(5,3);
RationalNumber d(3,2);
RationalNumber x;
c.printRational();
cout << " addition ";
d.printRational();
x = c.add(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " subtraction ";
d.printRational();
x = c.sub(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " multiplication ";
d.printRational();
x = c.mul(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " division ";
d.printRational();
x = c.div(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << endl;
return 0;
} // end driver
Please advise.
* Create a constructor that prevents a 0 denominator in a fraction.
* Design the add, sub, mul, and division functions for this class.
* Design the functions for the relational and equality operation in this class.
Need code listed below modified that will generate this output:
5/3 addition 3/2 = 19/6
5/3 subtraction 3/2 = 1/6
5/3 multiplication 3/2 = 5/2
5/3 division 3/2 = 10/9
5/3 is:
!= 3/2
!= 3/2
This is what I have so far.
// rational.h
#ifndef RATIONAL_H
#define RATIONAL_H
class RationalNumber {
public:
RationalNumber(int=0, int=1);
RationalNumber add(const RationalNumber &);
RationalNumber sub(const RationalNumber &);
RationalNumber mul(const RationalNumber &);
RationalNumber div(const RationalNumber &);
bool equal(const RationalNumber &) const;
bool notEqual(const RationalNumber &) const;
void printRational() const;
private:
int numerator;
int denominator;
};
#endif
// rational.cpp
#include <iostream>
using namespace std;
#include "rational.h"
RationalNumber::RationalNu
{
numerator = n;
denominator = d;
}
RationalNumber RationalNumber::add(const RationalNumber &a)
{
RationalNumber t;
t.numerator = a.numerator * denominator;
t.numerator += a.denominator * numerator;
t.denominator = a.denominator * denominator;
return t;
}
RationalNumber RationalNumber::sub(const RationalNumber &s)
{
RationalNumber t;
t.numerator = s.denominator * numerator;
t.numerator -= denominator * s.numerator;
t.denominator = s.denominator * denominator;
return t;
}
RationalNumber RationalNumber::mul(const RationalNumber &m)
{
RationalNumber t;
t.numerator = m.numerator * numerator;
t.denominator = m.denominator * denominator;
return t;
}
RationalNumber RationalNumber::div(const RationalNumber &v)
{
RationalNumber t;
t.numerator = v.denominator * numerator;
t.denominator = denominator * v.numerator;
return t;
}
void RationalNumber::printRatio
{
if(denominator == 0)
cout << "\nDivide by zero error!!!\n";
else
if(numerator == 0)
cout << 0;
else
cout << numerator << '/' << denominator;
}
bool RationalNumber::equal(cons
{
..........................
}
bool RationalNumber::notEqual(c
{
..........................
}
// rational_driver.cpp
#include <iostream>
using namespace std;
#include "rational.h"
int main()
{
RationalNumber c(5,3);
RationalNumber d(3,2);
RationalNumber x;
c.printRational();
cout << " addition ";
d.printRational();
x = c.add(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " subtraction ";
d.printRational();
x = c.sub(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " multiplication ";
d.printRational();
x = c.mul(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " division ";
d.printRational();
x = c.div(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << endl;
return 0;
} // end driver
Please advise.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
// rational.h
#ifndef RATIONAL_H
#define RATIONAL_H
class RationalNumber {
public:
RationalNumber(int=0, int=1);
RationalNumber add(const RationalNumber &);
RationalNumber sub(const RationalNumber &);
RationalNumber mul(const RationalNumber &);
RationalNumber div(const RationalNumber &);
bool equal(const RationalNumber &) const;
bool notEqual(const RationalNumber &) const;
void printRational() const;
int RationalNumerator();
private:
int numerator;
int denominator;
};
#endif
// rational.cpp
#include <iostream>
using namespace std;
#include "rational.h"
RationalNumber::RationalNu mber(int n, int d)
{
numerator = n;
denominator = d;
}
RationalNumber RationalNumber::add(const RationalNumber &a)
{
RationalNumber t;
t.numerator = a.numerator * denominator;
t.numerator += a.denominator * numerator;
t.denominator = a.denominator * denominator;
return t;
}
RationalNumber RationalNumber::sub(const RationalNumber &s)
{
RationalNumber t;
t.numerator = s.denominator * numerator;
t.numerator -= denominator * s.numerator;
t.denominator = s.denominator * denominator;
return t;
}
RationalNumber RationalNumber::mul(const RationalNumber &m)
{
RationalNumber t;
t.numerator = m.numerator * numerator;
t.denominator = m.denominator * denominator;
return t;
}
RationalNumber RationalNumber::div(const RationalNumber &v)
{
RationalNumber t;
t.numerator = v.denominator * numerator;
t.denominator = denominator * v.numerator;
return t;
}
void RationalNumber::printRatio nal() const
{
if(denominator == 0)
cout << "\nDivide by zero error!!!\n";
else
if(numerator == 0)
cout << 0;
else
cout << numerator << '/' << denominator;
}
bool RationalNumber::equal(cons t RationalNumber &e) const
{
RationalNumber temp ( this ) ;
temp.subtract ( e ) ;
if ( temp.RationalNumerator () == 0 ) {
return true ; // Indicates equal
}
else {
return false ; // Indicates unEqual
}
}
int RationalNumber::RationalNu merator ( ) {
return numerator ;
}
bool RationalNumber::notEqual(c onst RationalNumber &n) const
{
RationalNumber temp ( this ) ;
temp.subtract ( n ) ;
if ( temp.RationalNumerator () == 0 ) {
return true ; // Indicates equal
}
else {
return false ; // Indicates unEqual
}
} // end rational.cpp
// rational_driver.cpp
#include <iostream>
using namespace std;
#include "rational.h"
int main()
{
RationalNumber c(5,3);
RationalNumber d(3,2);
RationalNumber x;
c.printRational();
cout << " addition ";
d.printRational();
x = c.add(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " subtraction ";
d.printRational();
x = c.sub(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " multiplication ";
d.printRational();
x = c.mul(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " division ";
d.printRational();
x = c.div(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << endl;
return 0;
} // end driver
Getting these errors:
rational.cpp: In method `bool RationalNumber::equal(cons t RationalNumber &) cons
t':
rational.cpp:84: no matching function for call to `RationalNumber::RationalN umbe
r (const RationalNumber *)'
rational.cpp:10: candidates are: RationalNumber::RationalNu mber(int = 0, int = 1
)
rational.h:26: RationalNumber::RationalNu mber(const RationalNumb
er &)
rational.cpp:85: no matching function for call to `RationalNumber::subtract (con
st RationalNumber &)'
rational.cpp: In method `bool RationalNumber::notEqual(c onst RationalNumber &) c
onst':
rational.cpp:104: no matching function for call to `RationalNumber::RationalN umb
er (const RationalNumber *)'
rational.cpp:10: candidates are: RationalNumber::RationalNu mber(int = 0, int = 1
)
rational.h:26: RationalNumber::RationalNu mber(const RationalNumb
er &)
rational.cpp:105: no matching function for call to `RationalNumber::subtract (co
nst RationalNumber &)'
#ifndef RATIONAL_H
#define RATIONAL_H
class RationalNumber {
public:
RationalNumber(int=0, int=1);
RationalNumber add(const RationalNumber &);
RationalNumber sub(const RationalNumber &);
RationalNumber mul(const RationalNumber &);
RationalNumber div(const RationalNumber &);
bool equal(const RationalNumber &) const;
bool notEqual(const RationalNumber &) const;
void printRational() const;
int RationalNumerator();
private:
int numerator;
int denominator;
};
#endif
// rational.cpp
#include <iostream>
using namespace std;
#include "rational.h"
RationalNumber::RationalNu
{
numerator = n;
denominator = d;
}
RationalNumber RationalNumber::add(const RationalNumber &a)
{
RationalNumber t;
t.numerator = a.numerator * denominator;
t.numerator += a.denominator * numerator;
t.denominator = a.denominator * denominator;
return t;
}
RationalNumber RationalNumber::sub(const RationalNumber &s)
{
RationalNumber t;
t.numerator = s.denominator * numerator;
t.numerator -= denominator * s.numerator;
t.denominator = s.denominator * denominator;
return t;
}
RationalNumber RationalNumber::mul(const RationalNumber &m)
{
RationalNumber t;
t.numerator = m.numerator * numerator;
t.denominator = m.denominator * denominator;
return t;
}
RationalNumber RationalNumber::div(const RationalNumber &v)
{
RationalNumber t;
t.numerator = v.denominator * numerator;
t.denominator = denominator * v.numerator;
return t;
}
void RationalNumber::printRatio
{
if(denominator == 0)
cout << "\nDivide by zero error!!!\n";
else
if(numerator == 0)
cout << 0;
else
cout << numerator << '/' << denominator;
}
bool RationalNumber::equal(cons
{
RationalNumber temp ( this ) ;
temp.subtract ( e ) ;
if ( temp.RationalNumerator () == 0 ) {
return true ; // Indicates equal
}
else {
return false ; // Indicates unEqual
}
}
int RationalNumber::RationalNu
return numerator ;
}
bool RationalNumber::notEqual(c
{
RationalNumber temp ( this ) ;
temp.subtract ( n ) ;
if ( temp.RationalNumerator () == 0 ) {
return true ; // Indicates equal
}
else {
return false ; // Indicates unEqual
}
} // end rational.cpp
// rational_driver.cpp
#include <iostream>
using namespace std;
#include "rational.h"
int main()
{
RationalNumber c(5,3);
RationalNumber d(3,2);
RationalNumber x;
c.printRational();
cout << " addition ";
d.printRational();
x = c.add(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " subtraction ";
d.printRational();
x = c.sub(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " multiplication ";
d.printRational();
x = c.mul(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " division ";
d.printRational();
x = c.div(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << endl;
return 0;
} // end driver
Getting these errors:
rational.cpp: In method `bool RationalNumber::equal(cons
t':
rational.cpp:84: no matching function for call to `RationalNumber::RationalN
r (const RationalNumber *)'
rational.cpp:10: candidates are: RationalNumber::RationalNu
)
rational.h:26: RationalNumber::RationalNu
er &)
rational.cpp:85: no matching function for call to `RationalNumber::subtract (con
st RationalNumber &)'
rational.cpp: In method `bool RationalNumber::notEqual(c
onst':
rational.cpp:104: no matching function for call to `RationalNumber::RationalN
er (const RationalNumber *)'
rational.cpp:10: candidates are: RationalNumber::RationalNu
)
rational.h:26: RationalNumber::RationalNu
er &)
rational.cpp:105: no matching function for call to `RationalNumber::subtract (co
nst RationalNumber &)'
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
// rational.h
#ifndef RATIONAL_H
#define RATIONAL_H
class RationalNumber {
public:
RationalNumber(int=0, int=1);
RationalNumber add(const RationalNumber &);
RationalNumber sub(const RationalNumber &);
RationalNumber mul(const RationalNumber &);
RationalNumber div(const RationalNumber &);
bool equal(const RationalNumber &) const;
bool notEqual(const RationalNumber &) const;
void printRational() const;
int RationalNumerator();
private:
int numerator;
int denominator;
};
#endif
// rational.cpp
#include <iostream>
using namespace std;
#include "rational.h"
RationalNumber::RationalNu mber(int n, int d)
{
numerator = n;
denominator = d;
}
RationalNumber RationalNumber::add(const RationalNumber &a)
{
RationalNumber t;
t.numerator = a.numerator * denominator;
t.numerator += a.denominator * numerator;
t.denominator = a.denominator * denominator;
return t;
}
RationalNumber RationalNumber::sub(const RationalNumber &s)
{
RationalNumber t;
t.numerator = s.denominator * numerator;
t.numerator -= denominator * s.numerator;
t.denominator = s.denominator * denominator;
return t;
}
RationalNumber RationalNumber::mul(const RationalNumber &m)
{
RationalNumber t;
t.numerator = m.numerator * numerator;
t.denominator = m.denominator * denominator;
return t;
}
RationalNumber RationalNumber::div(const RationalNumber &v)
{
RationalNumber t;
t.numerator = v.denominator * numerator;
t.denominator = denominator * v.numerator;
return t;
}
void RationalNumber::printRatio nal() const
{
if(denominator == 0)
cout << "\nDivide by zero error!!!\n";
else
if(numerator == 0)
cout << 0;
else
cout << numerator << '/' << denominator;
}
bool RationalNumber::equal(cons t RationalNumber &e) const
{
RationalNumber temp ( *this ) ; // this replaced by *this
temp.subtract ( e ) ;
if ( temp.RationalNumerator () == 0 ) {
return true ; // Indicates equal
}
else {
return false ; // Indicates unEqual
}
}
int RationalNumber::RationalNu merator ( ) {
return numerator ;
}
bool RationalNumber::notEqual(c onst RationalNumber &n) const
{
RationalNumber temp ( *this ) ; // this replaced by *this
temp.subtract ( n ) ;
if ( temp.RationalNumerator () == 0 ) {
return true ; // Indicates equal
}
else {
return false ; // Indicates unEqual
}
} // end rational.cpp
// rational_driver.cpp
#include <iostream>
using namespace std;
#include "rational.h"
int main()
{
RationalNumber c(5,3);
RationalNumber d(3,2);
RationalNumber x;
c.printRational();
cout << " addition ";
d.printRational();
x = c.add(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " subtraction ";
d.printRational();
x = c.sub(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " multiplication ";
d.printRational();
x = c.mul(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " division ";
d.printRational();
x = c.div(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << endl;
return 0;
} // end driver
Sys_Prog,
Now I have these errors.
rational.cpp: In method `bool RationalNumber::equal(cons t RationalNumber &) cons
t':
rational.cpp:85: no matching function for call to `RationalNumber::subtract (con
st RationalNumber &)'
rational.cpp: In method `bool RationalNumber::notEqual(c onst RationalNumber &) c
onst':
rational.cpp:106: no matching function for call to `RationalNumber::subtract (co
nst RationalNumber &)'
#ifndef RATIONAL_H
#define RATIONAL_H
class RationalNumber {
public:
RationalNumber(int=0, int=1);
RationalNumber add(const RationalNumber &);
RationalNumber sub(const RationalNumber &);
RationalNumber mul(const RationalNumber &);
RationalNumber div(const RationalNumber &);
bool equal(const RationalNumber &) const;
bool notEqual(const RationalNumber &) const;
void printRational() const;
int RationalNumerator();
private:
int numerator;
int denominator;
};
#endif
// rational.cpp
#include <iostream>
using namespace std;
#include "rational.h"
RationalNumber::RationalNu
{
numerator = n;
denominator = d;
}
RationalNumber RationalNumber::add(const RationalNumber &a)
{
RationalNumber t;
t.numerator = a.numerator * denominator;
t.numerator += a.denominator * numerator;
t.denominator = a.denominator * denominator;
return t;
}
RationalNumber RationalNumber::sub(const RationalNumber &s)
{
RationalNumber t;
t.numerator = s.denominator * numerator;
t.numerator -= denominator * s.numerator;
t.denominator = s.denominator * denominator;
return t;
}
RationalNumber RationalNumber::mul(const RationalNumber &m)
{
RationalNumber t;
t.numerator = m.numerator * numerator;
t.denominator = m.denominator * denominator;
return t;
}
RationalNumber RationalNumber::div(const RationalNumber &v)
{
RationalNumber t;
t.numerator = v.denominator * numerator;
t.denominator = denominator * v.numerator;
return t;
}
void RationalNumber::printRatio
{
if(denominator == 0)
cout << "\nDivide by zero error!!!\n";
else
if(numerator == 0)
cout << 0;
else
cout << numerator << '/' << denominator;
}
bool RationalNumber::equal(cons
{
RationalNumber temp ( *this ) ; // this replaced by *this
temp.subtract ( e ) ;
if ( temp.RationalNumerator () == 0 ) {
return true ; // Indicates equal
}
else {
return false ; // Indicates unEqual
}
}
int RationalNumber::RationalNu
return numerator ;
}
bool RationalNumber::notEqual(c
{
RationalNumber temp ( *this ) ; // this replaced by *this
temp.subtract ( n ) ;
if ( temp.RationalNumerator () == 0 ) {
return true ; // Indicates equal
}
else {
return false ; // Indicates unEqual
}
} // end rational.cpp
// rational_driver.cpp
#include <iostream>
using namespace std;
#include "rational.h"
int main()
{
RationalNumber c(5,3);
RationalNumber d(3,2);
RationalNumber x;
c.printRational();
cout << " addition ";
d.printRational();
x = c.add(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " subtraction ";
d.printRational();
x = c.sub(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " multiplication ";
d.printRational();
x = c.mul(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " division ";
d.printRational();
x = c.div(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << endl;
return 0;
} // end driver
Sys_Prog,
Now I have these errors.
rational.cpp: In method `bool RationalNumber::equal(cons
t':
rational.cpp:85: no matching function for call to `RationalNumber::subtract (con
st RationalNumber &)'
rational.cpp: In method `bool RationalNumber::notEqual(c
onst':
rational.cpp:106: no matching function for call to `RationalNumber::subtract (co
nst RationalNumber &)'
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Outstanding!!!!!!!!!!!!!!! !!!!!!!!!! !!!!!!!!!! !!!!!!!!!! !!!!!!!!!
Thank you, Sys_Prog. Del
Thank you, Sys_Prog. Del
Ur most welcome edelossantos
Amit
Amit
ASKER
I forgot. I am getting this which is excellent.
5/3 addition 3/2 = 19/6
19/6 =
5/3 subtraction 3/2 = 1/6
1/6 =
5/3 multiplication 3/2 = 15/6
15/6 =
5/3 division 3/2 = 10/9
10/9 =
But I also need:
5/3 is:
!= 3/2
!= 3/2
5/3 addition 3/2 = 19/6
19/6 =
5/3 subtraction 3/2 = 1/6
1/6 =
5/3 multiplication 3/2 = 15/6
15/6 =
5/3 division 3/2 = 10/9
10/9 =
But I also need:
5/3 is:
!= 3/2
!= 3/2
ASKER
I figured it out. Thanks again for all the awesome help. Del
ASKER
5/3 addition 3/2 = 19/6
5/3 subtraction 3/2 = 1/6
5/3 multiplication 3/2 = 5/2
5/3 division 3/2 = 10/9
5/3 is:
!= 3/2
!= 3/2
This is what I have so far.
// rational.h
#ifndef RATIONAL_H
#define RATIONAL_H
class RationalNumber {
public:
RationalNumber(int=0, int=1);
RationalNumber add(const RationalNumber &);
RationalNumber sub(const RationalNumber &);
RationalNumber mul(const RationalNumber &);
RationalNumber div(const RationalNumber &);
bool equal(const RationalNumber &) const;
bool notEqual(const RationalNumber &) const;
void printRational() const;
private:
int numerator;
int denominator;
};
#endif
// rational.cpp
#include <iostream>
using namespace std;
#include "rational.h"
RationalNumber::RationalNu
{
numerator = n;
denominator = d;
}
RationalNumber RationalNumber::add(const RationalNumber &a)
{
RationalNumber t;
t.numerator = a.numerator * denominator;
t.numerator += a.denominator * numerator;
t.denominator = a.denominator * denominator;
return t;
}
RationalNumber RationalNumber::sub(const RationalNumber &s)
{
RationalNumber t;
t.numerator = s.denominator * numerator;
t.numerator -= denominator * s.numerator;
t.denominator = s.denominator * denominator;
return t;
}
RationalNumber RationalNumber::mul(const RationalNumber &m)
{
RationalNumber t;
t.numerator = m.numerator * numerator;
t.denominator = m.denominator * denominator;
return t;
}
RationalNumber RationalNumber::div(const RationalNumber &v)
{
RationalNumber t;
t.numerator = v.denominator * numerator;
t.denominator = denominator * v.numerator;
return t;
}
void RationalNumber::printRatio
{
if(denominator == 0)
cout << "\nDivide by zero error!!!\n";
else
if(numerator == 0)
cout << 0;
else
cout << numerator << '/' << denominator;
}
bool RationalNumber::equal(cons
{
RationalNumber t;
t.numerator = e.denominator * numerator;
t.numerator -= denominator * e.numerator;
t.denominator = e.denominator * denominator;
return t;
}
bool RationalNumber::notEqual(c
{
RationalNumber t;
t.numerator = n.denominator * numerator;
t.numerator -= denominator * n.numerator;
t.denominator = n.denominator * denominator;
return t;
}
// rational_driver.cpp
#include <iostream>
using namespace std;
#include "rational.h"
int main()
{
RationalNumber c(5,3);
RationalNumber d(3,2);
RationalNumber x;
c.printRational();
cout << " addition ";
d.printRational();
x = c.add(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " subtraction ";
d.printRational();
x = c.sub(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " multiplication ";
d.printRational();
x = c.mul(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << "\n\n";
c.printRational();
cout << " division ";
d.printRational();
x = c.div(d);
cout << " = ";
x.printRational();
cout << '\n';
x.printRational();
cout << " = ";
cout << endl;
return 0;
} // end driver
Sys_Prog
I am getting these errors.
rational.cpp: In method `bool RationalNumber::equal(cons
t':
rational.cpp:90: `class RationalNumber' used where a `bool' was expected
rational.cpp: In method `bool RationalNumber::notEqual(c
onst':
rational.cpp:103: `class RationalNumber' used where a `bool' was expected