// Demonstrate Rational data abstraction 	
	
import java.io.*;	
	
public class RationalDemo {	
	// main(): application entry point	
	public static void main(String[] args) throws IOException {	
		BufferedReader stdin = new BufferedReader(	
			new InputStreamReader(System.in));	
		System.out.println();	
	
		// extract values for rationals r and s	
		Rational r = new Rational();	
		System.out.print("Enter numerator of a rational number: ");	
		int a = Integer.parseInt(stdin.readLine());	
		System.out.print("Enter denominator of a rational number: ");	
		int b = Integer.parseInt(stdin.readLine());	
		r.setNumerator(a);	
		r.setDenominator(b);	
		System.out.println();	
		System.out.println();	
	
		Rational s = new Rational();	
		System.out.print("Enter numerator of a rational number: ");	
		int c = Integer.parseInt(stdin.readLine());	
		System.out.print("Enter denominator of a rational number: ");	
		int d = Integer.parseInt(stdin.readLine());	
		s.setNumerator(c);	
		s.setDenominator(d);	
	
		// operate on r and s	
		Rational sum = r.add(s);	
		Rational difference = r.subtract(s);	
		Rational product = r.multiply(s);	
		Rational quotient = r.divide(s);	
	
	
		// display operation results	
		System.out.println("For r = " + r.toString() + " and s = " 	
				+ s.toString());	
		System.out.println("    r + s = " + sum.toString());	
		System.out.println("    r - s = " + difference.toString());	
		System.out.println("    r * s = " + product.toString());	
		System.out.println("    r / s = " + quotient.toString());	
		System.out.println();	
	
		System.out.println();	
	}	
}	

