vs2017\vs2019 构造有理数类实现加减乘(除)四则运算

16 篇文章 9 订阅
12 篇文章 45 订阅

这是针对于博客vs2017安装和使用教程(详细)vs2019安装和使用教程(详细)的构造有理数类实现加减乘(除)四则运算的新建示例


目录

一、项目结构

二、代码

三、运行结果

四、注意事项


一、项目结构

1.头文件

  • CRation.h

2.源文件

  • CRation.cpp
  • main.cpp

                                                                           

二、代码

1.CRation.h

#pragma once

class CRation {
	int n;//分子
	int d;//分母
	int Gcd();//求最大公约数
public:
	CRation(int n, int d);  //构造
	CRation *Add(CRation &r); 	// 加法
	CRation *Multiple(CRation &r);	//乘法
	CRation *Subtract(CRation &r);	//减法
	int GetN();
	int GetD();	//  输出

};

2.CRation.cpp

#include<math.h>
#include"CRation.h"

CRation::CRation(int n0, int d0)
{
	n = n0;
	d = d0;
	int x = Gcd();
	n = n / x;
	d = d / x;
}

int CRation::Gcd() {//辗转相除法
	int x = abs(n), y = abs(d), t;
	if (x > y) {
		t = x, x = y, y = t;//交换x和y
	}
	while(y%x!=0){
		t = y % x;
		y = x;
		x = t;
	}
	return x;
}

int CRation::GetN() {
	return n;
}

int CRation::GetD() {
	return d;
}

CRation *CRation::Add(CRation &r) {
	int d1 = d * r.d;	//分母乘积
	int n1 = n * r.d + r.n*d;//分子相加
	CRation *q = new CRation(n1, d1);//未约分的分数
	return q;
}

CRation *CRation::Multiple(CRation &r) {
	int d2 = d * r.d;
	int n2 = n * r.n;
	CRation *q = new CRation(n2, d2);
	return q;
}

CRation *CRation::Subtract(CRation &r) {
	int d1 = d * r.d;	//分母乘积
	int n1 = n * r.d - r.n*d;//分子相加
	CRation *q = new CRation(n1, d1);//未约分的分数
	return q;
}

3.main.cpp

#include<iostream>
#include"CRation.h"
using namespace std;

int main() {
	CRation r1(5, 8);
	CRation r2(18, 27);
	//加法
	CRation *p1 = r1.Add(r2);
	cout << p1->GetN() << "/" << p1->GetD() << endl;
	//乘法
	CRation *p2 = r1.Multiple(r2);
	cout << p2->GetN() << "/" << p2->GetD() << endl;
	//减法
	CRation *p3 = r1.Subtract(r2);
	cout << p3->GetN() << "/" << p3->GetD() << endl;
	//计算7/19 * 4/5 - 3/8 
	CRation r3(7, 19);
	CRation r4(4, 5);
	CRation r5(3, 8);
	CRation *p4 = r3.Multiple(r4);
	CRation *p5 = (*p4).Subtract(r5);
	cout <<"7/19 * 4/5 - 3/8 = "<< p5->GetN() << "/" << p5->GetD() << endl;
	getchar();
	return 0;
}

三、运行结果

                                                     

四、注意事项

1.函数Gcd()辗转相除法求最大公约数

2.注意CRation里加减乘的返回值是CRation指针

3.注意自己写的头文件用双引号""括起来而不是<>


返回至原博客:

vs2017安装和使用教程(详细)

vs2019安装和使用教程(详细)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老兵安帕赫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值