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;
}
沒有留言:
張貼留言