#include<stdio.h>
#include<iostream>
using namespace std;
class fraction
{
double molecular,denominator;
public:
void start()
{
char ch;
cout<<"输入分数:"<<endl;
cin>>molecular;
cin>>ch;
cin>>denominator;
}
void print();
friend fraction &operator++(fraction &a);
friend fraction operator +(fraction a,fraction b);
friend fraction operator -(fraction a,fraction b);
friend fraction operator *(fraction a,fraction b);
friend fraction operator /(fraction a,fraction b);
};
void fraction::print()
{
cout<<"输出分数:"<<endl;
cout<<molecular<<"/"<<denominator<<endl;
}
fraction operator +(fraction a,fraction b)
{
fraction temp;
temp.molecular=a.molecular*b.denominator+b.molecular*a.denominator;
temp.denominator=a.denominator*b.denominator;
cout<<"输出分数:"<<endl;
cout<<a.molecular<<"/"<<a.denominator<<" + "<<b.molecular<<"/"<<b.denominator;
cout<<"="<<temp.molecular<<"/"<<temp.denominator<<endl;
return temp;
}
fraction operator -(fraction a,fraction b)
{
fraction temp;
temp.molecular=a.molecular*b.denominator-b.molecular*a.denominator;
temp.denominator=a.denominator*b.denominator;
cout<<"输出分数:"<<endl;
cout<<a.molecular<<"/"<<a.denominator<<" - "<<b.molecular<<"/"<<b.denominator;
cout<<"="<<temp.molecular<<"/"<<temp.denominator<<endl;
return temp;
}
fraction operator *(fraction a,fraction b)
{
fraction temp;
temp.molecular=a.molecular*b.molecular;
temp.denominator=a.denominator*b.denominator;
cout<<"输出分数:"<<endl;
cout<<a.molecular<<"/"<<a.denominator<<" * "<<b.molecular<<"/"<<b.denominator;
cout<<"="<<temp.molecular<<"/"<<temp.denominator<<endl;
return temp;
}
fraction operator /(fraction a,fraction b)
{
fraction temp;
temp.molecular=a.molecular*b.denominator;
temp.denominator=a.denominator*b.molecular;
cout<<"输出分数:"<<endl;
cout<<a.molecular<<"/"<<a.denominator<<" ÷ "<<b.molecular<<"/"<<b.denominator;
cout<<"="<<temp.molecular<<"/"<<temp.denominator<<endl;
return temp;
}
fraction &operator++(fraction &a)
{
a.molecular+=a.denominator;
}
int main()
{
fraction c1,c2,c3;
c1.start();
c2.start();
++c1;
c1.print();
c3=c1+c2;
c3=c1-c2;
c3=c1*c2;
c3=c1/c2;
return 0;
}
运算符重载简单应用之分数四则运算
最新推荐文章于 2020-06-22 12:02:27 发布