# Rational

Define a class for rational numbers. A

rational number is a number that can be

represented as the quotient of two

integers. For example, 1/2, 3/4, 64/2,

and so forth are all rarional numbers.

(By 1/2 and so on we mean that everyday

fractions, not the integer division this

expression would produce in a C++

program.) Represent rational numbers as

two values of type int, one for the

numerator and one for the denominator.

Call the class Rational. Include a

constructor with two arguments that can

be used to set the member variables of an

object to any legitimate values. Also

include a constructor that has only a

single parameter of type int; call this

single parameter wholeNumber and de?ne

the constructor so that the object will

be initialized to the rational number

wholeNumber/1. Include a default

constructor that initializes an object to

0 (that is, 0/1). Overload the input and

output operators >> and <<. Numbers are to be input and output in the form 1/2, 15/32, 300/401, and so forth. Note that the numerator, the denominator, or both may contain a minus sign, so -1/2, 15/- 32, and -300/-401 are also possible inputs. Overload all the following operators so that they correctly apply to the type Rational: ==, <, <=, >, >=, +,

-, *, and /. The main() should test your

class and the functions.
Hints: Two rational numbers a/b and c/d

are equal if a*d equals c*b. If b and d

are positive rational numbers, a/b is

less than c/d provided a*d is less than

c*b. You should include a function to

normalize the values stored so that,

after normalization, the deniminator is

positive and the numerator and

denominator are as small as possible. For

example, after normalization 4/-8 would

be represented the same as -1/2.
Filename: rational.cpp

×