一个有理数(Rational)是由一个分子(numerator)和分母(denominator)组成的a/b形式的数。编写程序实现有理数如下功能: 包括三个文件Rational.h,Rational.cpp(30分),TestRationalClass .cpp(20分)。 Class Rational { Public: Rational(); Rational(long numerator,long denominator); //最简分式 Long getNumerator(); Long getDenominator(); Rational add(Rational &secondRational); Rational divide(Rational &secondRational); Int compareTo(Rational &secondRational); Bool equals(Rational &secondRational); Int intValue(); Double doubleValue(); String toString(); //分为分母=1与a/b的方式;提示:使用itoa()与strcat()函数 Private: Long numerator; Long denominator; Static long gcd(long n, long d); };
时间: 2023-03-08 17:55:51 浏览: 71
private); Rational subtract(Rational private); Rational multiply(Rational); Rational divide(Rational private); void printRational(); Private: Long numerator; Long denominator; };这是一个可以实现有理数功能的C++程序:Rational.h:#ifndef RATIONAL_H
#define RATIONAL_Hclass Rational
{
public:
Rational(); //默认构造函数
Rational(long numerator, long denominator); //最简分式
long getNumerator();
long getDenominator();
Rational add(Rational private);
Rational subtract(Rational private);
Rational multiply(Rational private);
Rational divide(Rational private);
void printRational();
private:
long numerator;
long denominator;
};#endif //RATIONAL_H
相关问题
写一个C++代码:一个有理想(Rational)是由一个分子(numerator)和分母(denominator)组成的a/b形式的数。编写程序实现有理数如下功能: 包括三个文件Rational.h,Rational.cpp(30分),TestRationalClass .cpp(20分)。
#include <iostream>
using namespace std;//Rational.h
class Rational {
private:
int numerator;
int denominator;
public:
Rational(int num, int den);
int getNumerator();
int getDenominator();
void setNumerator(int num);
void setDenominator(int den);
void add(Rational r);
void subtract(Rational r);
void multiply(Rational r);
void divide(Rational r);
void print();
};//Rational.cpp
Rational::Rational(int num, int den){
numerator = num;
denominator = den;
}int Rational::getNumerator(){
return numerator;
}int Rational::getDenominator(){
return denominator;
}void Rational::setNumerator(int num){
numerator = num;
}void Rational::setDenominator(int den){
denominator = den;
}void Rational::add(Rational r){
numerator = numerator*r.denominator + denominator*r.numerator;
denominator = denominator*r.denominator;
}void Rational::subtract(Rational r){
numerator = numerator*r.denominator - denominator*r.numerator;
denominator = denominator*r.denominator;
}void Rational::multiply(Rational r){
numerator = numerator*r.numerator;
denominator = denominator*r.denominator;
}void Rational::divide(Rational r){
numerator = numerator*r.denominator;
denominator = denominator*r.numerator;
}void Rational::print(){
cout<<numerator<<"/"<<denominator<<endl;
}//TestRationalClass.cpp
int main(){
Rational r1 = Rational(1,2);
Rational r2 = Rational(2,3);
r1.add(r2);
r1.print();
r1.subtract(r2);
r1.print();
r1.multiply(r2);
r1.print();
r1.divide(r2);
r1.print();
return 0;
}
定义一个rational类。 包含有理数分数形式的分子numerator、分母denominator两个int成员变量。 按照实 际参数创建对象(不需考虑最简形式)。编写方法public int compareRationa(rational x)比较两个有理数的大小。 若第一个有理数小于第二个,返回-1;若相等返回0;若第一个有理数大于第二个,返回1;用户输入的两个有理数, 调用上述方法进行比较输出比较结果。
以下是一个实现该功能的rational类的示例代码:
```java
public class Rational {
private int numerator; // 分子
private int denominator; // 分母
public Rational(int numerator, int denominator) {
this.numerator = numerator;
this.denominator = denominator;
}
public int compareRational(Rational x) {
int left = this.numerator * x.denominator;
int right = x.numerator * this.denominator;
if (left < right) {
return -1;
} else if (left == right) {
return 0;
} else {
return 1;
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个有理数的分子和分母,用空格隔开:");
int numerator1 = scanner.nextInt();
int denominator1 = scanner.nextInt();
Rational rational1 = new Rational(numerator1, denominator1);
System.out.print("请输入第二个有理数的分子和分母,用空格隔开:");
int numerator2 = scanner.nextInt();
int denominator2 = scanner.nextInt();
Rational rational2 = new Rational(numerator2, denominator2);
int result = rational1.compareRational(rational2);
if (result < 0) {
System.out.println("第一个有理数小于第二个有理数");
} else if (result > 0) {
System.out.println("第一个有理数大于第二个有理数");
} else {
System.out.println("两个有理数相等");
}
}
}
```
示例输出:
```
请输入第一个有理数的分子和分母,用空格隔开:1 2
请输入第二个有理数的分子和分母,用空格隔开:2 3
第一个有理数小于第二个有理数
```