设计一个分数类(Fraction):数据成员包括分子(m_numerator)和分母(m_denominator),分子默认值为0,分母默认值为1。需要满足如下条件:
(1)具有分子和分母两个形参的构造函数;
(2)具有拷贝构造函数;
(3)实现计算分数值的操作;
(4)实现=运算符和*=运算符的重载;(成员函数)
(5)实现关系运算符==的重载,判断两个Fraction类是否相等;(普通函数)
(6)实现输入输出运算符的重载(友元函数);
(7)实现算术运算符/的重载,实现两个分数的除法运算(友元函数)。
每日一练哇,大家都有什么好办法呐
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术专家团-小桥流水 2021-11-28 22:39关注
运行结果如下:
代码如下:
#include <iostream> using namespace std; class Fraction { public: double mFz; double mFm; //构造函数 Fraction(double fz=0,double fm=1){mFz=fz,mFm =fm;} //拷贝构造函数 Fraction(Fraction &c){mFm=c.mFm;mFz=c.mFz;} //计算分数值 double value() { if(mFm!=0) return mFz/mFm; else return 0; } // Fraction operator =(const Fraction c) { mFm=c.mFm; mFz=c.mFz; return *this; } Fraction operator *=(const Fraction c) { mFz *= c.mFz; mFm *= c.mFm; return *this; } bool operator ==(Fraction &c) { if(this->value() == c.value()) return true; if(mFz == c.mFz && mFm==c.mFm) return true; else return false; } friend ostream & operator<<( ostream & os,const Fraction & c); friend istream & operator>>( istream & is,Fraction & c); Fraction operator /(const Fraction b) { Fraction c; c.mFz = mFz*b.mFz; c.mFm = mFm*b.mFm; return c; } }; ostream & operator<<( ostream & os,const Fraction & c) { os <<"("<< c.mFz << "/" << c.mFm<<")" ; return os; } istream & operator>>(istream &is,Fraction &c) { char ch; is >> c.mFz >> ch >> c.mFm; return is; } int main() { Fraction a(2,3); Fraction b(4,5); cout << "a="<<a<<endl; cout <<"b="<<b<<endl; Fraction c = a; //拷贝构造函数 cout << "c="<<c <<endl; //显示c c *= b; cout <<"c*=b后 c="<< c<<endl; //显示乘以b后的数 if (c==b) { cout <<c<< "等于"<<b<<endl; }else cout << c<<"不等于"<<b<<endl; Fraction d; cout << "请输入一个分数:"; cin >> d; //输入d cout << d<<endl; //输出 Fraction e = a/d; cout <<a<<"/"<<d <<"="<<e<<endl; return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 HLs设计手写数字识别程序编译通不过
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 TYPCE母转母,插入认方向
- ¥15 如何用python向钉钉机器人发送可以放大的图片?
- ¥15 matlab(相关搜索:紧聚焦)
- ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
- ¥15 Arduino无法同时连接多个hx711模块,如何解决?
- ¥50 需求一个up主付费课程
- ¥20 模型在y分布之外的数据上预测能力不好如何解决