21xrx.com
2025-04-02 07:51:40 Wednesday
文章检索 我的文章 写文章
C++实现分数运算
2023-06-29 17:49:08 深夜i     11     0
C++编程 分数计算 运算符重载 整数转分数 分数约分

分数运算在日常生活中常常用到,比如比较两个人的成绩、计算家庭用电量等。在编程中也经常需要对分数进行运算。C++语言可以利用自定义分数类型实现分数运算。

自定义分数类型通常包含分子和分母两个整型成员变量,以及一些函数成员来实现分数的加减乘除等基本运算。下面是一个基本的分数类的定义:

class Fraction {
public:
  Fraction(int n = 0, int d = 1) : num(n), den(d) { }
  Fraction operator+ (const Fraction& f) const {
    return Fraction(num*f.den + den*f.num, den*f.den);
  }
  Fraction operator- (const Fraction& f) const {
    return Fraction(num*f.den - den*f.num, den*f.den);
  }
  Fraction operator* (const Fraction& f) const {
    return Fraction(num*f.num, den*f.den);
  }
  Fraction operator/ (const Fraction& f) const {
    return Fraction(num*f.den, den*f.num);
  }
  bool operator== (const Fraction& f) const {
    return num*f.den == den*f.num;
  }
  bool operator!= (const Fraction& f) const {
    return !(*this == f);
  }
  bool operator< (const Fraction& f) const {
    return num*f.den < den*f.num;
  }
  bool operator<= (const Fraction& f) const {
    return num*f.den <= den*f.num;
  }
  bool operator> (const Fraction& f) const {
    return num*f.den > den*f.num;
  }
  bool operator>= (const Fraction& f) const {
    return num*f.den >= den*f.num;
  }
  friend istream& operator>> (istream& in, Fraction& f) {
    in >> f.num >> f.den;
    return in;
  }
  friend ostream& operator<< (ostream& out, const Fraction& f) {
    out << f.num << "/" << f.den;
    return out;
  }
private:
  int num;
  int den;
};

定义了分数类之后,就可以进行各种分数运算了。比如:

Fraction a(2, 3); // 定义一个分数 2/3
Fraction b(3, 4); // 定义一个分数 3/4
Fraction c = a + b; // 计算 a+b
Fraction d = a - b; // 计算 a-b
Fraction e = a * b; // 计算 a*b
Fraction f = a / b; // 计算 a/b

以上代码中,c、d、e、f分别是a、b进行加减乘除运算的结果。另外,分数之间可以进行比较运算(==、!=、<、<=、>、>=),比较的规则和实数一样。

此外,还可以通过重载输入输出运算符,方便地输入、输出分数。比如:

Fraction a;
cin >> a; // 输入分数
cout << a; // 输出分数

以上代码可以让用户输入一个分数,并输出该分数。

总之,C++语言可以通过自定义分数类型实现分数运算,为编程工作带来了极大的便利。

  
  

评论区