CST1801 Visual Basic I
Lab Week 7


Exercises

Exercise RationalCalculations (20 points)

The paragraph below is reiterating Exercise RationalReduction which you have completed previously:

Many fractions (rationals) can be reduced.  As an example, a rational with a numerator of 12 and a denominator of 16  reduces to 3/4.  Write a method (subroutine) named Reduce in which  you pass two parameters by reference, a numerator and a denominator.  The reduced numerator and denominator is to be returned back in the parameters that were passed by reference.  If the original rational cannot be reduced, just return the original numerator and denominator.  Remember to accept negatives for numerators and denominators.  Reduce the signs as well.  A resulting negative sign, if there is one, should be attached to the numerator.  Incorporate your method (subroutine) Reduce into a Windows program.

 

In this exercise your are going to build upon your previous Exercise RationalReduction.

Create a class named Rational for performing arithmetic with fractions. 

Use integer variables to represent the private data of the class - the numerator and the denominator.  Provide a constructor that enables an object of this class to be initialized when it is declared.  The constructor should contain default values of 1 for a numerator and 1 for a denominator in the rare case of no initializers being provided.  The rationals need to be stored in reduced form.  For example, the fraction 2/4 would be stored in the object as 1 in the numerator and 2 in the denominator.

Provide public member functions (methods) that perform each of the following tasks:

  • Adding two Rational numbers.  The result should be stored in reduced form.
  • Subtracting two Rational numbers.  The result should be stored in reduced form.
  • Multiplying two Rational numbers.  The result should be stored in reduced form.
  • Dividing two Rational numbers.  The result should be stored in reduced form.
  • Returning a Rational number in floating-point (double) format.
  • Returning a string representing a Rational number in the form a/b, where a is the numerator and b is the denominator.

Provide a private member function named Reduce.  This code is reused from your previous exercise RationalReduction.

Provide get properties to be able to retrieve the numerator and denominator variables.  These properties should be read only.

Write a main Windows GUI program (RationalReduction) to test your class.

  Result (Save to your local machine and run)

Note:
Extra credit if you make an icon that represents the program topic. (2 points).
Extra credit if you clear all the resulting data on the form when changing any of the input values. (4 points).
Extra credit if you make the Rational objects able to be seen in other event methods.  In other words, if you add a second button to the form, you should be able to get access to the previous objects. (10 points)