类和对象(分数类)(c++利用类输出分数)
类和对象(分数类)(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;
}
- oracle rowid与rownum的使用
- vmware虚拟机屏幕如何适应窗口全屏
- 各种int的取值范围
- 黑客快速入门
- GridControl GridView 属性
- Cygwin 与 MinGWMSYSMSYS2,如何选择?
- Service Principal 介绍
- 音乐剧推荐
- mmap函数使用
- 用 CaptureScreenshot捕捉游戏画面(截图,截屏)
- VSS2005使用方法
- C++:指针:void*指针(跳跃力未定的指针)
- VC学习资料收集(12):VC小知识总结
- TCP的基本概念
- Hashtable、HashMap 与 HashTable区别、HashMap、Hashtable和TreeMap、 LinkedHashMap
- CC++
- 微信小程序60秒倒计时