I have to make a c++ assignement that when you input two fractions you have to o
ID: 3813449 • Letter: I
Question
I have to make a c++ assignement that when you input two fractions you have to output the reduce form of the two fractions, the answer in fraction when you add , subtract , divide or muliply the fraction , and also display the answer in float format. I I cant display my answer in float format , I have completed everything else except this part. H
I have one hour and 30 min to turn it in !!! Help!
Here is my code:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* File: main.cpp
* Author: Kikin
*
* Created on April 6, 2017, 9:38 AM
*/
#include
#include
#include
using namespace std;
/*
*
*/
class Rational{
public:
//initializes the rational number to 0
Rational();
//initializes as whole number
Rational(int wholeNumber);
//initializes the rational number to be a/b if b is not 0;
Rational(int a, int b);
friend const Rational operator +(const Rational& fraction1, const Rational& fraction2);
friend const Rational operator -(const Rational& fraction1, const Rational& fraction2);
friend const Rational operator *(const Rational& fraction1, const Rational& fraction2);
friend const Rational operator /(const Rational& fraction1, const Rational& fraction2);
friend ostream& operator <<(ostream& outputStream, const Rational& fraction);
friend istream& operator >>(istream& inputStream, Rational& fraction);
private:
int numerator, denominator;
};
int gcd(int u, int v);
double sum(double x, double y);
void fraction_Rule(int& num, int&den);
int main() {
char runagain = 'y';
do{
Rational firstFraction, secondFraction;
cout << "Enter a rational number(a/b): ";
cin >> firstFraction;
cout << "(Just checking, you entered: " << firstFraction << " -- reduced form)" <
cout << "Enter a rational number(a/b): ";
cin >> secondFraction;
cout << "(Just checking, you entered: " << secondFraction << " -- reduced form)" < cout << "Results of Arithmetic operations: "<< endl;
Rational sum = firstFraction + secondFraction;
cout << firstFraction << " + " << secondFraction << " equals " << sum << endl;
Rational subtraction = firstFraction - secondFraction;
cout << firstFraction << " - " << secondFraction << " equals " << subtraction << endl;
Rational multiply = firstFraction * secondFraction;
cout << firstFraction << " * " << secondFraction << " equals " << multiply << endl;
Rational divide = firstFraction / secondFraction;
cout << firstFraction << " / " << secondFraction << " equals " << divide << endl;
cout<<"Do you which to run again(y/n)?";
cin >> runagain;
}while(runagain == 'y');
cout << " Programmer: Francisco Gallego - written for the class CISC 192 - C++ Programming.";
exit(0);
return 0;
}
istream& operator >> (istream& inputStream, Rational& fraction ){
char fractsign;
inputStream >>fraction.numerator >> fractsign >> fraction.denominator;
if(fractsign != '/'){
cout << "Incorrect format!!!";
}
fraction_Rule(fraction.numerator, fraction.denominator);
return inputStream;
}
ostream& operator << (ostream& outputStream, const Rational& fraction ){
outputStream < u = abs(u);
v = abs(v);
if(v==0) return u;
//reduction step
return gcd(v,u%v);
}
Rational::Rational(int a, int b){
numerator = a;
denominator = b;
//verify whether the denominator is zero
if(denominator == 0){
cout << "Denominator should not be zero"<< endl;
exit(1);
}
}
Rational :: Rational(int wholeNumber){
numerator = wholeNumber;
denominator = 1;
}
Rational ::Rational(){
numerator = 0;
denominator = 1;
}
Explanation / Answer
#include
#include
#include
using namespace std;
class Rational{
public:
//initializes the rational number to 0
Rational();
//initializes as whole number
Rational(int wholeNumber);
//initializes the rational number to be a/b if b is not 0;
Rational(int a, int b);
friend const Rational operator +(const Rational& fraction1, const Rational& fraction2);
friend const Rational operator -(const Rational& fraction1, const Rational& fraction2);
friend const Rational operator *(const Rational& fraction1, const Rational& fraction2);
friend const Rational operator /(const Rational& fraction1, const Rational& fraction2);
friend ostream& operator <<(ostream& outputStream, const Rational& fraction);
friend istream& operator >>(istream& inputStream, Rational& fraction);
private:
int numerator, denominator;
};
int gcd(int u, int v);
double sum(double x, double y);
void fraction_Rule(int& num, int&den);
int main() {
char runagain = 'y';
do{
Rational firstFraction, secondFraction;
cout << "Enter a rational number(a/b): ";
cin >> firstFraction;
cout << "(Just checking, you entered: " << firstFraction << " -- reduced form)" <
cout << "Enter a rational number(a/b): ";
cin >> secondFraction;
cout << "(Just checking, you entered: " << secondFraction << " -- reduced form)" < cout << "Results of Arithmetic operations: "<< endl;
Rational sum = firstFraction + secondFraction;
cout << firstFraction << " + " << secondFraction << " equals " << sum << endl;
Rational subtraction = firstFraction - secondFraction;
cout << firstFraction << " - " << secondFraction << " equals " << subtraction << endl;
Rational multiply = firstFraction * secondFraction;
cout << firstFraction << " * " << secondFraction << " equals " << multiply << endl;
Rational divide = firstFraction / secondFraction;
cout << firstFraction << " / " << secondFraction << " equals " << divide << endl;
cout<<"Do you which to run again(y/n)?";
cin >> runagain;
}while(runagain == 'y');
cout << " Programmer: Francisco Gallego - written for the class CISC 192 - C++ Programming.";
exit(0);
return 0;
}
istream& operator >> (istream& inputStream, Rational& fraction ){
char fractsign;
inputStream >>fraction.numerator >> fractsign >> fraction.denominator;
if(fractsign != '/'){
cout << "Incorrect format!!!";
}
fraction_Rule(fraction.numerator, fraction.denominator);
return inputStream;
}
ostream& operator << (ostream& outputStream, const Rational& fraction ){
outputStream < u = abs(u);
v = abs(v);
if(v==0) return u;
//reduction step
return gcd(v,u%v);
}
Rational::Rational(int a, int b){
numerator = a;
denominator = b;
//verify whether the denominator is zero
if(denominator == 0){
cout << "Denominator should not be zero"<< endl;
exit(1);
}
}