2020年4月6日 星期一

4.2-Fraction

程式碼:
main.cpp
#include <iostream>
#include "Fraction.h"
using namespace std;

int main()
{
 Fraction f1, f2;
 f1.setNumerator(4);
 f1.setDenominator(2);
 f1.getDouble();
 f1.outputReducedFraction();

 f2.setNumerator(20);
 f2.setDenominator(60);
 f2.getDouble();
 f2.outputReducedFraction();
 system("pause");
 return 0;
}

Fraction.h
#ifndef Fraction_H
#define Fraction_H
#include <iostream>
#include <iomanip>
using namespace std;

class Fraction
{
private:
 int numerator;
 int denominator;
public:
 void setNumerator(int nu);
 void setDenominator(int de);
 void getDouble();
 void outputReducedFraction();

};

#endif //Fraction_H

Fraction.h
#include "Fraction.h"

int gcd(int a, int b)
{
 while ((a %= b) != 0 && (b %= a) != 0);
 return a + b;
}
void Fraction::setNumerator(int nu)
{
 numerator = nu;
}

void Fraction::setDenominator(int de)
{
 denominator = de;
}

void Fraction::getDouble()
{
 if (!(numerator % denominator)) // integer
  cout << numerator / denominator << endl;
 else
  cout << fixed << setprecision(6) << (double)numerator / denominator << endl;
}

void Fraction::outputReducedFraction()
{
 int greattestCommonDivisor = gcd(numerator, denominator);
 if (!(numerator % denominator)) // integer
  cout << numerator / denominator << endl;
 else
  cout << numerator / greattestCommonDivisor << "/" << denominator / greattestCommonDivisor << endl;
}

沒有留言:

張貼留言