IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 06-C. 分数运算(类+构造) -> 正文阅读

[C++知识库]06-C. 分数运算(类+构造)

06-构造与析构-

题目描述
用C++定义和实现一个分数类,并根据要求完成分数对象的运用

分数类包含分子和分母两个属性,操作包括:

1 . 各属性的get方法

2 . 构造函数,初始化分子分母

3 . 相加运算,该运算接收两个分数对象的分子和分母,然后进行分数相加,结果保存在自己的分子和分母中,运算规则为:假设当前分数为A0/B0,接收两个分数A1/B1和A2/B2,相加结果,A0=A1×B2 + A2×B1,B0=B1×B2

4 . 相乘运算,该运算接收两个分数对象的分子和分母,然后进行分数相乘,运算规则为:假设当前分数为A0/B0,接收两个分数A1/B1和A2/B2,然后进行分数相乘,A0=A1×A2,B0= B1×B2

5 . 显示函数,显示格式:分数/分母


在主函数中定义若干个分数对象,并使用分数对象进行运算。

提示:每个分数运算都包含三个分数对象,例如要做分数A和B的相加,那么除了A和B还要定义C,通过调用C的相加方法,把A和B的分子分母传递给C运算,结果保存在C中

注意:提交代码时必须用注释划分出三个区域:类定义、类实现、主函数,如下

输入
第一行输入t表示有t个测试实例

第二行输入第一个分数的分子和分母,都用整数输入,都不为0

第三行输入第二个分数的分子和分母,都用整数输入,都不为0

依次类推输入其他实例的分数分子和分母

注意:如果分数是负数,负号在分子中输入,例如负的五分之三,则分子为-3,分母为5

输出
输出每个实例的运算结果,每个实例包含三行

第一行输出要运算的两个分数对象

第二行输出两个分数相加的结果,注意相加的运算、结果显示都要使用第三个对象的方法

第三行输出两个分数相乘的结果,注意相乘的运算、结果显示都要使用第三个对象的方法

输入样例
2
2 3
4 5
-3 4
5 6

2/3 4/5
22/15
8/15
-3/4 5/6
2/24
-15/24

#include <iostream>
using namespace std;
//不用约分!!!

//-----类定义------
class fraction
{
    int mole,deno;
public:
    fraction();//无参构造函数
    fraction(int m,int d);//有参构造函数
    int getmole();
    int getdeno();
    void setmole(int m);
    void setdeno(int d);
    void print();
    void add(fraction f);
    void multi(fraction f);
};

//----类实现------
fraction::fraction()
{mole=0;deno=0;}
fraction::fraction(int m,int d)
{mole=m;deno=d;}
int fraction::getmole()
{return mole;}
int fraction::getdeno()
{return deno;}
void fraction::setdeno(int d)
{deno=d;}
void fraction::setmole(int m)
{mole=m;}
void fraction::print()
{
    if((deno<0&&mole<0)||deno<0)
    {
        deno=0-deno;
        mole=0-mole;
    }
    cout<<mole<<"/"<<deno<<endl;
}
void fraction::add(fraction f)
{
    fraction ff;
    ff.setmole(mole*f.deno+f.mole*deno) ;
    ff.setdeno(deno*f.deno);
    ff.print();
}
void fraction::multi(fraction f)
{
    fraction ff;
    ff.setmole(mole*f.mole);
    ff.setdeno(deno*f.deno);
    ff.print();
}

//-----主函数-----
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int m1,d1,m2,d2;
        cin>>m1>>d1>>m2>>d2;
        fraction f1(m1,d1);
        fraction f2(m2,d2);
        cout<<f1.getmole()<<"/"<<f1.getdeno()<<" "<<f2.getmole()<<"/"<<f2.getdeno()<<endl;
        f1.add(f2);
        f1.multi(f2);
    }
    return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-28 12:13:13  更:2021-10-28 12:16:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:21:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码