You should follow the advice in the notes file, starting by writing stubs and getting everything to compile. Next, get your constructors working. If they do not work, the rest of your project cannot be tested.
You must test every constructor and member function thoroughly, including all bases cases as well as error cases. Do not repeatedly test one function with values that are not expected to behave differently, such as 3/4, 5/6, 7/8, which all have an odd numerator that is smaller than the even denominator.
You can do almost all of your testing by using the constructors to create objects to manipulate. You can simply name them frac1, frac2, etc. If you pick good numbers, you can reuse each Rational object for several tests.
Because your fractions are supposed to be printable, you can potentially print your variables themselves in the labels rather than printing variable names or values manually.
cout << frac1 << " < "
<< frac2 << " : " << frac1 < frac2 << endl;
You might also find it useful to use unnamed objects in your
driver, which are created by calling the constructor in the middle of any
normal statement.
cout << "3/4 < 7/8 : " <<
Rational(3, 4) < Rational(7, 8) << endl;
Experiment with both methods and see which works for you.
Operator>> should be the absolute last thing you write and test, because it is not needed by anything else. Make a simple test file with several good fractions and one incorrectly formatted one, and make an input loop at the end of the driver that reads and prints them. You can try to do more with this one, but it's not necessary.
All output must be labeled and formatted so that it is completely obvious to the reader what is going on, without requiring them to look at the source code. The lab is not the best example of this, so focus on the following strategy for each test:
You may be able to create more concise ways of formatting your tests, especially when you have several of the same test in a row. But you should never sacrifice readability for compactness. As always, remember to add space to create sections, and align values after labels. Don't double space your output.
By default, boolean values print as "1" or "0", which is not appropriate
for this kind of output. Remember to use "boolalpha" to set the print
forms to "true" and "false".