大家帮忙这个程序,有理数四则运算,像大一写的哦!刚学完C++ 50
运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。本题定义并实现一个有理数类,通过重载运算符+、-、*、/对有理...
运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。
本题定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算,通过重载运算符==实现判定两个有理数是否相等。写一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数 展开
本题定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算,通过重载运算符==实现判定两个有理数是否相等。写一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数 展开
3个回答
展开全部
我写的一个分子分母化简的程序,,,作为一个参考,,其余的我认为,,还是自己试试吧,不然自己还是不会的,,试试呗,
// 构造一个分数类rationalNumber 该类包括分子和分母两个数据成员,
//1 建立构造函数,能防止分母为零,该分数不是最简形式是进行约分,并避免该分母为负数
// 2 重载加法,减法,乘法,和除法运算符
// 3 重载关系运算符 > < ==
#include <iostream>
using namespace std;
class rationNumber
{
int F_;// 分子
int M_;// 分母
public:
//ratioNumber(double a,double b)
// { F_=a;
// M_=b;
//}
void set(const int &me,const int &mm) // 注意此时不能在此后加const因为这个是表示为在运算过程中不改变的,
{ if(F_<=0||M_<=0)
cout<<"不能为零"<<endl;
else
{
F_=me;
M_=mm;
}
}
void Put()const
{
cout<<"分子"<< F_<<"*****"<<"分母"<<M_<<endl;
}
void Dell() // 前面的返回值shi const但是,这个对用户自定义的函数返回只有用,对系统自定义的没用的,
{
int i=2;
int min;
if(F_>M_)
min=M_;
else
min=F_;
while(i<min)
{
if(F_%i==0&&M_%i==0)
{ F_=F_/i;M_=M_/i;
continue;
}
else
i++;
}
}
rationNumber &operator +(rationNumber &me)
{
F_=F_+me.F_;
M_=M_+me.M_;
Dell();// 这个的作用就是化简的作用,所以就使用该这个样子做的,
return *this;
}
};
int main()
{
rationNumber me,mm;
me.set(4,5),mm.set(4,5);
me=me+mm;
me.Put();
return 0;
}
// 构造一个分数类rationalNumber 该类包括分子和分母两个数据成员,
//1 建立构造函数,能防止分母为零,该分数不是最简形式是进行约分,并避免该分母为负数
// 2 重载加法,减法,乘法,和除法运算符
// 3 重载关系运算符 > < ==
#include <iostream>
using namespace std;
class rationNumber
{
int F_;// 分子
int M_;// 分母
public:
//ratioNumber(double a,double b)
// { F_=a;
// M_=b;
//}
void set(const int &me,const int &mm) // 注意此时不能在此后加const因为这个是表示为在运算过程中不改变的,
{ if(F_<=0||M_<=0)
cout<<"不能为零"<<endl;
else
{
F_=me;
M_=mm;
}
}
void Put()const
{
cout<<"分子"<< F_<<"*****"<<"分母"<<M_<<endl;
}
void Dell() // 前面的返回值shi const但是,这个对用户自定义的函数返回只有用,对系统自定义的没用的,
{
int i=2;
int min;
if(F_>M_)
min=M_;
else
min=F_;
while(i<min)
{
if(F_%i==0&&M_%i==0)
{ F_=F_/i;M_=M_/i;
continue;
}
else
i++;
}
}
rationNumber &operator +(rationNumber &me)
{
F_=F_+me.F_;
M_=M_+me.M_;
Dell();// 这个的作用就是化简的作用,所以就使用该这个样子做的,
return *this;
}
};
int main()
{
rationNumber me,mm;
me.set(4,5),mm.set(4,5);
me=me+mm;
me.Put();
return 0;
}
展开全部
我不知道对不对,不对请指教!
我的答案是:
#include <iostream>
using namespace std;
class rationNumber
{
int F_;// 分子
int M_;// 分母
public:
//ratioNumber(double a,double b)
// { F_=a;
// M_=b;
//}
void set(const int &me,const int &mm) // 注意此时不能在此后加const因为这个是表示为在运算过程中不改变的,
{ if(F_<=0||M_<=0)
cout<<"不能为零"<<endl;
else
{
F_=me;
M_=mm;
}
}
void Put()const
{
cout<<"分子"<< F_<<"*****"<<"分母"<<M_<<endl;
}
void Dell() // 前面的返回值shi const但是,这个对用户自定义的函数返回只有用,对系统自定义的没用的,
{
int i=2;
int min;
if(F_>M_)
min=M_;
else
min=F_;
while(i<min)
{
if(F_%i==0&&M_%i==0)
{ F_=F_/i;M_=M_/i;
continue;
}
else
i++;
}
}
rationNumber &operator +(rationNumber &me)
{
F_=F_+me.F_;
M_=M_+me.M_;
Dell();//
return *this;
}
};
int main()
{
rationNumber me,mm;
me.set(4,5),mm.set(4,5);
me=me+mm;
me.Put();
return 0;
}
我的答案是:
#include <iostream>
using namespace std;
class rationNumber
{
int F_;// 分子
int M_;// 分母
public:
//ratioNumber(double a,double b)
// { F_=a;
// M_=b;
//}
void set(const int &me,const int &mm) // 注意此时不能在此后加const因为这个是表示为在运算过程中不改变的,
{ if(F_<=0||M_<=0)
cout<<"不能为零"<<endl;
else
{
F_=me;
M_=mm;
}
}
void Put()const
{
cout<<"分子"<< F_<<"*****"<<"分母"<<M_<<endl;
}
void Dell() // 前面的返回值shi const但是,这个对用户自定义的函数返回只有用,对系统自定义的没用的,
{
int i=2;
int min;
if(F_>M_)
min=M_;
else
min=F_;
while(i<min)
{
if(F_%i==0&&M_%i==0)
{ F_=F_/i;M_=M_/i;
continue;
}
else
i++;
}
}
rationNumber &operator +(rationNumber &me)
{
F_=F_+me.F_;
M_=M_+me.M_;
Dell();//
return *this;
}
};
int main()
{
rationNumber me,mm;
me.set(4,5),mm.set(4,5);
me=me+mm;
me.Put();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询