16,794
社区成员




#-------------------------------------------------
#
# Project created by QtCreator 2016-01-21T21:08:12
#
#-------------------------------------------------
QT += core
QT -= gui
TARGET = Exercise2-15-2
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp \
fraction.cpp
HEADERS += \
fraction.h
#ifndef FRACTION
#define FRACTION
#include <QString>
class Fraction
{
public:
// Constructors
Fraction(int numerator = 0, int denominator = 1);
void set(int numerator, int denominator);
QString toString() const;
double toDouble() const;
private:
int m_Numerator;
int m_Denominator;
};
#endif // FRACTION
#include "fraction.h"
// Constructors
Fraction::Fraction(int numerator, int denominator)
: m_Numerator(numerator), m_Denominator(denominator)
{
// Empty statement
}
void Fraction::set(int numerator, int denominator)
{
m_Numerator = numerator;
m_Denominator = denominator;
}
QString Fraction::toString() const
{
return QString("%1/%2").arg(m_Numerator).arg(m_Denominator);
}
double Fraction::toDouble() const
{
return static_cast<double>(m_Numerator)/static_cast<double>(m_Denominator);
}
#include "fraction.h"
#include <QTextStream>
QTextStream cout(stdout);
QTextStream cin(stdin);
QTextStream cerr(stderr);
int main()
{
int num(0), denom(1);
cout << "\nInput first the numerator, then the denominator:\t";
cin >> num >> denom;
denom = (denom == 0) ? 1 : denom;
Fraction a(num, denom);
cout << "\nFraction a = " << a.toString() << ", which is approximately "
<< a.toDouble() << endl;
cout << "\nAgain, input first the numerator, then the denominator:\t";
cin >> num >> denom;
denom = (denom == 0) ? 1 : denom;
Fraction b(num, denom);
cout << "\nFraction b = " << b.toString() << ", which is approximately "
<< b.toDouble() << endl;
return 0;
}