iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++重载运算符实现分数加减乘除
  • 174
分享到

C++重载运算符实现分数加减乘除

2024-04-02 19:04:59 174人浏览 薄情痞子
摘要

本文实例为大家分享了c++重载运算符实现分数加减乘除的具体代码,供大家参考,具体内容如下 实现结果如下图所示: 代码如下所示: #include <iOStream>

本文实例为大家分享了c++重载运算符实现分数加减乘除的具体代码,供大家参考,具体内容如下

实现结果如下图所示:

代码如下所示:


#include <iOStream>
 
using namespace std;
 
class Rational {
public:
 Rational operator+(Rational rhs);
 Rational operator-(Rational rhs);
 Rational operator*(Rational rhs);
 Rational operator/(Rational rhs);
 Rational(int num, int denom);
 
private:
 void nORMalize(); //负责对分数做化简工作
 
 int numerator;//分子
 int denominator;//分母
 
 friend std::ostream& operator<<(ostream& os, Rational f);
};
 
Rational::Rational(int num, int denom) {
 numerator = num;
 denominator = denom;
 
 normalize();
}
 
//只允许分子为负数,若分母为负数则把负数挪到分子部分
//利用欧几里得算法将分数简化
void Rational::normalize() {
 if (denominator < 0) {
  numerator = -numerator;
  denominator = -denominator;
 }
 
 //欧几里得算法
 int a = abs(numerator);
 int b = abs(denominator);
 
 //求出最大公约数,a
 //eg: a=12,b=9.
 //t=3 a=9 b=3
 //t=0 a=3 b=0
 while (b > 0) {
  int t = a % b;//t为余数
  a = b; //a取除数
  b = t; //b取余数
 }
 
 //分子、分母分别处以最大公约数
 numerator /= a;
 denominator /= a;
}
 
//重载运算符函数是类的成员函数
//分数是先通分再加减
// a*d+b*c / b*d
Rational Rational::operator+(Rational rhs) {
 int a = numerator;
 int b = denominator;
 int c = rhs.numerator;
 int d = rhs.denominator;
 
 return Rational(a*d+b*c,b*d);
}
Rational Rational::operator-(Rational rhs) {
 int a = numerator;
 int b = denominator;
 int c = rhs.numerator;
 int d = rhs.denominator;
 
 return Rational(a*d - b*c, b*d);
 
 
}
Rational Rational::operator*(Rational rhs) {
 int a = numerator;
 int b = denominator;
 int c = rhs.numerator;
 int d = rhs.denominator;
 
 return Rational(a*c, b*d);
}
Rational Rational::operator/(Rational rhs) {
 int t = rhs.denominator;
 rhs.denominator = rhs.numerator;
 rhs.numerator = t;
 
 return operator*(rhs);
}
//该函数是友元函数,因此不用加空间域名
ostream& operator<<(ostream& os, Rational f);
 
int main() {
 Rational r1(4, 18);
 Rational r2(14, 18);
 
 cout << r1 << " + " << r2 << " = " << (r1 + r2) << endl;
 cout << r1 << " - " << r2 << " = " << (r1 - r2) << endl;
 cout << r1 << " * " << r2 << " = " << (r1 * r2) << endl;
 cout << r1 << " / " << r2 << " = " << (r1 / r2) << endl;
 
 system("pause");
 return 0;
}
 
ostream& operator<<(ostream& os, Rational f) {
 os << f.numerator << "/" << f.denominator;
 return os;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C++重载运算符实现分数加减乘除

本文链接: https://www.lsjlt.com/news/129256.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++重载运算符实现分数加减乘除
    本文实例为大家分享了C++重载运算符实现分数加减乘除的具体代码,供大家参考,具体内容如下 实现结果如下图所示: 代码如下所示: #include <iostream>...
    99+
    2024-04-02
  • c++重载运算符怎么实现复数加减
    要实现复数的加减操作符重载,可以重载加法运算符"+“和减法运算符”-"。以下是一个示例代码: #include ...
    99+
    2024-03-15
    c++
  • C++实现加减乘除计算器
    本文实例为大家分享了C++实现加减乘除计算器的具体代码,供大家参考,具体内容如下 #include <iostream> #include <conio.h>...
    99+
    2024-04-02
  • javascript如何实现加减乘除运算
    本篇内容主要讲解“javascript如何实现加减乘除运算”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript如何实现加减乘除运算”吧! ...
    99+
    2024-04-02
  • php怎么实现加减乘除的运算
    php实现加减乘除运算的方法:1、创建一个php示例文件;2、定义两个变量为“$x”和“$y”;3、通过“$x+$y”,“$x-$y”,“$x*$y”及“$x/$y”公式实现加减乘除运算;4、使用“echo”输出运算结果即可。本教程操作系统...
    99+
    2023-05-14
    php
  • MongoDB中怎么实现加减乘除运算
    本篇文章给大家分享的是有关MongoDB中怎么实现加减乘除运算,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.$add操作符(+)1.1 语...
    99+
    2024-04-02
  • C/C++高精度(加减乘除)算法的实现
    目录前言一、必要的参数二、辅助函数三、实现加减乘除1、加法2、减法3、乘法4、除法四、使用例子1、加法例子2、减法例子3、乘法例子4、除法例子前言 C/C++基本类型做算术运算时长度...
    99+
    2022-12-15
    C++实现高精度算法 C++高精度算法 C语言 高精度算法
  • PHP中怎么使用位运算实现加减乘除运算
    这篇文章主要介绍了PHP中怎么使用位运算实现加减乘除运算,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。计算机最基本的操作单元是字节,一个字节由8个位组成,一个位只能存储一个0...
    99+
    2023-06-20
  • Java使用位运算实现加减乘除详解
    目录1 . 实现加法2 . 实现减法3 . 实现乘法4 . 实现除法在线OJ: LeetCode 29. 两数相除 原题目的要求是不能使用乘法, 除法和取余运算符实现除法. 在本篇博...
    99+
    2023-05-19
    Java位运算实现加减乘除 Java位运算 加减乘除 Java位运算
  • 探究Python运算符的含义和应用:加、减、乘、除
    深入理解Python运算符:加法、减法、乘法、除法及其含义,需要具体代码示例 在Python编程语言中,运算符是进行各种数学操作的重要工具之一。其中,加法、减法、乘法和除法是最常见的运算符,本文将深入探讨这些运算符的含义及其在P...
    99+
    2024-01-20
    加法 乘法 减法
  • PHP如何在不使用加减乘除运算符号的情况下实现加法
    这篇文章主要讲解了“PHP如何在不使用加减乘除运算符号的情况下实现加法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP如何在不使用加减乘除运算符号的情况下实现加法”吧!写一个函数,求两个...
    99+
    2023-06-20
  • C++实现重载矩阵的部分运算符
    目录前言正文运行结果前言 博主本人为C++菜鸟一只,本篇博客也是第一次写,主要目的用于自己mark,如有错误欢迎指出 本博客代码为我做C++实验时的代码,由于自己是菜鸟,所以代码内容...
    99+
    2022-11-13
    C++ 重载矩阵运算符 C++ 重载运算符 C++ 矩阵运算符
  • php函数怎么实现加减乘除
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php函数怎么实现加减乘除?示例$a = 1; $b = 3 ;$c = 2.3 $a *$b *$c 的结果可能变成 6.8999999999999995登录后复制...
    99+
    2024-04-02
  • C#怎么实现运算符重载
    本篇内容介绍了“C#怎么实现运算符重载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!运算符重载的实现下面的程序演示了完整的实现:using&...
    99+
    2023-06-17
  • Java利用位运算实现加减乘除的方法详解
    目录前言一、常见位运算1. &运算2. |运算3. ^运算4. ~运算二、位运算实现加法三、位运算实现减法四、位运算实现乘法五、位运算实现除法前言 我们经常使用的加减乘除,我...
    99+
    2024-04-02
  • C++重载运算符是实例分析
    本篇内容介绍了“C++重载运算符是实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!运算符实际上是一个函数,所以运算符的重载实际上是函数...
    99+
    2023-06-29
  • php函数如何实现加减乘除
    这篇文章主要介绍“php函数如何实现加减乘除”,在日常操作中,相信很多人在php函数如何实现加减乘除问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php函数如何实现加减乘除”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-04
  • java实现简单的加减乘除计算器
    本文实例为大家分享了java实现加减乘除计算器的具体代码,供大家参考,具体内容如下 代码 import java.awt.*; import java.awt.event.*;...
    99+
    2024-04-02
  • C#中怎么实现运算符重载
    本篇文章给大家分享的是有关C#中怎么实现运算符重载,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是C#运算符重载?所谓运算符重载,就是对已有的运算符重新进行定义,赋予其另一...
    99+
    2023-06-18
  • C#中怎么通过运算符重载实现复数运算
    今天就跟大家聊聊有关C#中怎么通过运算符重载实现复数运算,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C#运算符重载实现复数运算的由来:函数的重载——同名函数,不同的参数(包括参数个...
    99+
    2023-06-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作