编写Fraction 类,封装分数的基本功能。 (1)实现构造函数重载。 (2)实现各个成员函数。
类的定义:
#include <iostream>
using namespace std;
class Fraction
{
public:
Fraction(); //缺省构造函数设置分子为0,分母为1
Fraction(int n); //只有1 个参数,设置分子为n,分母为1
Fraction(int n, int d); //设置分子为n,分母为d
void setValue(int n, int d); //设置分子和分母
int getNum(); //获取分子值
int getDen(); //获取分母值
double getDoubleValue(); //获取分数对应的小数值
void output(); //按分数形式显式分数, 按真分数或假分数形式输出
private:
int num; //分子
int den; //分母
};
裁判测试程序样例:
#include <iostream>
using namespace std;
class Fraction
{
public:
Fraction(); //缺省构造函数设置分子为0,分母为1
Fraction(int n); //只有1 个参数,设置分子为n,分母为1
Fraction(int n, int d); //设置分子为n,分母为d
void setValue(int n, int d); //设置分子和分母
int getNum(); //获取分子值
int getDen(); //获取分母值
double getDoubleValue(); //获取分数对应的小数值
void output(); //按分数形式显式分数, 按真分数或假分数形式输出
private:
int num; //分子
int den; //分母
};
int main()
{
Fraction f1, f2(2), f3(-3,4);
int num,den;
cin>>num>>den;
f1.setValue(num,den);
cout<<"Fraction f1 is ";
f1.output();
cout<<", its double value is: "<<f1.getDoubleValue()<<endl;
cout<<"Fraction f2 is ";
cout<<f2.getNum()<<'/'<<f2.getDen();
cout<<"\nFraction f3 is ";
f3.output();
return 0;
}
/* 请在这里填写答案 */
输入样例:
6 4
输出样例:
Fraction f1 is 6/4, its double value is: 1.5
Fraction f2 is 2/1
Fraction f3 is -3/4
Fraction::Fraction()
{
num=0;den=1;
}
Fraction::Fraction(int n)
{
num=n;den=1;
}
Fraction::Fraction(int n, int d)
{
num=n;den=d;
}
void Fraction::setValue(int n, int d)
{
num=n;den=d;
}
int Fraction::getNum()
{
return num;
}
int Fraction::getDen()
{
return den;
}
double Fraction::getDoubleValue()
{
double i=num/(den*1.0);
return i;
}
void Fraction::output()
{
if((num>0&&den>0)||(num<0&&den>0))
cout<<num<<'/'<<den;
if((num<0&&den<0)||(num>0&&den<0))
cout<<-num<<'/'<<-den;
}