*烟台大学计算机学院学生
*All right reserved.
*文件名称*烟台大学计算机学院学生
*All right reserved.
*文件名称:项目3~~分数类的运算符重载(扩展)
*作者:杨飞
*完成日期:2014年4月15日
*版本号:v1.0
*对任务及求解方法的描述部分:项目3~~分数类的运算符重载(扩展)
*我的程序:
#include <iostream>
using namespace std;
class CFraction
{
private:
int zi; // 分子
int mu; // 分母
public:
friend CFraction operator +(double d ,CFraction &t);
friend CFraction operator -( double d,CFraction &t);
friend CFraction operator *(double d ,CFraction &t);
friend CFraction operator /( double d,CFraction &t);
CFraction operator +(double d);
CFraction operator -(double d);
CFraction operator *(double d);
CFraction operator /( double d);
CFraction (int x=0,int y=0);
void set(int x,int y);
void display();
};
CFraction::CFraction(int x,int y)
{
zi=x;
mu=y;
}
void CFraction::set (int x,int y)
{
zi=x;
mu=y;
}
void CFraction::display()
{
cout<<zi<<"/"<<mu<<endl;
}
CFraction CFraction::operator +(double d)
{
CFraction p;
p.zi=zi+d*mu;
p.mu=mu;
return p;
}
CFraction CFraction::operator -(double d)
{
CFraction p;
p.zi=zi-d*mu;
p.mu=mu;
return p;
}
CFraction CFraction::operator *(double d)
{
CFraction p;
p.zi=zi*d;
p.mu=mu;
return p;
}
CFraction CFraction::operator /(double d)
{
CFraction p;
p.zi=zi/d;
p.mu=mu;
return p;
}
CFraction operator +(double d ,CFraction &t)
{
CFraction p;
p.zi=t.mu*d+t.zi;
p.mu=t.mu;
return p;
}
CFraction operator -(double d ,CFraction &t)
{
CFraction p;
p.zi=t.mu*d-t.zi;
p.mu=t.mu;
return p;
}
CFraction operator *(double d ,CFraction &t)
{
CFraction p;
p.zi=d*t.zi;
p.mu=t.mu;
return p;
}
CFraction operator /(double d ,CFraction &t)
{
CFraction p;
p.zi=d/t.zi;
p.mu=t.mu;
return p;
}
int main()
{
CFraction n1(2,4),n2;
double d=2;
cout<<"n1+d="<<endl;
n2=n1+d;
n2.display();
cout<<"n1-d="<<endl;
n2=n1-d;
n2.display();
cout<<"n1*d="<<endl;
n2=n1*d;
n2.display();
cout<<"n1/d="<<endl;
n2=n1/d;
n2.display();
cout<<"交换律之后:"<<endl;
cout<<"d+n1="<<endl;
n2=d+n1;
n2.display();
cout<<"d-n1="<<endl;
n2=d-n1;
n2.display();
cout<<"d*n1="<<endl;
n2=d*n1;
n2.display();
cout<<"d/n1="<<endl;
n2=d/n1;
n2.display();
return 0;
}
运行结果:
心得体会:无!!!