分数计算器(C++课设)

需求概述

(1)设计一个分数计算器,进行分数的算术运算和逻辑运算。
(2)能够像使用基本数据的对象一样,对分数进行“+”、“-”、“*”和“/”等算术运算和比较两个分数的大小。
(3)以a/b的形式输入输出分数,允许输入输出整数这种特殊形式。
(4)对不是约化型的分数进行约化,避免分母为负数。
(5)如果分数的分母为0、除数为0或输入时格式有错,采用异常处理机制解决。

输入

以分数的形式输入。(如1/2)
在这里插入图片描述
若分母为0会抛出异常,重新输入。
菜单页面

RationalNumber.h(头文件)

#ifndef RATIONAL_NUMBER_H
#define RATIONAL_NUMBER_H

class RationalNumber
{
   
public:
   RationalNumber( int = 0, int = 1 ); // 默认构造函数

   RationalNumber &operator+(const RationalNumber&);
   RationalNumber operator-(const RationalNumber&);
   RationalNumber operator*(const RationalNumber&);
   RationalNumber operator/(const RationalNumber&);

   // 关系运算符
   bool operator>(const RationalNumber&)const;
   bool operator<(const RationalNumber&)const;
   bool operator>=(const RationalNumber&)const;
   bool operator<=(const RationalNumber&)const;

   // 判等运算符
   bool operator==(const RationalNumber&)const;
   bool operator!=(const RationalNumber&)const;

   void printRational() const; // 以分数形式显示
private:
   int numerator; // 私有变量 分子
   int denominator; //私有变量 分母
   void reduction(); // 分数约分
}; // end class RationalNumber

#endif

RationalNumber.cpp

#include <cstdlib>
#include <iostream>
using namespace std;

#include "RationalNumber.h"

// RationalNumber 构造函数设置a和b并经行约分
RationalNumber::RationalNumber(int a, int b)
{
   
    if (b <= 0)
        b = 1;
    numerator = a;
    denominator = b;
    reduction();
}
//重载+运算符
RationalNumber &RationalNumber::operator+(const RationalNumber &right)
{
   
    RationalNumber temp;
    if(denominator==right.denominator)
    {
   
        temp.numerator=numerator+right.numerator;
        temp.denominator=denominator;
    }
    else
    {
   
        temp.numerator=numerator*right.denominator+denominator*right.numerator;
        temp.denominator=denominator*right.denominator;
    }
    temp.reduction();
    return temp;
}
// 重载-运算符
RationalNumber RationalNumber
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值