分数运算(类+构造)

2023-11-15

题目描述
用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中

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

//-----类定义------
class XXX

{ // 写类定义代码

};

//----类实现------

void Process::XXX()

{ // 写类定义代码

};

//-----主函数-----

int main()

{

//写对象的创建和运行过程

return 0;

}

输入
第一行输入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>
#include<iomanip>
#include<cmath>

using namespace std;

//-----类定义------
class CFraction
{
private:
    int fz, fm;
public:
    CFraction();
    CFraction(int fz_val, int fm_val);
    void add(const CFraction& a, const CFraction& b);
    void mul(const CFraction& a, const CFraction& b);
    int getFz();
    int getFm();
    void print();
};

//----类实现------
CFraction::CFraction()
{
    fz = 0;
    fm = 0;
}
CFraction::CFraction(int fz_val, int fm_val)
{
    fz = fz_val;
    fm = fm_val;
}
int CFraction::getFz()
{
    return fz;
}
int CFraction::getFm()
{
    return fm;
}
void CFraction::add(const CFraction& a, const CFraction& b)
{
    fz = a.fz * b.fm + b.fz * a.fm;
    fm = a.fm * b.fm;
}
void CFraction::mul(const CFraction& a, const CFraction& b)
{
    fz = a.fz * b.fz;
    fm = a.fm * b.fm;
}
void CFraction::print()
{
    cout << fz << "/" << fm;
}

//-----主函数-----
int main()
{
    int fz1, fm1, fz2, fm2;

    int t;
    cin >> t;
    while (t--)
    {
        cin >> fz1 >> fm1;
        cin >> fz2 >> fm2;
        CFraction c1(fz1, fm1), c2(fz2, fm2);
        CFraction c3;
        c1.print();
        cout << " ";
        c2.print();
        cout << endl;
        c3.add(c1, c2);
        c3.print();
        cout << endl;
        c3.mul(c1, c2);
        c3.print();
        cout << endl;
    }
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分数运算(类+构造) 的相关文章

  • CLR 2.0 与 4.0 性能比较?

    如果在 CLR 4 0 下运行 为 CLR 2 0 编译的 NET 程序会运行得更快吗 应用程序配置
  • 使用 lambda 表达式注册类型

    我想知道如何在 UnityContainer 中实现这样的功能 container RegisterType
  • 使用 C# 登录《我的世界》

    我正在尝试为自己和一些朋友创建一个简单的自定义 Minecraft 启动器 我不需要启动 Minecraft 的代码 只需要登录的实际代码行 例如 据我所知 您过去可以使用 string netResponse httpGET https
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 函数参数的默认参数是否被视为该参数的初始值设定项?

    假设我有这样的函数声明 static const int R 0 static const int I 0 void f const int r R void g int i I 根据 dcl fct default 1 如果在参数声明中指
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp

随机推荐

  • Android 10.0 系统settings详情页 卸载修改为停止,禁止卸载app功能实现

    1 概述 在10 0的系统rom定制化功能的开发过程中 在一些系统预安装的app中 在Launcher3中可以通过拖拽然后卸载 这个限制卸载可以在前面的博客中禁止卸载这些预安装的app 然后就需要在系统Settings详情页来禁止app的卸
  • C语言 用户输入运算数和四则运算符,输出计算结果

    用C语言中简单的语句可以实现四则运算 1 if语句 include
  • 翻译 第11章 of IEEE Std 1666-2011 IEEE Standard for Standard SystemC Language Reference Manual

    11 TLM 2 0 core interfaces 11 TLM 2 0 核心接口 In addition to the core interfaces from TLM 1 TLM 2 0 adds blocking and non b
  • 如何把笔记本做台式机的副屏(一套键鼠控制两台电脑)

    通过一套键鼠控制两台电脑 前提 安装所需的软件 一 简介 二 安装 2 1 小技巧 前提 两台电脑在同一个局域网内 并且均为windows操作系统 例如两台电脑链接的同一个WIFI 或者笔记本无线连接路由 台式机插网线链接路由 只有在同一个
  • 史上最全排序算法全面总结

    考察点 在信息学奥赛初赛中对于排序算法的考察主要体现在以下几方面 1 时间复杂度 2 稳定性 3 最坏情况下移动次数 4 移动次数与关键字顺序关系 先看熟记知识点 1 关于稳定性 假定在待排序的记录序列中 存在多个具有相同的关键字的记录 若
  • 指针空间的申请和释放

    http blog csdn net netanimals article details 6530787
  • 若依跨域解决

    发现接口取消权限校验之后 跨域调用还是失败了 若依本身有跨域配置 注释掉换为新的 若依原跨域配置 ResourcesConfig 中 跨域配置 Bean public CorsFilter corsFilter CorsConfigurat
  • matlab中常用符号

    在使用MATLAB的过程中 经常需要对输出图形中的变量进行标注 其中经常遇到的难题就是如何标注各种上标 下标 斜体 黑体 箭头 上圆圈 正负号等特殊符号 以及如何标注特殊的数学符号 这里第一机电网给大家总结一下 希望对大家有用 一 MATL
  • 奥林巴斯新微单E-M5II曝光:合金机身可防水

    通常单反相机是专业摄影师的最佳工具 但是对于普通消费者来说 既要拥有专业的图像质量 又不想负担单反相机沉重的质量 就成为了基本的要求 因此 微单相机就在这种情况下应运而生 如果你还没决定好选择哪一款微单 那么奥林巴斯即将推出的这款OM D
  • Android APP性能及专项测试

    Android篇 1 性能测试 Android性能测试分为两类 1 一类为rom版本 系统 的性能测试 2 一类为应用app的性能测试 Android的app性能测试包括的测试项比如 1 资源消耗 2 内存泄露 3 电量功耗 4 耗时 5
  • 【C++ 进阶】继承

    一 继承的定义格式 基类又叫父类 派生类又叫子类 二 继承方式 继承方式分为三种 1 public继承 2 protected继承 3 private继承 基类成员与继承方式的关系共有9种 见下表 虽然说是有9种 但其实最常用的还是红框里的
  • 随心所欲Do whatever you want——Minecraft

    Minecraft是一款沙盒类电子游戏 开创者是马库斯 阿列克谢 泊松 由微软旗下Mojang Studios维护 从2017年开始 中国版 我的世界 由网易游戏代理 目标 Minecraft着重于让玩家去探索 交互 并且改变一个由一立方米
  • Github使用学习笔记(二)

    第二节任务 如何把我在本地上的工程上传到github上已经建好的仓库中 一 在本地目录下创建我的版本库 mkdir learngit cd learngit git init ls ah 首先创建一个空目录 目录名为learngit 之后进
  • 【华为OD】

    目录 一 题目描述 二 输入描述 三 输出描述 备注 用例 四 题目解析 五 Java玩法 六 JavaScript玩法 一 题目描述 一个图像有 n 个像素点 存储在一个长度为 n 的数组 img 里 每个像素点的取值范围 0 255 的
  • 网站流量统计

    常使用web服务器的朋友大都了解 一般的web server有两部分日志 一是运行中的日志 它主要记录运行的一些信息 尤其是一些异常错误日志信息 二是访问日志信息 它记录的访问的时间 IP 访问的资料等相关信息 现在我来和大家介绍一下利用t
  • 高级定时器 tim1 tim8 一般中断配置,以防以后忘记

    void Timer8 Init void TIM TimeBaseInitTypeDef TIM TimeBaseStructure NVIC InitTypeDef NVIC InitStructure RCC APB2PeriphCl
  • C++设计模式——单例模式 (一)

    单例模式 一个类只能创建一个对象 单例模式是C 中常用的一种设计模式 熟悉Qt的朋友肯定清楚QApplication实际也是采用的单例模式 并且为用户提供了一个全局的指针对象 qApp 我们先看看Qt中对于单例的实现 define qApp
  • Android NDK是什么

    官方给出的答案 Android NDK 是一套允许您使用原生代码语言 例如 C 和 C 实现部分应用的工具集 在开发某些类型应用时 这有助于您重复使用以这些语言编写的代码库 深入的学习 https developer android goo
  • 13 款炫酷的 MySQL 可视化管理工具!好用到爆!!

    MySQL 的管理维护工具非常多 除了系统自带的命令行管理工具之外 还有许多其他的图形化管理工具 工具好用是一方面 个人的使用习惯也很重要 这里介绍 13 款 MySQL 图形化管理工具 供大家参考 1 DBeaver DBeaver 是一
  • 分数运算(类+构造)

    题目描述 用C 定义和实现一个分数类 并根据要求完成分数对象的运用 分数类包含分子和分母两个属性 操作包括 各属性的get方法 构造函数 初始化分子分母 相加运算 该运算接收两个分数对象的分子和分母 然后进行分数相加 结果保存在自己的分子和