用运算符重载实现分数的加减乘除(c++实现)

2023-11-04

此程序运用c++程序中的运算符重载来做。

text.cpp
#include<iostream>
#include<iomanip>
#include"Score.h"
using namespace std;
int main()
{
	Score a,b,c;
	cout <<"输入三个分数" <<endl;
	cin>>a;
	cin>>b;
	cin>>c;
	a=a+b;
	cout<<"a=a+b的值为:";
	cout <<a<<endl;
	a=a-b;
	cout <<"a=a-b的值为:"; 
	cout <<a<<endl;
	cout <<"b=b*c的值为:"; 
	b=c*b;
	cout <<b<<endl;
	cout <<"a=a/c的值为:"; 
	a=a/c;
	cout <<a<<endl;
}

Srore.h
#include<iostream>
#ifndef SCORE_H
#define SCORE_H
using namespace std; 
class Score
{
	friend ostream & operator<<(ostream&,     const Score &);
	friend istream & operator>>(istream&,     Score &);
	friend	Score operator+(Score x,Score y);
	friend	Score operator-(Score x,Score y);
	friend	Score operator*(Score x,Score y);
	friend	Score operator/(Score x,Score y);
	public:
		Score(int m=0,int d=0);
		~Score();
	private: 
	int mole;
	int deno;
};

#endif

Score.cpp
#include "Score.h"
#include<iostream>
#include<iomanip>
using namespace std;
ostream& operator<<(ostream &output,    const Score &sco)
{
	output<< sco.mole << "/" << sco.deno;
	return output; 
}
istream& operator>>(istream &input,    Score &sco)
{
	input>>sco.mole;
	input.ignore(1);                                
	input>>sco.deno;
	return input;
}
Score::Score(int m,int d)
{
	mole=m;
	deno=d;
}
Score operator+(Score x,Score y)
{
	int z;
	int q;
	if(x.deno==y.deno)
	{
		x.mole=x.mole+y.mole;
	}
	z=x.deno;
	q=y.deno;
	while(z%q!=0)
	{
		z=q;
		q=z%q;
	}
	z=x.deno;
	q=y.deno;
	x.deno=x.deno*y.deno/q;
	x.mole=x.mole*(x.deno/z)+y.mole*(x.mole/q);
	return x;
}
Score operator-(Score x,Score y)
{
	int z;
	int q;
	if(x.deno==y.deno)
	{
		x.mole=x.mole-y.mole;
	}
	z=x.deno;
	q=y.deno;
	while(z%q!=0)
	{
		z=q;
		q=z%q;
	}
	z=x.deno;
	q=y.deno;
	x.deno=x.deno*y.deno/q;
	x.mole=x.mole*(x.deno/z)- y.mole*(x.mole/q);
	return x;
}
Score operator*(Score x,Score y)
{
	x.mole=x.mole*y.mole;
	x.deno=x.deno*y.deno;
	return x;
}
Score 	operator/(Score x,Score y)
{
	int z=y.mole;
	y.mole=y.deno;
	y.deno=z;
	x.mole=x.mole*y.mole;
	x.deno=x.deno*y.deno;
	return x;
}
Score::~Score()
{
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用运算符重载实现分数的加减乘除(c++实现) 的相关文章

  • Vue入门案例--TodoList备忘录

    文章目录 前言 1 创建Vue项目 2 搭建项目 2 1 MyHeader编写 2 2 MyList编写 2 3 MyItem编写 2 4 MyFooter编写 2 5 App编写 3 初始化列表 3 1 App定义数据 3 2 MyLis
  • 排序动态图

    1 冒泡排序 2 选择排序 3 鸡尾酒排序 4 插入排序 5 归并排序 6 堆排序 7 希尔排序 8 快速排序 上面的图片如果打不开 在新标签页面就可以
  • python3.7 安装Airflow中HiveToMySqlTransfer报错解决

    报错内容如下 File app python lib python3 7 site packages airflow hooks hive hooks py line 783 in get conn from pyhive hive imp
  • 百度地图BMap

    做了半天 搜到一个很好的demo 能解决多点的问题 http blog csdn net a497785609 article details 24009031 div style width 100 height 500px border
  • [大话设计模式C++版] 第9章 简历复印 —— 原型模式

    源码可以在这里找到 大话设计模式C 版 简历代码初步实现 写一个简历类 必须要有姓名 可以设置性别和年龄 可以设置工作经历 客户端实例化三份简历 main cpp include
  • docker运行报错:docker: Error response from daemon: No command specified.

    mysql镜像运行报错 docker Error response from daemon No command specified 如图 解决方案 是由于命令没启用的缘故 所以需要在运行命令后面追加 bin bash 如下图 问题解决 希
  • IDEA中找不到符号问题解决

    把以上三处的jdk从8改成11 再也不想看到这个问题了
  • 开启WSL之旅

    专业点的计算机使用者 会经常跟Linux与windows系统打交道 经常是一台计算机装双系统或者在一个系统中安装虚拟机 双系统来回切换 挺麻烦 遇到同时需要两个环境时 就没办法了 虚拟机 对于配置高的机器还可以 不过性能体验也不太好 总之是
  • “烧钱”的大模型:初探成本拆解与推理优化方法

    编者按 大模型的成本问题一直以来是大家重点关注的问题 本文重点讨论了训练大型语言模型 LLMs 需要的成本 并简要介绍什么是LLM以及一些用于优化大模型推理表现的技术 虽然很难准确预测LLMs未来会怎么发展 但可以肯定 如果成本问题得到解决
  • 服务器系统文件共享如何设置,服务器操作系统文件共享设置

    服务器操作系统文件共享设置 内容精选 换一换 切换操作系统是为您的云服务器重新切换一个系统盘 切换完成后云服务器的系统盘ID会发生改变 并删除原有系统盘 如果云服务器当前使用的操作系统不能满足业务需求 如软件要求的操作系统版本较高 您可以选
  • 思科设备命令讲解(超基础)

    作者 小刘在C站 个人主页 小刘主页 每天分享云计算网络运维课堂笔记 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 夕阳下 是最美的绽放 树高千尺 落叶归根人生不易 人间真情 目录 一 静态路由配置命令 二 默认路由配置命令
  • 2023年前端面试题总结

    某多多 1 Promise实现原理 2 vue组件间通信 3 性能优化 4 vuex数据流动过程 5 谈谈css预处理器机制 6 算法 Promise串行 某眼电影 1 vue组件间通信 2 react和vue更新机制的区别 3 Vue3
  • 超硬货,大型 Rust 项目经验分享

    本篇文章中 我将分享我组织大型 Rust 项目的经验 但这绝不是权威的 只是我通过尝试和错误中发现的一些小技巧 Cargo 作为 Rust 的构建系统 遵循约定大于配置的原则 它不仅为小型项目提供了一套良好的默认配置集 尤其为公共 crat
  • Flash学习笔记

    快捷键 1 F8 可以将散件转化为元件 2 Ctrl 2 满画布显示 3 F6 插入关键帧 4 Ctrl Enter 预览 一 第一章 1 颜料桶 更改填充色 墨水瓶 改变边框色 2 动画的分类 位移动画 形变动画 逐帧动画 路径动画 蒙版
  • Windows server 2012_R2 无法安装VMware Tools解决方法(详细)

    百度网盘 链接 https pan baidu com s 1QbIHSv1Df8eVAIH2ym1g8Q pwd rdi4 提取码 rdi4 官网下载链接 KB2919442https www microsoft com zh cn do
  • Table固定表头固定左侧列

    效果图 思路 把需要固定的内容进行拆封 比如左侧的表头和内容 右侧的表头和内容 都单独的存放在一个table中 在滚动条滚动的时候通过jquery scroll 区分横向纵向滚动条的方法来实现左侧内容的滚动和右侧表头的滚动 第一步 div
  • 直接线性变换解法(DLT)用于标定相机

    直接线性变换法是建立像点坐标和相应物点物方空间坐标之间直接的线性关系的算法 特点 不需要内外方位元素 适合于非量测相机 满足中 低精度的测量任务 可以标定单个相机 1 各坐标系之间的关系推导直接线性变换解法 1 1 像素坐标系与像平面坐标系
  • MATLAB中用Application Complier生成可执行文件的步骤及相关注意事项

    生成可独立执行的软件 可以分成以下5个主要的步骤 1 打开Application Complier 2 添加主程序文件 3 可执行文件设置 4 选择打包方式 5 相关文件解释 大体步骤多类似 里面有些容易出错的小细节 相关设置需要注意的有
  • node中使用express+mongodb实现分页查询

    文章目录 引言 一 分页案例 二 查询方法扩展介绍 1 find 2 limit 3 skip 4 populate 总结 引言 在Web应用程序开发中 分页查询是必不可少的功能之一 Node js提供了许多优秀的工具和框架来实现分页查询
  • 马虎的算式

    import java util public class Main public static void main String args int ans 0 for int a 1 a lt 10 a for int b 1 b lt

随机推荐

  • Struts2输入校验(XML方式)

    本章主要介绍struts2的XML配置方式输入校验 以下将结合一个实例程序进行说明 代码结构 关键代码 RegistAction javapackage com alfred regist action import java util D
  • libuv 高并发异步使用

    问题来源 在开发libuv客户端 服务器时 需要并发的向客户端发送数据 libuv就会用到 uv write函数 因此 我的初步方案是 1 创建线程池 2 线程池分配数据内存buf 并打包 3 将包发给 uv write 4 uv writ
  • 为什么越来越多的企业选择云数据存储而放弃本地数据存储?

    随着企业的发展 它们会产生大量数据 企业已经意识到 利用他们的数据做出数据驱动的决策对于创新和保持竞争优势至关重要 本文将会探讨企业在收集和分析大数据时可能面临的主要挑战 以及将企业数据仓库部署到本地或云数据存储的选择 我们将根据安全性 成
  • 金融行业软件测试

    金融行业软件测试 一 什么是金融行业 二 金融行业的业务特点 1 金融行业的业务特点 三 金融行业测试主要测试范围 1 功能测试 2 业务验证测试 3 客户端测试 4 接口测试 5 性能测试 6 安全性测试 四 金融行业软件测试的现状 五
  • Qt-Web混合开发-QWebEngineView加载网页最小示例(1)

    Qt Web混合开发 QWebEngineView加载网页最小示例 文章目录 Qt Web混合开发 QWebEngineView加载网页最小示例 1 概述 2 实现效果 3 实现功能 4 关键代码 5 源代码 更多精彩内容 个人内容分类汇总
  • docker原理及服务编排

    一 什么是docker Docker 是一个开源项目 诞生于2013年初 最初是dotCloud公司内部的一个业余项目 它基于Google公司推出的Go语言实现 项目后来加入了Linux基金会 遵从了Apache 2 0协议 项目代码在Gi
  • C++之 引用(refer)

    含义 变量的别名 第二名称 作用 使用别名访问原名的内存空间 即别名与原名保存同样的内存空间 语法 数据类型 别名 原名 int b a 注意事项 引用必须要初始化 对于一个变量a 不能直接写int b 而需要写int b a 引用在初始化
  • 水箱计算机控制系统设计,三容水箱计算机控制实验系统设计与控制算法研究

    摘要 三容水箱是一种典型控制对象 许多现场控制类型可以抽象成三容水箱数学模型 可作为自动化控制领域研究对象 三容水箱是一种柔性结构系统 通过水箱管路的组合形成各阶控制对象类型并且对各种控制算法进行设计 仿真和验证 目前三容水箱存在实验类型单
  • zookeeper报错 JAVA_HOME is not set

    zookeeper报错 JAVA HOME is not set 很多开发者安装zookeeper的时候 应该会发现到这么一个问题 JAVA HOME is not set 好的 那么这个是什么意思呢 就是说你的 JAVA HOME 变量没
  • OCR文本检测模型:FCENet论文阅读笔记

    文章目录 前言 摘要 Abstract 1 介绍 Introduction 2 相关工作 Related Work 3 方法 Approach 3 1 傅里叶轮廓嵌入 Fourier Contour Embedding 3 2 FCENet
  • msvcp140.dll丢失的解决方法

    MSVCP140是一个非常重要的Windows系统文件 它是Microsoft Visual C Redistributable的一部分 用于运行许多应用程序和游戏 如果您在尝试启动某个应用程序或游戏时遇到了MSVCP140 dll缺失的错
  • 深度对抗学习在图像分割和超分辨率中的应用

    深度学习已经在图像分类 检测 分割 高分辨率图像生成等诸多领域取得了突破性的成绩 但是它也存在一些问题 首先 它与传统的机器学习方法一样 通常假设训练数据与测试数据服从同样的分布 或者是在训练数据上的预测结果与在测试数据上的预测结果服从同样
  • 信号处理基础——傅里叶变换与短时傅里叶变换

    目录 信号处理基础 傅里叶变换与短时傅里叶变换 1 FT与STFT概述 2 短时傅里叶变换 Short time Fourier Transform STFT 3 spectrogram函数 4 注意事项 5 实例分析 6 Chirp信号及
  • Chromium headless模式开发的一切

    获取和编译chromium Linux https chromium googlesource com chromium src refs heads main docs linux build instructions md Window
  • Python 基础合集4:Python的数据结构(str、list、tuple、dict、set)

    一 前言 本节主要介绍几种数据结构 str list tuple dict set 及其应用 增删改查和注意事项 环境说明 Python 3或anaconda 3 使用编辑器 jupyter notebook anaconda自带 Pyth
  • JDY-19蓝牙模块介绍及主、从机调试演示

    1 关于JDY 19蓝牙模块 1 产品简介 JDY 19透传模块是基于蓝牙4 2协议标准 工作频段为2 4GHZ范围 调制方式为GFSK 最大发射功率为4db 最大发射距离40米 采用进口原装芯片设计 支持用户通过AT命令修改设备名 波特率
  • PTA每日一题-Python-计算M和N的多个结果

    用户输入两个数M和N 用两个input语句输入 其中N是整数 计算M和N的5种数学运算结果 并依次输出 结果间用空格分隔 5种数学运算分别是 M与N的和 M与N的乘积 M的N次幂 M除N的余数 M和N中较大的值 实现 usr bin env
  • 此应用专为旧版Android打造,因此可能无法正常运行。请尝试检查更新或与开发者联系

    最近调试一款新的机型时 出现 此应用专为旧版Android打造 因此可能无法正常运行 请尝试检查更新或与开发者联系 提示 出现这种错误的原因 应用启动 startActivity时 流程会执行到realStartActivityLocked
  • 【雷达】接收和去噪L波段雷达接收到的信号研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 L波段雷达接收到的信号研究主要涉及到信号的
  • 用运算符重载实现分数的加减乘除(c++实现)

    此程序运用c 程序中的运算符重载来做 text cpp include