类和对象(分数类)(c++利用类输出分数)
描述
定义分数(有理数)类FRACTION,分子和分母是其数据成员,int,私有;成员函数有set()设置分子和分母,Real()返回其小数形式,show()显示分数,公有。成员函数reduce()实现约分,私有。
编写主函数,使用FRACTION类定义一个对象表示分数,输入分数的分子和分母,设置分数对象,显示分数,显示分数的小数形式。
注意
(1)程序自动约分,如输入2 4 ,显示分数1/2;
(2)负数设置在分子上,如输入1 -3 显示的分数为 -1/3;
(3)分子为0时,不约分,如输入0 8 ,显示分数0/8。
主函数如下:
int main() {FRACTION a;int x, y;cin >> x >> y;a.set(x, y);a.show();cout << a.real() << endl;return 0;
}
输入
分数的分子和分母,整数,用空格隔开,分母不为0。
输出
两行,一行为分数形式,一行为分数的小数形式(自然近似)。
提示
(1)约分函数格式为void reduce(void),直接对成员变量约分,不需参数,不需返回值;
(2)set()中为数据成员赋值后直接调用reduce()即可。
(3)分母为负数时,分子、分母都变号,就将符号转到分子上,如分子分母分别为1和-2,都变号,为-1和2。
输入输出示例
输入 | 输出 | |
示例 1 | | |
#include<iostream>
#include<cmath>
#include<algorithm>using namespace std;
class FRACTION{private:int fenzi,fenmu;public:void set(int a,int b){int c=__gcd(a,b);//求出最大公因数。a=a/c;b=b/c;if(b<0){b=abs(b);a=-(a);}this->fenzi=a;this->fenmu=b;}double real(){double x,y;x=fenzi;y=fenmu;return x/y;}void show(){cout<<fenzi<<"/"<<fenmu<<endl;}
};
int main() {FRACTION a;int x, y;cin >> x >> y;a.set(x, y);a.show();cout << a.real() << endl;return 0;
}
类和对象(分数类)(c++利用类输出分数)
描述
定义分数(有理数)类FRACTION,分子和分母是其数据成员,int,私有;成员函数有set()设置分子和分母,Real()返回其小数形式,show()显示分数,公有。成员函数reduce()实现约分,私有。
编写主函数,使用FRACTION类定义一个对象表示分数,输入分数的分子和分母,设置分数对象,显示分数,显示分数的小数形式。
注意
(1)程序自动约分,如输入2 4 ,显示分数1/2;
(2)负数设置在分子上,如输入1 -3 显示的分数为 -1/3;
(3)分子为0时,不约分,如输入0 8 ,显示分数0/8。
主函数如下:
int main() {FRACTION a;int x, y;cin >> x >> y;a.set(x, y);a.show();cout << a.real() << endl;return 0;
}
输入
分数的分子和分母,整数,用空格隔开,分母不为0。
输出
两行,一行为分数形式,一行为分数的小数形式(自然近似)。
提示
(1)约分函数格式为void reduce(void),直接对成员变量约分,不需参数,不需返回值;
(2)set()中为数据成员赋值后直接调用reduce()即可。
(3)分母为负数时,分子、分母都变号,就将符号转到分子上,如分子分母分别为1和-2,都变号,为-1和2。
输入输出示例
输入 | 输出 | |
示例 1 | | |
#include<iostream>
#include<cmath>
#include<algorithm>using namespace std;
class FRACTION{private:int fenzi,fenmu;public:void set(int a,int b){int c=__gcd(a,b);//求出最大公因数。a=a/c;b=b/c;if(b<0){b=abs(b);a=-(a);}this->fenzi=a;this->fenmu=b;}double real(){double x,y;x=fenzi;y=fenmu;return x/y;}void show(){cout<<fenzi<<"/"<<fenmu<<endl;}
};
int main() {FRACTION a;int x, y;cin >> x >> y;a.set(x, y);a.show();cout << a.real() << endl;return 0;
}
发布评论