读书人

虚心 求教,该如何处理

发布时间: 2012-08-02 11:35:25 作者: rapoo

虚心 求教
#include<iostream>
#include<cmath>
using namespace std;
class fenshu
{
public:
int fenzi,fenmu;
public:
fenshu(int zi=0,int mu=0)
{
fenzi=zi;
fenmu=mu;
}

void input()
{


cin>>fenzi;
cin>>fenmu;

}
void set(int zi,int mu)
{
fenzi=zi;
fenmu=mu;

}

void output()
{ if(fenzi*fenmu>=0)
cout<<"the fenshu is:"<<abs(fenzi)<<"/"<<abs(fenmu)<<endl;
else
cout<<"the fenshu is:"<<"-"<<abs(fenzi)<<"/"<<abs(fenmu)<<endl;


}
friend fenshu add(fenshu c1,fenshu c2);
friend fenshu sub(fenshu c1,fenshu c2);
friend fenshu mul(fenshu c1,fenshu c2);
friend fenshu div(fenshu c1,fenshu c2);
friend fenshu yuefen(fenshu c);

};
fenshu yuefen(fenshu c)
{
for(int i;i<c.fenzi;){
if(c.fenzi%i!=0&&c.fenmu%i!=0)
{
c.fenzi=c.fenzi/i;
c.fenmu=c.fenmu/i;
}
else
i++;
}
return c;
}


fenshu add(fenshu c1,fenshu c2)
{
fenshu c3;
c3.fenzi=c1.fenzi*c2.fenmu+c2.fenzi*c1.fenmu;
c3.fenmu=c1.fenmu*c2.fenmu;
return yuefen(c3);

}

fenshu sub(fenshu c1,fenshu c2)
{
fenshu c3;
c3.fenzi=c1.fenzi*c2.fenmu-c2.fenzi*c1.fenmu;
c3.fenmu=c1.fenmu*c2.fenmu;
return yuefen(c3);
}

fenshu mul(fenshu c1,fenshu c2)
{
fenshu c3;
c3.fenzi=c1.fenzi*c2.fenzi;
c3.fenmu=c1.fenmu*c2.fenmu;
return yuefen(c3);
}

fenshu div(fenshu c1,fenshu c2)
{
fenshu c3;
c3.fenzi=c1.fenzi*c2.fenmu;
c3.fenmu=c1.fenmu*c2.fenzi;
return yuefen(c3);
}

void menu()
{
cout<<"1 jiafa\n";
cout<<"2 jianfa\n";
cout<<"3 chengfa\n";
cout<<"4 chufa\n";
cout<<"0 tuichu\n";

cout<<"qing zuo nin de xuanze:"<<endl;
cout<<"输入 1,2,3,4,或0 然后回车"<<endl;
}

int main()
{


do{
menu();

int choose ;
fenshu c1,c2,c3;
cin>>choose;

switch(choose)
{
case 1: cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c1.input();
cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c2.input();
c3=add(c1,c2);
cout<<"c1+c2=";
c3.output();
break;
case 2:cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c1.input();
cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c2.input();
c3=sub(c1,c2);
cout<<"c1-c2=";
c3.output();
break;
case 3: cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c1.input();
cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c2.input();
c3=mul(c1,c2);
cout<<"c1*c2=";
c3.output();


break;

case 4: cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c1.input();
cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c2.input();
c3=mul(c1,c2);
cout<<"c1/c2=";
c3.output();
break;
case 0: exit(0);
default: cout<<"nin de xuanze cuo ,qing chongxin xuanze:";

}system("pause");system("cls");
}while(1);


return 0;
}
运行不出结果 错在哪?? 该怎么写啊??

[解决办法]
用来干嘛的?
问题描述清晰一些..
[解决办法]
你这是老婆娘臭脚带----又臭又长,谁敢看?
[解决办法]
对象c1,c2,c3都没生成,当然错啦!
在main函数了加上:
fenshu c1,c2,c3;
约分的函数有点复杂,不够简练,给你个建议:
先求分子分母的最大公约数(辗转相除法),然后分子分母同除以最大公约数.
[解决办法]

C/C++ code
fenshu yuefen(fenshu c){for(int i;i<c.fenzi;){  if(c.fenzi%i!=0&&c.fenmu%i!=0){c.fenzi=c.fenzi/i;c.fenmu=c.fenmu/i;}elsei++;}return c;} 

读书人网 >C++

热点推荐