一个有理数类(C++作业)

头文件:

1#ifndef Rational_H 2#define Rational_H 3class Rational 4{ 5private: 6 int numerator; 7 int denominator; 8public: 9 Rational(); 10 Rational(int , int ); 11 Rational simplification(Rational&); 12 Rational addition(Rational& , Rational& ); 13 Rational subtraction(Rational& , Rational& ); 14 Rational multiplication(Rational& a, Rational& b); 15 Rational division(Rational& a, Rational& b); 16 void showvalue1();//分数形式展现 17 void showvalue2();//有理数形式展现 18}; 19#endif

定义类的文件:

1#include<math.h> 2Rational::Rational() :numerator(1), denominator(1) 3{ 4} 5Rational::Rational(int a, int b):numerator(a), denominator(b) 6{ 7 Rational::simplification(*this); 8} 9Rational Rational::simplification(Rational&a) 10{ 11 int mini = std::min(numerator, denominator); 12 for (int i = mini; i > 0; i--) 13 { 14 if (numerator % i == 0 && denominator % i == 0) 15 { 16 numerator /= i; 17 denominator /= i; 18 break; 19 } 20 } 21 return a; 22} 23Rational Rational::addition(Rational&a, Rational&b) 24{ 25 this->numerator = a.numerator * b.denominator + a.denominator * b.numerator; 26 this->denominator = a.denominator * b.denominator; 27 Rational::simplification(*this); 28 return *this; 29} 30Rational Rational::subtraction(Rational& a, Rational& b) 31{ 32 this->numerator = a.numerator * b.denominator - a.denominator * b.numerator; 33 this->denominator = a.denominator * b.denominator; 34 Rational::simplification(*this); 35 return *this; 36} 37Rational Rational::multiplication(Rational& a, Rational& b) 38{ 39 this->numerator = a.numerator * b.numerator; 40 this->denominator = a.denominator * b.denominator; 41 Rational::simplification(*this); 42 return *this; 43} 44Rational Rational::division(Rational& a, Rational& b) 45{ 46 this->numerator = a.numerator * b.denominator; 47 this->denominator = a.denominator * b.numerator; 48 Rational::simplification(*this); 49 return *this; 50} 51void Rational::showvalue1() 52{ 53 std::cout << numerator << "/" << denominator<<std::endl; 54} 55void Rational::showvalue2() 56{ 57 double value = (double)numerator / denominator; 58 std::cout << value << std::endl; 59}

一个demo:

1#include"head.h" 2int main() 3{ 4 //测试 5 Rational x(16, 12); 6 Rational y(4, 9); 7 Rational a1; 8 Rational a2; 9 Rational a3; 10 Rational a4; 11 a1.addition(x, y); 12 a2.subtraction(x, y); 13 a3.multiplication(x, y); 14 a4.division(x, y); 15 a1.showvalue1(); 16 a2.showvalue1(); 17 a3.showvalue1(); 18 a4.showvalue1(); 19 a1.showvalue2(); 20 a2.showvalue2(); 21 a3.showvalue2(); 22 a4.showvalue2(); 23}
点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)

首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模

FLV文件格式

1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  

SpringBoot整合Redis乱码原因及解决方案

问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa

C++ string类

http://blog.csdn.net/pipisorry/article/details/36869741(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fblog.csdn.net%2Fpipisorry%2Farticle%2Fdetails%2F36869741)使用标准