主题:这是我写的一个关于类的程序,要求输入分数,要能实现对分数的加减乘除,然后输出,可是不知道错哪了,麻烦
安静*梦语
[专家分:0] 发布于 2011-04-21 19:54:00
#include<iostream>
using namespace std;
class Fenshu
{
public:
void input_fenshu();
void yuefen_fenshu();
void add_fenshu();
void mul_fenshu();
void sub_fenshu();
void div_fenshu();
private:
int fz;
int fm;
};
void Fenshu::input_fenshu()
{
cin>>fz;
cin>>fm;
}
void Fenshu::yuefen_fenshu()
{
int s;
fz/=s;
fm/=s;
printf("the result is %d/%d\n",fz,fm);
}
void Fenshu::add_fenshu() //作加法
{
int u1,u2;
int v,a,b,c,d;
int fz1,fm1;
u1=v/b*a;
u2=v/d*c;
fz1=u1+u2;
fm1=v;
void Fenshu::yuefen_fenshu();
}
void Fenshu::mul_fenshu() //作乘法
{
int u1,u2;
int a,b,c,d;
u1=a*c;
u2=b*d;
void Fenshu::yuefen_fenshu();
}
void Fenshu::sub_fenshu() //作减法
{
int u1,u2;
int v,a,b,c,d;
u1=v/b*a;
u2=v/d*c;
fz=u1-u2;
fm=v;
void Fenshu::yuefen_fenshu();
}
void Fenshu::div_fenshu() //作除法
{
int u1,u2;
int a,b,c,d;
u1=a*d;
u2=b*c;
void Fenshu::yuefen_fenshu();
}
int main()
{Fenshu f;
f.input_fenshu();
f.yuefen_fenshu();
f.add_fenshu();
f.mul_fenshu();
f.sub_fenshu();
f.div_fenshu();
return 0;
}
回复列表 (共6个回复)
沙发
安静*梦语 [专家分:0] 发布于 2011-04-23 21:52:00
这个程序要怎么改呀?麻烦各位高手给看一下,谢谢了!
板凳
彬雪飞舞 [专家分:40] 发布于 2011-04-24 10:53:00
我很奇怪,分数的加减乘除操作难道只要输入一个分数,还有你程序中有很多没有初始化的变量
3 楼
wukaikailive [专家分:80] 发布于 2011-04-24 10:54:00
我总觉得你input-fenshu()函数最好用构造函数来完成
4 楼
彬雪飞舞 [专家分:40] 发布于 2011-04-24 11:06:00
恩,前些天老师讲了个用操作符重载的方法来实现的,感觉蛮好的
5 楼
vivify [专家分:0] 发布于 2011-04-26 11:28:00
[em3]这个程序是你自己写的吗?
#include<iostream>
using namespace std;
class Fenshu
{
public:
void input_fenshu();
void yuefen_fenshu();
void add_fenshu();
void mul_fenshu();
void sub_fenshu();
void div_fenshu();
private:
int fz;
int fm;
};
void Fenshu::input_fenshu()
{
cin>>fz;
cin>>fm;
}
void Fenshu::yuefen_fenshu() //S的值是多少?它都没初值,怎求?这又是求什么?
{
int s;
fz/=s;
fm/=s;
printf("the result is %d/%d\n",fz,fm);
}
void Fenshu::add_fenshu() //作加法
{
int u1,u2;
int v,a,b,c,d;
int fz1,fm1;
u1=v/b*a;
u2=v/d*c;
fz1=u1+u2;
fm1=v;
void Fenshu::yuefen_fenshu();
}
void Fenshu::mul_fenshu() //作乘法
{
int u1,u2;
int a,b,c,d;
u1=a*c;
u2=b*d;
void Fenshu::yuefen_fenshu();
}
void Fenshu::sub_fenshu() //作减法
{
int u1,u2;
int v,a,b,c,d;
u1=v/b*a;
u2=v/d*c;
fz=u1-u2;
fm=v;
void Fenshu::yuefen_fenshu();
}
void Fenshu::div_fenshu() //作除法
{
int u1,u2;
int a,b,c,d;
u1=a*d;
u2=b*c;
void Fenshu::yuefen_fenshu();
}
int main()
{Fenshu f;
f.input_fenshu();
f.yuefen_fenshu();
f.add_fenshu();
f.mul_fenshu();
f.sub_fenshu();
f.div_fenshu();
return 0;
}
以上a,b,c等变量都没有值,是不是你弄错![em2]真是很困惑!
6 楼
金秋春色 [专家分:80] 发布于 2011-04-29 15:25:00
这是我以前的关于这一块的代码,看看能不能帮上什么忙,如代码有什么问题也可以指出来,谢谢。
/*一个关于类的程序,要求输入分数,要能实现对分数的加减乘除*/
#include <iostream>
using namespace std;
inline int Abs_bit(int iNum )
{
int out = iNum;
int temp = iNum;
temp = temp >> 31;
out = out ^ temp;
out = out - temp;
return out;
}
class Fraction
{
public:
Fraction();
Fraction(int iMolecule, int iDenominator);
void showFraction();
Fraction operator +(const Fraction fra);
Fraction operator -(const Fraction fra);
Fraction operator *(const Fraction fra);
Fraction operator /( Fraction fra);
private:
int iMolecule;
int iDenominator;
};
Fraction::Fraction()
{
iMolecule = 0;
iDenominator = 1; //the denominator must be not 0;
}
Fraction::Fraction(int iMolecule, int iDenominator)
{
this->iMolecule = iMolecule;
this->iDenominator = iDenominator;
}
void Fraction::showFraction()
{
if((iMolecule < 0) && (iDenominator < 0))
{
iMolecule = Abs_bit(iMolecule);
iDenominator = Abs_bit(iDenominator);
}
cout<<"the fraction is ";
if(iMolecule * iDenominator < 0 )
{
iMolecule = Abs_bit(iMolecule);
iDenominator = Abs_bit(iDenominator);
cout<<"-"<<iMolecule<<"/"<<iDenominator<<endl;
}else
{
cout<<iMolecule<<"/"<<iDenominator<<endl;
}
}
Fraction Fraction::operator +(const Fraction fra)
{
Fraction temp = *this;
temp.iMolecule = temp.iMolecule * fra.iDenominator + temp.iDenominator * fra.iMolecule;
temp.iDenominator = temp.iDenominator * fra.iDenominator;
return temp;
}
Fraction Fraction::operator -(const Fraction fra)
{
Fraction temp = *this;
temp.iMolecule = temp.iMolecule * fra.iDenominator - temp.iDenominator * fra.iMolecule;
temp.iDenominator = temp.iDenominator * fra.iDenominator;
return temp;
}
Fraction Fraction::operator *(const Fraction fra)
{
Fraction temp = *this;
temp.iMolecule = temp.iMolecule * fra.iMolecule;
temp.iDenominator = temp.iDenominator * fra.iDenominator;
return temp;
}
Fraction Fraction::operator /(const Fraction fra)
{
int temp;
Fraction tempFra = fra;
Fraction tempThis = *this;
temp = tempFra.iMolecule;
tempFra.iMolecule = tempFra.iDenominator;
tempFra.iDenominator = temp;
tempThis = tempThis * tempFra;
return tempThis;
}
我来回复