第十三周项目二:分数类中的运算符重载(2)

原创 2016年05月31日 14:12:12


问题及代码:

/*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作    者:崔青青
*完成日期:2016年5月31日
*版 本 号:v1.0
*问题描述:
*输入描述:无
*输出描述:无
*/
#include <iostream>

using namespace std;
class CFraction
{
private:
    int nume;//分子
    int deno;//分母
public:
    //构造函数以及运算符重载函数声明。
    CFraction(int n=0,int d=0){nume=n;deno=d;}
    CFraction operator+(int &c2);
    CFraction operator-(int &c2);
    CFraction operator*(int &c2);
    CFraction operator/(int &c2);
    friend CFraction operator+(int &c2,CFraction &c1);
    friend CFraction operator-(int &c2,CFraction &c1);
    friend CFraction operator*(int &c2,CFraction &c1);
    friend CFraction operator/(int &c2,CFraction &c1);
    void display();
    };
//重载函数的实现以及用于测试的main函数。
void CFraction::display()
{
    cout<<"分子:"<<nume<<" "<<"分母"<<deno<<endl;
}
CFraction CFraction::operator+(int &c2)
{
    CFraction c;
            c.deno=deno;
            c2=c2*deno;
            c.nume=nume+c2;
        return c;
}
CFraction CFraction::operator-(int &c2)
{
    CFraction c;
            c.deno=deno;
            c2=c2*deno;
            c.nume=nume-c2;
        return c;
}
CFraction CFraction::operator*(int &c2)
{
    CFraction c;
    c.nume=nume*c2;
    c.deno=deno;
    return c;
}
CFraction CFraction::operator/(int &c2)
{
    CFraction c;
    c.nume=nume;
    c.deno=deno*c2;
    return c;
}
CFraction operator+(int &c2,CFraction &c1)
{
    CFraction c;
    c.deno=c1.deno;
    c2=c2*c1.deno;
    c.nume=c1.nume+c2;
    return c;
}
CFraction operator-(int &c2,CFraction &c1)
{
    CFraction c;
    c.deno=c1.deno;
    c2=c2*c1.deno;
    c.nume=c2-c1.nume;
    return c;
}
CFraction operator*(int &c2,CFraction &c1)
{
    CFraction c;
    c.deno=c1.deno;
    c.nume=c2*c1.nume;
    return c;
}
CFraction operator/(int &c2,CFraction &c1)
{
    CFraction c;
    c.deno=c1.nume;
    c.nume=c1.deno*c2;
    return c;
}
    int main()
{
    CFraction c1(2,3),c3;
    int a=2;
    c3=c1+a;
    c3.display();
    c3=c1-a;
    c3.display();
    c3=c1*a;
    c3.display();
    c3=c1/a;
    c3.display();
    return 0;
}

运行结果:

知识点总结:

能够完成整形数据可以和分数类的数据相加减的时候,函数只能是友元函数。

学习心得:

运算符重载函数并不是什么时候都适用,还要考虑到参与运算的数据的类型。

版权声明:本文为博主原创文章,未经博主允许不得转载。

第十三周项目1-分数类中的运算符重载(改进)

问题及代码: /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *...
  • angeljing521
  • angeljing521
  • 2016年06月02日 08:47
  • 1865

C++第8周项目2 -Time类中的运算符重载

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijia...
  • sxhelijian
  • sxhelijian
  • 2013年04月20日 15:37
  • 2389

C++实践参考——分数类中的运算符重载

【项目1-分数类中的运算符重载】   (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。class CFraction { private: ...
  • sxhelijian
  • sxhelijian
  • 2016年05月19日 21:44
  • 3188

第十三周实践项目1————分数类的运算符重载(2)

问题及代码: /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016...
  • jnwujingchao
  • jnwujingchao
  • 2016年05月24日 15:28
  • 100

第十三周项目-项目1-(2)-分数类中的运算符重载

/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:刘涛 * 完成日期:2016年5月21日 *...
  • lemon_lebron
  • lemon_lebron
  • 2016年05月21日 14:48
  • 432

第十三周项目二:分数类中的运算符重载(1)

问题及代码: /*Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:崔青青 *完成日...
  • cqqdck
  • cqqdck
  • 2016年05月31日 14:07
  • 159

第十三周项目二:分数类中的运算符重载(4)

问题及代码: /*Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:崔青青 *完成日期:20...
  • cqqdck
  • cqqdck
  • 2016年05月31日 14:44
  • 100

第十三周项目二:分数类中的运算符重载(3)

问题及代码: /*Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:崔青青 *完成日期:20...
  • cqqdck
  • cqqdck
  • 2016年05月31日 14:17
  • 98

第十三周项目一分数类中的运算符重载

/*Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:main。cpp *作 者:闫舒 *完成日期:2016年6月21...
  • yanshuyanshu123
  • yanshuyanshu123
  • 2016年06月21日 17:23
  • 102

第十三周实践项目1————分数类的运算符重载(1)

问题及代码: /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年...
  • jnwujingchao
  • jnwujingchao
  • 2016年05月24日 15:10
  • 69
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第十三周项目二:分数类中的运算符重载(2)
举报原因:
原因补充:

(最多只允许输入30个字)