Добавил:
Diryabuh
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы / 01
.cpp#include <stdio.h>
#include <conio.h>
class Fraction
{
public:
// Constructors
Fraction();
Fraction(float numerator, float denominator);
Fraction(Fraction &src);
// Methods
float GetNumerator() {return m_fNumerator;};
float GetDenominator() {return m_fDenominator;};
// Operations
void Set(float numerator, float denominator);
void CopyFrom(Fraction &src);
// Operators
inline int operator==(const Fraction& a) const { return m_fNumerator==a.m_fNumerator && m_fDenominator==a.m_fDenominator; }
friend void Input(Fraction &a);
friend void Output(Fraction &a);
private:
float m_fNumerator;
float m_fDenominator;
};
Fraction::Fraction()
{
Set(1.0, 1.0);
}
Fraction::Fraction(float numerator, float denominator)
{
Set(numerator, denominator);
}
Fraction::Fraction(Fraction &src)
{
CopyFrom(src);
}
void Fraction::Set(float numerator, float denominator)
{
m_fNumerator = numerator;
if (denominator == 0)
{
printf("ERROR! Division by zero!\n");
denominator = 1;
}
m_fDenominator = denominator;
}
void Fraction::CopyFrom(Fraction &src)
{
Set(src.m_fNumerator, src.m_fDenominator);
}
void Input(Fraction &a)
{
float n = 0, d = 0;
scanf("%f/%f", &n, &d);
a.Set(n, d);// for error checking
}
void Output(Fraction &a)
{
printf("Fraction: %f/%f\n", a.m_fNumerator, a.m_fDenominator);
}
void main(void)
{
Fraction f1 = Fraction();
Fraction f2(2, 10);
Fraction f3(f2);
Output(f1);
Output(f2);
Output(f3);
printf("Enter new valuse for fraction 3: ");
Input(f3);
Output(f3);
if (f3 == f1)
printf("Fraction 3 is equal to fraction 1!\n");
else if (f3 == f2)
printf("Fraction 3 is equal to fraction 2!\n");
getch();
}
