码迷,mamicode.com
首页 > 编程语言 > 详细

C++程序设计实践指导1.6分数运算改写要求实现

时间:2015-02-04 12:42:38      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

改写要求:重载>>和<<实现分数类对象的直接输入输出,重载+完成多个分数对象加法

#include <cstdlib>
#include <iostream>

using namespace std;
class Fract
{
    
      int num,den;
      public:           
             friend ostream& operator << (ostream& output,Fract& temp);
             friend istream& operator >> (istream& intput,Fract& temp1);
             Fract operator + (Fract& temp1);
             int gcd(int m,int n)
             {
                 int r;
                 if(m<n)
                 {
                        r=m;m=n;n=r;
                 }
                 while(r=m%n)
                 {
                      m=n;
                      n=r;
                 }
                 return n;
             }
           
};

istream& operator >>(istream& input,Fract& temp1)
{
         input>>temp1.num>>temp1.den;
         return input;
}

ostream& operator <<(ostream& output,Fract& temp)
{
         output<<temp.num<<"/"<<temp.den<<endl;
         return output;
}

Fract Fract::operator + (Fract& temp1)
{
         Fract sum;
         int x,y,temp;
         x=num*temp1.den+den*temp1.num;
         y=den*temp1.den;
         temp=gcd(x,y);
         x=x/temp;
         y=y/temp;
         sum.num=x;
         sum.den=y;
         return sum;
}
             
int main(int argc, char *argv[])
{
    Fract temp1,temp2,temp;
    cin>>temp1>>temp2;
    temp=temp1+temp2;
    cout<<temp;
    system("PAUSE");
    return EXIT_SUCCESS;
}

 

C++程序设计实践指导1.6分数运算改写要求实现

标签:

原文地址:http://www.cnblogs.com/c5395348/p/4272013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!