All pastes #733838 Raw Edit

Anonymous

public cpp v1 · immutable
·published 2007-10-12 03:32 UTC
rendered paste body
#include <iostream.h>// for divisionvoid invert(int &num, int &den){	int mid;	mid = num;	num = den;	den = mid;}void reduce(int &num, int &den){	int least, gcf, rednum, redden;	int i;	if(num >= den)		least = num;	else		least = den;		for(i = 1; i <= least; i++){		if((num % i == 0) && (den % i == 0))			gcf = i;	}	rednum = num / gcf;	redden = den / gcf;	num = rednum;	den = redden;}int menu(){	int choice;	cout << "Choose an operation for a fraction: " << endl <<		"1. Multiply" << endl <<		"2. Divide" << endl <<		"3. Add" << endl <<		"4. Subtract" << endl <<		"5. Exit" << endl << ">> ";	cin >> choice;	return choice;}bool validate(int num){	if(num >= 1)		return 1;}void frac_input(int &num1, int &den1, int &num2, int &den2){	do{		cout << "Enter your first numerator: ";		cin >> num1;	} while (!validate(num1));	do{		cout << "Enter your first denominator: ";		cin >> den1; 	} while (!validate(den1));	do{		cout << "Enter your second numerator: ";		cin >> num2;	} while (!validate(num2));	do{		cout << "Enter your second denominator: ";		cin >> den2;	} while (!validate(den2));}void multiply_frac(int num1, int den1, int num2, int den2, int &ansnum, int &ansden){	ansnum = num1 * num2;	ansden = den1 * den2;}void add_frac(int num1, int den1, int num2, int den2, int &ansnum, int &ansden){	if(den1 != den2){		num1 = num1 * den2;		num2 = num2 * den1;		ansden = den1 * den2;	}	else		ansden = den1;	ansnum = num1 + num2;}void subtract_frac(int num1, int den1, int num2, int den2, int &ansnum, int &ansden){		if(den1 != den2){		num1 = num1 * den2;		num2 = num2 * den1;		ansden = den1 * den2;	}	else		ansden = den1;	ansnum = num1 - num2;}void output(int num1, int den1, int num2, int den2, int ansnum, int ansden, char oper){	cout << num1 << "/" << den1 		 << " " << oper << " " 		 << num2 << "/" << den2		 << " = " 		 << ansnum << "/" << ansden << endl;}void act_menu(int choice){	int num1, num2, den1, den2, ansnum, ansden;	switch(choice){	case 1: frac_input(num1, den1, num2, den2);			multiply_frac(num1, den1, num2, den2, ansnum, ansden);			output(num1, den1, num2, den2, ansnum, ansden, '*');			break;	case 2: frac_input(num1, den1, num2, den2);			reverse(num2, den2);			multiply_frac(num1, den1, num2, den2, ansnum, ansden);			output(num1, den1, den2, num2, ansnum, ansden, '/');			break;	case 3: frac_input(num1, den1, num2, den2);			add_frac(num1, den1, num2, den2, ansnum, ansden);			output(num1, den1, num2, den2, ansnum, ansden, '+');			break;	case 4: frac_input(num1, den1, num2, den2);			subtract_frac(num1, den1, num2, den2, ansnum, ansden);			output(num1, den1, num2, den2, ansnum, ansden, '-')